2016-02-25 23:47:33 -08:00
|
|
|
COMP ?= clang
|
2016-02-25 23:37:37 -08:00
|
|
|
DISABLED_WARNINGS ?= -Wno-padded -Wno-disabled-macro-expansion
|
|
|
|
|
CFLAGS ?= -Weverything -Werror -O3 -g --std=gnu11 --pedantic-errors -fPIE -fstack-protector-strong -pthread -D_GNU_SOURCE $(DISABLED_WARNINGS)
|
|
|
|
|
LDFLAGS ?= $(CFLAGS) -Wl,-z,relro -Wl,-z,now -pie
|
2016-02-23 15:19:56 -08:00
|
|
|
LIBS ?= -ljansson -lprotobuf-c
|
2016-02-14 02:12:35 +00:00
|
|
|
|
2016-02-27 22:44:19 -08:00
|
|
|
TESTCASE_DIR ?= testcase
|
|
|
|
|
TESTOUT_DIR ?= testout
|
|
|
|
|
VALGRIND ?= valgrind
|
|
|
|
|
VALGRIND_FLAGS ?= --error-exitcode=1 --track-fds=yes --show-leak-kinds=all --leak-check=full
|
|
|
|
|
ADSBUS_TEST_FLAGS ?= --stdin --stdout=airspy_adsb --stdout=beast --stdout=json --stdout=proto --stdout=raw --stdout=stats
|
|
|
|
|
|
2016-02-22 16:58:13 -08:00
|
|
|
OBJ_NETWORK = incoming.o outgoing.o receive.o send.o
|
2016-02-23 15:19:56 -08:00
|
|
|
OBJ_PROTOCOL = airspy_adsb.o beast.o json.o proto.o raw.o stats.o
|
2016-02-26 10:30:18 -08:00
|
|
|
OBJ_UTIL = buf.o hex.o list.o opts.o packet.o peer.o rand.o resolve.o server.o socket.o uuid.o wakeup.o
|
2016-02-23 15:19:56 -08:00
|
|
|
OBJ_PROTO = adsb.pb-c.o
|
2016-02-22 14:45:18 -08:00
|
|
|
|
2016-02-14 02:12:35 +00:00
|
|
|
all: adsbus
|
|
|
|
|
|
|
|
|
|
clean:
|
2016-02-27 22:46:54 -08:00
|
|
|
rm -rf *.o adsbus testout
|
2016-02-14 02:12:35 +00:00
|
|
|
|
|
|
|
|
%.o: %.c *.h
|
2016-02-25 23:47:33 -08:00
|
|
|
$(COMP) -c $(CFLAGS) $< -o $@
|
2016-02-14 02:12:35 +00:00
|
|
|
|
2016-02-25 15:22:57 -08:00
|
|
|
adsb.pb-c.c: ../proto/adsb.proto
|
|
|
|
|
protoc-c --c_out=./ --proto_path=$(dir $<) $<
|
2016-02-23 15:19:56 -08:00
|
|
|
|
|
|
|
|
adsbus: adsbus.o $(OBJ_NETWORK) $(OBJ_PROTOCOL) $(OBJ_UTIL) $(OBJ_PROTO)
|
2016-02-25 23:47:33 -08:00
|
|
|
$(COMP) $(LDFLAGS) -o adsbus adsbus.o $(OBJ_NETWORK) $(OBJ_PROTOCOL) $(OBJ_UTIL) $(OBJ_PROTO) $(LIBS)
|
2016-02-27 22:25:25 -08:00
|
|
|
|
|
|
|
|
fuzz:
|
|
|
|
|
test -d findings || mkdir findings
|
|
|
|
|
$(MAKE) clean
|
|
|
|
|
COMP=afl-clang $(MAKE) adsbus
|
|
|
|
|
afl-fuzz -i testcase/ -o findings/ ./adsbus --stdin --stdout=airspy_adsb --stdout=beast --stdout=json --stdout=proto --stdout=raw --stdout=stats
|
2016-02-27 22:44:19 -08:00
|
|
|
|
|
|
|
|
$(TESTOUT_DIR)/%: $(TESTCASE_DIR)/% adsbus
|
|
|
|
|
$(VALGRIND) $(VALGRIND_FLAGS) ./adsbus $(ADSBUS_TEST_FLAGS) >/dev/null 2>$@ < $<
|
|
|
|
|
|
2016-02-27 22:46:54 -08:00
|
|
|
test:
|
|
|
|
|
test -d $(TESTOUT_DIR) || mkdir $(TESTOUT_DIR)
|
|
|
|
|
$(MAKE) realtest
|
|
|
|
|
|
|
|
|
|
realtest: $(patsubst $(TESTCASE_DIR)/%,$(TESTOUT_DIR)/%,$(wildcard $(TESTCASE_DIR)/*))
|