mirror of https://github.com/ludocode/mpack
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
966 B
Makefile
42 lines
966 B
Makefile
# This Makefile currently just builds fuzz.c into a fuzzer for use with
|
|
# american fuzzy lop. Don't use this directly; use tools/afl.sh to fuzz MPack.
|
|
|
|
ifeq (Makefile, $(firstword $(MAKEFILE_LIST)))
|
|
$(error The current directory should be the root of the repository. Try "cd ../.." and then "make -f test/fuzz/Makefile")
|
|
endif
|
|
|
|
CC=afl-gcc
|
|
|
|
CPPFLAGS := $(CPPFLAGS) \
|
|
-include test/fuzz/fuzz-config.h \
|
|
-Isrc \
|
|
-O0 -DDEBUG -g \
|
|
-MMD -MP \
|
|
|
|
BUILD := .build/fuzz
|
|
PROG := mpack-fuzz
|
|
|
|
SRCS := \
|
|
$(shell find src/ -type f -name '*.c') \
|
|
test/fuzz/fuzz.c
|
|
|
|
OBJS := $(patsubst %, $(BUILD)/%.o, $(SRCS))
|
|
|
|
GLOBAL_DEPENDENCIES := test/fuzz/Makefile
|
|
|
|
.PHONY: all
|
|
all: $(PROG)
|
|
|
|
-include $(patsubst %, $(BUILD)/%.d, $(SRCS))
|
|
|
|
.PHONY: $(PROG)
|
|
$(PROG): $(BUILD)/$(PROG)
|
|
|
|
$(OBJS): $(BUILD)/%.o: % $(GLOBAL_DEPENDENCIES)
|
|
@mkdir -p $(dir $@)
|
|
$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
|
|
|
|
$(BUILD)/$(PROG): $(OBJS)
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|