# honggfuzz - Makefile # ----------------------------------------- # # Author: Robert Swiecki # # Copyright 2010-2015 by Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # NOTE: xcrun is within xcode...xcode is required on OSX. # # Common for all architectures CC ?= gcc LD = $(CC) BIN := honggfuzz HFUZZ_CC_BIN := hfuzz_cc/hfuzz-cc HFUZZ_CC_SRCS := hfuzz_cc/hfuzz-cc.c COMMON_CFLAGS := -std=c11 -I/usr/local/include -D_GNU_SOURCE -Wall -Wextra -Werror -Wno-format-truncation -Wno-override-init -I. COMMON_LDFLAGS := -pthread -lm COMMON_SRCS := $(sort $(wildcard *.c)) CFLAGS ?= -O3 -mtune=native -funroll-loops LDFLAGS ?= LIBS_CFLAGS ?= -fPIC -fno-stack-protector -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 # fortify-source intercepts some functions, so we disable it for libraries GREP_COLOR ?= BUILD_OSSFUZZ_STATIC ?= false # for https://github.com/google/oss-fuzz BUILD_LINUX_NO_BFD ?= false # for users who don't want to use libbfd/binutils OS ?= $(shell uname -s) MARCH ?= $(shell uname -m) KERNEL ?= $(shell uname -r) ifeq ($(OS)$(findstring Microsoft,$(KERNEL)),Linux) # matches Linux but excludes WSL (Windows Subsystem for Linux) ARCH := LINUX ARCH_CFLAGS := -D_FILE_OFFSET_BITS=64 ARCH_SRCS := $(sort $(wildcard linux/*.c)) ARCH_LDFLAGS := -L/usr/local/include ifeq ($(BUILD_OSSFUZZ_STATIC),true) ARCH_LDFLAGS += -Wl,-Bstatic \ `pkg-config --libs --static libunwind-ptrace libunwind-generic` \ -lopcodes -lbfd -liberty -lz \ -Wl,-Bdynamic else ARCH_LDFLAGS += -lunwind-ptrace -lunwind-generic -lunwind -llzma \ -lopcodes -lbfd endif ifeq ($(BUILD_LINUX_NO_BFD),true) ARCH_CFLAGS += -D_HF_LINUX_NO_BFD endif ARCH_LDFLAGS += -lrt -ldl -lm ifeq ("$(wildcard /usr/local/include/intel-pt.h)","/usr/local/include/intel-pt.h") ARCH_CFLAGS += -D_HF_LINUX_INTEL_PT_LIB ARCH_CFLAGS += -I/usr/local/include ARCH_LDFLAGS += -L/usr/local/lib -lipt -Wl,--rpath=/usr/local/lib endif ifeq ("$(wildcard /usr/include/intel-pt.h)","/usr/include/intel-pt.h") ARCH_CFLAGS += -D_HF_LINUX_INTEL_PT_LIB ARCH_LDFLAGS += -lipt endif # OS Linux else ifeq ($(OS),Darwin) ARCH := DARWIN ARCH_SRCS := $(sort $(wildcard mac/*.c) mac/mach_excServer.c mac/mach_excUser.c) # MacOS-X grep seem to use colors unconditionally GREP_COLOR = --color=never # Figure out which crash reporter to use. CRASHWRANGLER := third_party/mac OS_VERSION := $(shell sw_vers -productVersion) ifneq (,$(findstring 10.15,$(OS_VERSION))) CRASH_REPORT := $(CRASHWRANGLER)/CrashReport_Sierra.o else ifneq (,$(findstring 10.14,$(OS_VERSION))) CRASH_REPORT := $(CRASHWRANGLER)/CrashReport_Sierra.o else ifneq (,$(findstring 10.13,$(OS_VERSION))) CRASH_REPORT := $(CRASHWRANGLER)/CrashReport_Sierra.o else ifneq (,$(findstring 10.12,$(OS_VERSION))) CRASH_REPORT := $(CRASHWRANGLER)/CrashReport_Sierra.o else ifneq (,$(findstring 10.11,$(OS_VERSION))) # El Capitan didn't break compatibility CRASH_REPORT := $(CRASHWRANGLER)/CrashReport_Yosemite.o else ifneq (,$(findstring 10.10,$(OS_VERSION))) CRASH_REPORT := $(CRASHWRANGLER)/CrashReport_Yosemite.o else ifneq (,$(findstring 10.9,$(OS_VERSION))) CRASH_REPORT := $(CRASHWRANGLER)/CrashReport_Mavericks.o else ifneq (,$(findstring 10.8,$(OS_VERSION))) CRASH_REPORT := $(CRASHWRANGLER)/CrashReport_Mountain_Lion.o else $(error Unsupported MAC OS X version) endif # Figure out which XCode SDK to use. OSX_SDK_VERSION := $(shell xcrun --show-sdk-version) SDK_NAME_V := macosx$(OSX_SDK_VERSION) SDK_V := $(shell xcrun --sdk $(SDK_NAME) --show-sdk-path 2>/dev/null) SDK_NAME := macosx SDK := $(shell xcrun --sdk $(SDK_NAME) --show-sdk-path 2>/dev/null) CC := $(shell xcrun --sdk $(SDK_NAME) --find cc) LD := $(shell xcrun --sdk $(SDK_NAME) --find cc) ARCH_CFLAGS := -isysroot $(SDK) \ -x objective-c -pedantic -fblocks \ -Wno-unused-parameter \ -Wimplicit -Wunused -Wcomment -Wchar-subscripts -Wuninitialized \ -Wreturn-type -Wpointer-arith -Wno-gnu-case-range -Wno-gnu-designator \ -Wno-deprecated-declarations -Wno-unknown-pragmas -Wno-attributes \ -Wno-embedded-directive ARCH_LDFLAGS := -F/System/Library/PrivateFrameworks -framework CoreSymbolication -framework IOKit \ -F$(SDK_V)/System/Library/Frameworks -F$(SDK_V)/System/Library/PrivateFrameworks \ -F$(SDK)/System/Library/Frameworks \ -framework Foundation -framework ApplicationServices -framework Symbolication \ -framework CoreServices -framework CrashReporterSupport -framework CoreFoundation \ -framework CommerceKit $(CRASH_REPORT) XCODE_VER := $(shell xcodebuild -version | grep $(GREP_COLOR) "^Xcode" | cut -d " " -f2) # OS Darwin else ifeq ($(OS),NetBSD) ARCH := NETBSD ARCH_SRCS := $(sort $(wildcard netbsd/*.c)) ARCH_CFLAGS := -I/usr/pkg/include \ -D_KERNTYPES ARCH_LDFLAGS := -L/usr/local/lib -L/usr/pkg/lib \ -lcapstone -lrt -lm \ -Wl,--rpath=/usr/pkg/lib # OS NetBSD else ARCH := POSIX ARCH_SRCS := $(sort $(wildcard posix/*.c)) ARCH_CFLAGS := -Wno-initializer-overrides \ -Wno-unknown-warning-option -Wno-unknown-pragmas ARCH_LDFLAGS := -L/usr/local/lib -lm ifeq ($(OS),SunOS) ARCH_CFLAGS += -D_POSIX_C_SOURCE=200809L -D__EXTENSIONS__=1 ARCH_LDFLAGS += -lkstat -lsocket -lnsl endif ifneq ($(OS),OpenBSD) ARCH_LDFLAGS += -lrt endif # OS Posix endif CFLAGS_BLOCKS := COMPILER = $(shell $(CC) -v 2>&1 | \ grep $(GREP_COLOR) -oE '((gcc|clang) version|LLVM version.*clang)' | \ grep $(GREP_COLOR) -oE '(clang|gcc)' | head -n1) ifeq ($(COMPILER),clang) ARCH_CFLAGS += -Wno-initializer-overrides -Wno-unknown-warning-option ARCH_CFLAGS += -Wno-gnu-empty-initializer -Wno-format-pedantic ARCH_CFLAGS += -Wno-gnu-statement-expression ARCH_CFLAGS += -mllvm -inline-threshold=2000 CFLAGS_BLOCKS = -fblocks ifneq ($(OS),Darwin) ARCH_LDFLAGS += -Wl,-Bstatic -lBlocksRuntime -Wl,-Bdynamic endif endif ifeq ($(COMPILER),gcc) ARCH_CFLAGS += -finline-limit=4000 endif SRCS := $(COMMON_SRCS) $(ARCH_SRCS) OBJS := $(SRCS:.c=.o) LHFUZZ_SRCS := $(sort $(wildcard libhfuzz/*.c)) LHFUZZ_OBJS := $(LHFUZZ_SRCS:.c=.o) LHFUZZ_ARCH := libhfuzz/libhfuzz.a LHFUZZ_SHARED := libhfuzz/libhfuzz.so HFUZZ_INC ?= $(shell pwd) LCOMMON_SRCS := $(sort $(wildcard libhfcommon/*.c)) LCOMMON_OBJS := $(LCOMMON_SRCS:.c=.o) LCOMMON_ARCH := libhfcommon/libhfcommon.a LNETDRIVER_SRCS := $(sort $(wildcard libhfnetdriver/*.c)) LNETDRIVER_OBJS := $(LNETDRIVER_SRCS:.c=.o) LNETDRIVER_ARCH := libhfnetdriver/libhfnetdriver.a # Respect external user defines CFLAGS += $(COMMON_CFLAGS) $(ARCH_CFLAGS) -D_HF_ARCH_${ARCH} LDFLAGS += $(COMMON_LDFLAGS) $(ARCH_LDFLAGS) ifdef DEBUG CFLAGS += -g -ggdb -g3 LDFLAGS += -g -ggdb -g3 endif # Control Android builds ANDROID_API ?= android-26 # Minimal working version is android-23 ANDROID_DEBUG_ENABLED ?= false ANDROID_APP_ABI ?= armeabi-v7a ANDROID_SKIP_CLEAN ?= false NDK_BUILD_ARGS := ifeq ($(ANDROID_DEBUG_ENABLED),true) NDK_BUILD_ARGS += V=1 NDK_DEBUG=1 APP_OPTIM=debug endif # By default ndk-build cleans all project files to ensure that no semi-completed # builds reach the app package. The following flag disables this check. It's mainly # purposed to be used with android-all rule where we want recursive invocations # to keep previous targets' binaries. ifeq ($(ANDROID_SKIP_CLEAN),true) NDK_BUILD_ARGS += NDK_APP.local.cleaned_binaries=true endif ANDROID_NDK_TOOLCHAIN_VER := clang # clang works only against APIs >= 23 ifeq ($(ANDROID_APP_ABI),$(filter $(ANDROID_APP_ABI),armeabi-v7a)) ANDROID_NDK_TOOLCHAIN ?= arm-linux-androideabi-clang ANDROID_NDK_COMPILER_PREFIX := armv7a-linux-androideabi ANDROID_ARCH_CPU := arm else ifeq ($(ANDROID_APP_ABI),$(filter $(ANDROID_APP_ABI),x86)) ANDROID_NDK_TOOLCHAIN ?= x86-clang ANDROID_NDK_COMPILER_PREFIX := i686-linux-android ANDROID_ARCH_CPU := x86 else ifeq ($(ANDROID_APP_ABI),$(filter $(ANDROID_APP_ABI),arm64-v8a)) ANDROID_NDK_TOOLCHAIN ?= aarch64-linux-android-clang ANDROID_NDK_COMPILER_PREFIX := aarch64-linux-android ANDROID_ARCH_CPU := arm64 else ifeq ($(ANDROID_APP_ABI),$(filter $(ANDROID_APP_ABI),x86_64)) ANDROID_NDK_TOOLCHAIN ?= x86_64-clang ANDROID_NDK_COMPILER_PREFIX := x86_64-linux-android ANDROID_ARCH_CPU := x86_64 else $(error Unsuported / Unknown APP_API '$(ANDROID_APP_ABI)') endif SUBDIR_ROOTS := linux mac netbsd posix libhfuzz libhfcommon libhfnetdriver DIRS := . $(shell find $(SUBDIR_ROOTS) -type d) CLEAN_PATTERNS := *.o *~ core *.a *.dSYM *.la *.so *.dylib SUBDIR_GARBAGE := $(foreach DIR,$(DIRS),$(addprefix $(DIR)/,$(CLEAN_PATTERNS))) MAC_GARGBAGE := $(wildcard mac/mach_exc*) ANDROID_GARBAGE := obj libs CLEAN_TARGETS := core Makefile.bak \ $(OBJS) $(BIN) $(HFUZZ_CC_BIN) \ $(LHFUZZ_ARCH) $(LHFUZZ_SHARED) $(LHFUZZ_OBJS) \ $(LCOMMON_ARCH) $(LCOMMON_OBJS) \ $(LNETDRIVER_ARCH) $(LNETDRIVER_OBJS) \ $(MAC_GARGBAGE) $(ANDROID_GARBAGE) $(SUBDIR_GARBAGE) all: $(BIN) $(HFUZZ_CC_BIN) $(LHFUZZ_ARCH) $(LHFUZZ_SHARED) $(LCOMMON_ARCH) $(LNETDRIVER_ARCH) %.o: %.c $(CC) -c $(CFLAGS) $(CFLAGS_BLOCKS) -o $@ $< mac/mach_exc.h mac/mach_excServer.c mac/mach_excServer.h mac/mach_excUser.c &: mig -header mac/mach_exc.h -user mac/mach_excUser.c -sheader mac/mach_excServer.h \ -server mac/mach_excServer.c $(SDK)/usr/include/mach/mach_exc.defs mac/arch.o: mac/arch.c mac/mach_exc.h mac/mach_excServer.h $(CC) -c $(CFLAGS) $(CFLAGS_BLOCKS) -o $@ $< %.so: %.c $(CC) -fPIC -shared $(CFLAGS) -o $@ $< %.dylib: %.c $(CC) -fPIC -shared $(CFLAGS) -o $@ $< $(BIN): $(OBJS) $(LCOMMON_ARCH) $(LD) -o $(BIN) $(OBJS) $(LCOMMON_ARCH) $(LDFLAGS) $(HFUZZ_CC_BIN): $(LCOMMON_ARCH) $(LHFUZZ_ARCH) $(LNETDRIVER_ARCH) $(HFUZZ_CC_SRCS) $(LD) -o $@ $(HFUZZ_CC_SRCS) $(LCOMMON_ARCH) $(LDFLAGS) $(CFLAGS) $(CFLAGS_BLOCKS) -D_HFUZZ_INC_PATH=$(HFUZZ_INC) $(LCOMMON_OBJS): $(LCOMMON_SRCS) $(CC) -c $(CFLAGS) $(LIBS_CFLAGS) -o $@ $(@:.o=.c) $(LCOMMON_ARCH): $(LCOMMON_OBJS) $(AR) rcs $(LCOMMON_ARCH) $(LCOMMON_OBJS) $(LHFUZZ_OBJS): $(LHFUZZ_SRCS) $(CC) -c $(CFLAGS) $(LIBS_CFLAGS) -o $@ $(@:.o=.c) $(LHFUZZ_ARCH): $(LHFUZZ_OBJS) $(AR) rcs $(LHFUZZ_ARCH) $(LHFUZZ_OBJS) $(LHFUZZ_SHARED): $(LHFUZZ_OBJS) $(LCOMMON_OBJS) $(LD) -shared $(LHFUZZ_OBJS) $(LCOMMON_OBJS) $(LDFLAGS) -o $@ $(LNETDRIVER_OBJS): $(LNETDRIVER_SRCS) $(CC) -c $(CFLAGS) $(LIBS_CFLAGS) -o $@ $(@:.o=.c) $(LNETDRIVER_ARCH): $(LNETDRIVER_OBJS) $(AR) rcs $(LNETDRIVER_ARCH) $(LNETDRIVER_OBJS) .PHONY: clean clean: $(RM) -r $(CLEAN_TARGETS) .PHONY: indent indent: clang-format -i -sort-includes *.c *.h */*.c */*.h .PHONY: depend depend: all makedepend -Y. -Y* -- *.c */*.c .PHONY: android android: $(info ***************************************************************) $(info * Use Android NDK 20 or newer *) $(info ***************************************************************) @ANDROID_API=$(ANDROID_API) ANDROID_NDK_COMPILER_PREFIX=$(ANDROID_NDK_COMPILER_PREFIX) third_party/android/scripts/compile-libunwind.sh \ third_party/android/libunwind $(ANDROID_ARCH_CPU) @ANDROID_API=$(ANDROID_API) ANDROID_NDK_COMPILER_PREFIX=$(ANDROID_NDK_COMPILER_PREFIX) third_party/android/scripts/compile-capstone.sh \ third_party/android/capstone $(ANDROID_ARCH_CPU) @ANDROID_API=$(ANDROID_API) ANDROID_NDK_COMPILER_PREFIX=$(ANDROID_NDK_COMPILER_PREFIX) third_party/android/scripts/compile-libBlocksRuntime.sh \ third_party/android/libBlocksRuntime $(ANDROID_ARCH_CPU) ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./android/Android.mk \ APP_PLATFORM=$(ANDROID_API) APP_ABI=$(ANDROID_APP_ABI) \ NDK_TOOLCHAIN=$(ANDROID_NDK_TOOLCHAIN) NDK_TOOLCHAIN_VERSION=$(ANDROID_NDK_TOOLCHAIN_VER) \ $(NDK_BUILD_ARGS) APP_MODULES='honggfuzz hfuzz hfnetdriver' # Loop all ABIs and pass-through flags since visibility is lost due to sub-process .PHONY: android-all android-all: @echo "Cleaning workspace:" $(MAKE) clean @echo "" for abi in armeabi-v7a arm64-v8a x86 x86_64; do \ ANDROID_APP_ABI=$$abi ANDROID_SKIP_CLEAN=true \ ANDROID_API=$(ANDROID_API) ANDROID_DEBUG_ENABLED=$(ANDROID_DEBUG_ENABLED) \ $(MAKE) android || { \ echo "Recursive make failed"; exit 1; }; \ echo ""; \ done .PHONY: android-clean-deps android-clean-deps: @for cpu in arm arm64 x86 x86_64; do \ make -C "third_party/android/capstone" clean; \ rm -rf "third_party/android/capstone/$$cpu"; \ make -C "third_party/android/libunwind" clean; \ rm -rf "third_party/android/libunwind/$$cpu"; \ ndk-build -C "third_party/android/libBlocksRuntime" \ NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk clean; \ rm -rf "third_party/android/libBlocksRuntime/$$cpu"; \ done PREFIX ?= /usr/local BIN_PATH = $(PREFIX)/bin INC_PATH = $(PREFIX)/include install: all mkdir -p -m 755 $${DESTDIR}$(BIN_PATH) install -m 755 honggfuzz $${DESTDIR}$(BIN_PATH) install -m 755 hfuzz_cc/hfuzz-cc $${DESTDIR}$(BIN_PATH) install -m 755 hfuzz_cc/hfuzz-clang $${DESTDIR}$(BIN_PATH) install -m 755 hfuzz_cc/hfuzz-clang++ $${DESTDIR}$(BIN_PATH) install -m 755 hfuzz_cc/hfuzz-gcc $${DESTDIR}$(BIN_PATH) install -m 755 hfuzz_cc/hfuzz-g++ $${DESTDIR}$(BIN_PATH) install -d $${DESTDIR}$(INC_PATH)/libhfcommon install -d $${DESTDIR}$(INC_PATH)/libhfuzz install -d $${DESTDIR}$(INC_PATH)/libhnetdriver install -m 755 includes/libhfcommon/*.h $${DESTDIR}$(INC_PATH)/libhfcommon install -m 755 includes/libhfuzz/*.h $${DESTDIR}$(INC_PATH)/libhfuzz install -m 755 includes/libhfnetdriver/*.h $${DESTDIR}$(INC_PATH)/libhnetdriver # DO NOT DELETE cmdline.o: cmdline.h honggfuzz.h libhfcommon/util.h display.h cmdline.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h cmdline.o: libhfcommon/log.h display.o: display.h honggfuzz.h libhfcommon/util.h libhfcommon/common.h display.o: libhfcommon/log.h fuzz.o: fuzz.h honggfuzz.h libhfcommon/util.h arch.h input.h fuzz.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h fuzz.o: libhfcommon/log.h report.h sanitizers.h socketfuzzer.h subproc.h honggfuzz.o: cmdline.h honggfuzz.h libhfcommon/util.h display.h fuzz.h honggfuzz.o: input.h libhfcommon/common.h libhfcommon/files.h honggfuzz.o: libhfcommon/common.h libhfcommon/log.h socketfuzzer.h subproc.h input.o: input.h honggfuzz.h libhfcommon/util.h fuzz.h libhfcommon/common.h input.o: libhfcommon/files.h libhfcommon/common.h libhfcommon/log.h mangle.h input.o: subproc.h mangle.o: mangle.h honggfuzz.h libhfcommon/util.h input.h mangle.o: libhfcommon/common.h libhfcommon/log.h report.o: report.h honggfuzz.h libhfcommon/util.h sanitizers.h report.o: libhfcommon/common.h libhfcommon/log.h sanitizers.o: sanitizers.h honggfuzz.h libhfcommon/util.h cmdline.h sanitizers.o: libhfcommon/common.h libhfcommon/log.h socketfuzzer.o: socketfuzzer.h honggfuzz.h libhfcommon/util.h socketfuzzer.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h socketfuzzer.o: libhfcommon/log.h libhfcommon/ns.h subproc.o: subproc.h honggfuzz.h libhfcommon/util.h arch.h fuzz.h subproc.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h subproc.o: libhfcommon/log.h hfuzz_cc/hfuzz-cc.o: honggfuzz.h libhfcommon/util.h libhfcommon/common.h hfuzz_cc/hfuzz-cc.o: libhfcommon/files.h libhfcommon/common.h hfuzz_cc/hfuzz-cc.o: libhfcommon/log.h libhfcommon/files.o: libhfcommon/files.h libhfcommon/common.h libhfcommon/files.o: libhfcommon/common.h libhfcommon/log.h libhfcommon/files.o: libhfcommon/util.h libhfcommon/log.o: libhfcommon/log.h libhfcommon/common.h libhfcommon/util.h libhfcommon/ns.o: libhfcommon/ns.h libhfcommon/common.h libhfcommon/files.h libhfcommon/ns.o: libhfcommon/common.h libhfcommon/log.h libhfcommon/util.o: libhfcommon/util.h libhfcommon/common.h libhfcommon/util.o: libhfcommon/files.h libhfcommon/common.h libhfcommon/util.o: libhfcommon/log.h libhfnetdriver/netdriver.o: libhfnetdriver/netdriver.h honggfuzz.h libhfnetdriver/netdriver.o: libhfcommon/util.h libhfcommon/common.h libhfnetdriver/netdriver.o: libhfcommon/files.h libhfcommon/common.h libhfnetdriver/netdriver.o: libhfcommon/log.h libhfcommon/ns.h libhfuzz/fetch.o: libhfuzz/fetch.h honggfuzz.h libhfcommon/util.h libhfuzz/fetch.o: libhfcommon/files.h libhfcommon/common.h libhfcommon/log.h libhfuzz/instrument.o: libhfuzz/instrument.h honggfuzz.h libhfcommon/util.h libhfuzz/instrument.o: libhfcommon/common.h libhfcommon/files.h libhfuzz/instrument.o: libhfcommon/common.h libhfcommon/log.h libhfuzz/linux.o: libhfcommon/common.h libhfcommon/files.h libhfuzz/linux.o: libhfcommon/common.h libhfcommon/log.h libhfcommon/ns.h libhfuzz/linux.o: libhfuzz/libhfuzz.h libhfuzz/memorycmp.o: libhfcommon/common.h libhfcommon/util.h libhfuzz/memorycmp.o: libhfuzz/instrument.h libhfuzz/performance.o: libhfuzz/performance.h honggfuzz.h libhfcommon/util.h libhfuzz/performance.o: libhfcommon/log.h libhfuzz/instrument.h libhfuzz/persistent.o: honggfuzz.h libhfcommon/util.h libhfcommon/common.h libhfuzz/persistent.o: libhfcommon/files.h libhfcommon/common.h libhfuzz/persistent.o: libhfcommon/log.h libhfuzz/fetch.h libhfuzz/persistent.o: libhfuzz/instrument.h libhfuzz/libhfuzz.h libhfuzz/persistent.o: libhfuzz/performance.h linux/arch.o: arch.h honggfuzz.h libhfcommon/util.h fuzz.h linux/arch.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h linux/arch.o: libhfcommon/log.h libhfcommon/ns.h linux/perf.h linux/trace.h linux/arch.o: sanitizers.h subproc.h linux/bfd.o: linux/bfd.h linux/unwind.h sanitizers.h honggfuzz.h linux/bfd.o: libhfcommon/util.h libhfcommon/common.h libhfcommon/files.h linux/bfd.o: libhfcommon/common.h libhfcommon/log.h linux/perf.o: linux/perf.h honggfuzz.h libhfcommon/util.h linux/perf.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h linux/perf.o: libhfcommon/log.h linux/pt.h linux/pt.o: linux/pt.h honggfuzz.h libhfcommon/util.h libhfcommon/common.h linux/pt.o: libhfcommon/log.h linux/trace.o: linux/trace.h honggfuzz.h libhfcommon/util.h linux/trace.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h linux/trace.o: libhfcommon/log.h linux/bfd.h linux/unwind.h sanitizers.h linux/trace.o: report.h socketfuzzer.h subproc.h linux/unwind.o: linux/unwind.h sanitizers.h honggfuzz.h libhfcommon/util.h linux/unwind.o: libhfcommon/common.h libhfcommon/log.h mac/arch.o: arch.h honggfuzz.h libhfcommon/util.h fuzz.h libhfcommon/common.h mac/arch.o: libhfcommon/files.h libhfcommon/common.h libhfcommon/log.h mac/arch.o: subproc.h netbsd/arch.o: arch.h honggfuzz.h libhfcommon/util.h fuzz.h netbsd/arch.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h netbsd/arch.o: libhfcommon/log.h libhfcommon/ns.h netbsd/trace.h subproc.h netbsd/trace.o: netbsd/trace.h honggfuzz.h libhfcommon/util.h netbsd/trace.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h netbsd/trace.o: libhfcommon/log.h netbsd/unwind.h sanitizers.h report.h netbsd/trace.o: subproc.h netbsd/unwind.o: netbsd/unwind.h sanitizers.h honggfuzz.h libhfcommon/util.h netbsd/unwind.o: libhfcommon/common.h libhfcommon/log.h posix/arch.o: arch.h honggfuzz.h libhfcommon/util.h fuzz.h posix/arch.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h posix/arch.o: libhfcommon/log.h report.h sanitizers.h subproc.h libhonggfuzz.a: $(OBJS) $(LCOMMON_ARCH) $(CRASH_REPORT) $(AR) rcs libhonggfuzz.a $(OBJS) $(CRASH_REPORT)