diff options
Diffstat (limited to 'GNUmakefile')
-rw-r--r-- | GNUmakefile | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/GNUmakefile b/GNUmakefile index 68800269..66fc0f07 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -32,7 +32,7 @@ VERSION = $(shell grep '^$(HASH)define VERSION ' ../config.h | cut -d '"' -f # PROGS intentionally omit afl-as, which gets installed elsewhere. PROGS = afl-fuzz afl-showmap afl-tmin afl-gotcpu afl-analyze -SH_PROGS = afl-plot afl-cmin afl-cmin.bash afl-whatsup afl-system-config +SH_PROGS = afl-plot afl-cmin afl-cmin.bash afl-whatsup afl-system-config afl-persistent-config MANPAGES=$(foreach p, $(PROGS) $(SH_PROGS), $(p).8) afl-as.8 ASAN_OPTIONS=detect_leaks=0 @@ -42,7 +42,7 @@ ARCH = $(shell uname -m) $(info [*] Compiling afl++ for OS $(SYS) on ARCH $(ARCH)) ifdef NO_SPLICING - override CFLAGS += -DNO_SPLICING + override CFLAGS_OPT += -DNO_SPLICING endif ifdef ASAN_BUILD @@ -115,13 +115,13 @@ endif ifdef PROFILING $(info Compiling with profiling information, for analysis: gprof ./afl-fuzz gmon.out > prof.txt) - CFLAGS_OPT += -pg -DPROFILING=1 - LDFLAGS += -pg + override CFLAGS_OPT += -pg -DPROFILING=1 + override LDFLAGS += -pg endif ifdef INTROSPECTION $(info Compiling with introspection documentation) - CFLAGS_OPT += -DINTROSPECTION=1 + override CFLAGS_OPT += -DINTROSPECTION=1 endif ifneq "$(ARCH)" "x86_64" @@ -136,7 +136,7 @@ endif ifdef DEBUG $(info Compiling DEBUG version of binaries) - CFLAGS += -ggdb3 -O0 -Wall -Wextra -Werror + override CFLAGS += -ggdb3 -O0 -Wall -Wextra -Werror $(CFLAGS_OPT) else CFLAGS ?= -O3 -funroll-loops $(CFLAGS_OPT) endif @@ -147,28 +147,28 @@ override CFLAGS += -g -Wno-pointer-sign -Wno-variadic-macros -Wall -Wextra -Wpoi ifeq "$(SYS)" "FreeBSD" override CFLAGS += -I /usr/local/include/ - LDFLAGS += -L /usr/local/lib/ + override LDFLAGS += -L /usr/local/lib/ endif ifeq "$(SYS)" "DragonFly" override CFLAGS += -I /usr/local/include/ - LDFLAGS += -L /usr/local/lib/ + override LDFLAGS += -L /usr/local/lib/ endif ifeq "$(SYS)" "OpenBSD" override CFLAGS += -I /usr/local/include/ -mno-retpoline - LDFLAGS += -Wl,-z,notext -L /usr/local/lib/ + override LDFLAGS += -Wl,-z,notext -L /usr/local/lib/ endif ifeq "$(SYS)" "NetBSD" override CFLAGS += -I /usr/pkg/include/ - LDFLAGS += -L /usr/pkg/lib/ + override LDFLAGS += -L /usr/pkg/lib/ endif ifeq "$(SYS)" "Haiku" SHMAT_OK=0 override CFLAGS += -DUSEMMAP=1 -Wno-error=format -fPIC - LDFLAGS += -Wno-deprecated-declarations -lgnu -lnetwork + override LDFLAGS += -Wno-deprecated-declarations -lgnu -lnetwork SPECIAL_PERFORMANCE += -DUSEMMAP=1 endif @@ -244,22 +244,22 @@ ifneq "$(filter Linux GNU%,$(SYS))" "" ifndef DEBUG override CFLAGS += -D_FORTIFY_SOURCE=2 endif - LDFLAGS += -ldl -lrt -lm + override LDFLAGS += -ldl -lrt -lm endif ifneq "$(findstring FreeBSD, $(SYS))" "" override CFLAGS += -pthread - LDFLAGS += -lpthread + override LDFLAGS += -lpthread endif ifneq "$(findstring NetBSD, $(SYS))" "" override CFLAGS += -pthread - LDFLAGS += -lpthread + override LDFLAGS += -lpthread endif ifneq "$(findstring OpenBSD, $(SYS))" "" override CFLAGS += -pthread - LDFLAGS += -lpthread + override LDFLAGS += -lpthread endif COMM_HDR = include/alloc-inl.h include/config.h include/debug.h include/types.h @@ -315,7 +315,9 @@ llvm: .PHONY: gcc_plugin gcc_plugin: +ifneq "$(SYS)" "Darwin" -$(MAKE) -f GNUmakefile.gcc_plugin +endif .PHONY: man man: $(MANPAGES) @@ -561,7 +563,7 @@ all_done: test_build .PHONY: clean clean: - rm -f $(PROGS) libradamsa.so afl-fuzz-document afl-as as afl-g++ afl-clang afl-clang++ *.o src/*.o *~ a.out core core.[1-9][0-9]* *.stackdump .test .test1 .test2 test-instr .test-instr0 .test-instr1 afl-qemu-trace afl-gcc-fast afl-gcc-pass.so afl-g++-fast ld *.so *.8 test/unittests/*.o test/unittests/unit_maybe_alloc test/unittests/preallocable .afl-* afl-gcc afl-g++ afl-clang afl-clang++ test/unittests/unit_hash test/unittests/unit_rand + rm -rf $(PROGS) libradamsa.so afl-fuzz-document afl-as as afl-g++ afl-clang afl-clang++ *.o src/*.o *~ a.out core core.[1-9][0-9]* *.stackdump .test .test1 .test2 test-instr .test-instr0 .test-instr1 afl-qemu-trace afl-gcc-fast afl-gcc-pass.so afl-g++-fast ld *.so *.8 test/unittests/*.o test/unittests/unit_maybe_alloc test/unittests/preallocable .afl-* afl-gcc afl-g++ afl-clang afl-clang++ test/unittests/unit_hash test/unittests/unit_rand *.dSYM -$(MAKE) -f GNUmakefile.llvm clean -$(MAKE) -f GNUmakefile.gcc_plugin clean $(MAKE) -C utils/libdislocator clean @@ -596,7 +598,9 @@ endif .PHONY: distrib distrib: all -$(MAKE) -j -f GNUmakefile.llvm +ifneq "$(SYS)" "Darwin" -$(MAKE) -f GNUmakefile.gcc_plugin +endif $(MAKE) -C utils/libdislocator $(MAKE) -C utils/libtokencap $(MAKE) -C utils/afl_network_proxy @@ -604,8 +608,10 @@ distrib: all $(MAKE) -C utils/argv_fuzzing # -$(MAKE) -C utils/plot_ui -$(MAKE) -C frida_mode +ifneq "$(SYS)" "Darwin" -cd qemu_mode && sh ./build_qemu_support.sh -cd unicorn_mode && unset CFLAGS && sh ./build_unicorn_support.sh +endif .PHONY: binary-only binary-only: test_shm test_python ready $(PROGS) @@ -616,13 +622,17 @@ binary-only: test_shm test_python ready $(PROGS) $(MAKE) -C utils/argv_fuzzing # -$(MAKE) -C utils/plot_ui -$(MAKE) -C frida_mode +ifneq "$(SYS)" "Darwin" -cd qemu_mode && sh ./build_qemu_support.sh -cd unicorn_mode && unset CFLAGS && sh ./build_unicorn_support.sh +endif .PHONY: source-only source-only: all -$(MAKE) -j -f GNUmakefile.llvm +ifneq "$(SYS)" "Darwin" -$(MAKE) -f GNUmakefile.gcc_plugin +endif $(MAKE) -C utils/libdislocator $(MAKE) -C utils/libtokencap # -$(MAKE) -C utils/plot_ui @@ -667,7 +677,9 @@ install: all $(MANPAGES) @if [ -f utils/aflpp_driver/libAFLDriver.a ]; then set -e; install -m 644 utils/aflpp_driver/libAFLDriver.a $${DESTDIR}$(HELPER_PATH); fi @if [ -f utils/aflpp_driver/libAFLQemuDriver.a ]; then set -e; install -m 644 utils/aflpp_driver/libAFLQemuDriver.a $${DESTDIR}$(HELPER_PATH); fi -$(MAKE) -f GNUmakefile.llvm install +ifneq "$(SYS)" "Darwin" -$(MAKE) -f GNUmakefile.gcc_plugin install +endif ln -sf afl-cc $${DESTDIR}$(BIN_PATH)/afl-gcc ln -sf afl-cc $${DESTDIR}$(BIN_PATH)/afl-g++ ln -sf afl-cc $${DESTDIR}$(BIN_PATH)/afl-clang |