IFLAGS := -isystem include/ -I ../include/ -I ../lib/zstd/ -isystem googletest/googletest/include -isystem ../../../lib/common/ SOURCES := $(wildcard ../lib/zstd/*.c) OBJECTS := $(patsubst %.c,%.o,$(SOURCES)) ARFLAGS := rcs CXXFLAGS += -std=c++11 -g -O3 -Wcast-align CFLAGS += -g -O3 -Wframe-larger-than=400 -Wcast-align CPPFLAGS += $(IFLAGS) ../lib/zstd/libzstd.a: $(OBJECTS) $(AR) $(ARFLAGS) $@ $^ DecompressCrash: DecompressCrash.o $(OBJECTS) libFuzzer.a $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ RoundTripCrash: RoundTripCrash.o $(OBJECTS) ../lib/xxhash.o libFuzzer.a $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ UserlandTest: UserlandTest.cpp ../lib/zstd/libzstd.a ../lib/xxhash.o $(CXX) $(CXXFLAGS) $(CPPFLAGS) $^ googletest/build/googlemock/gtest/libgtest.a googletest/build/googlemock/gtest/libgtest_main.a -o $@ XXHashUserlandTest: XXHashUserlandTest.cpp ../lib/xxhash.o ../../../lib/common/xxhash.o $(CXX) $(CXXFLAGS) $(CFLAGS) $(CPPFLAGS) $^ googletest/build/googlemock/gtest/libgtest.a googletest/build/googlemock/gtest/libgtest_main.a -o $@ # Install libfuzzer libFuzzer.a: @$(RM) -rf Fuzzer @git clone https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer @./Fuzzer/build.sh # Install googletest .PHONY: googletest googletest: @$(RM) -rf googletest @git clone https://github.com/google/googletest @mkdir -p googletest/build @cd googletest/build && cmake .. && $(MAKE) clean: $(RM) -f *.{o,a} ../lib/zstd/*.{o,a} ../lib/*.o $(RM) -f DecompressCrash RoundTripCrash UserlandTest XXHashUserlandTest