1XEN_ROOT = $(CURDIR)/../../.. 2include $(XEN_ROOT)/tools/Rules.mk 3 4LIBELF_OBJS := libelf-tools.o libelf-loader.o libelf-dominfo.o 5 6CFLAGS += -iquote ../../../xen/common/libelf 7$(LIBELF_OBJS): CFLAGS += -Wno-pointer-sign 8$(LIBELF_OBJS): CFLAGS += -DFUZZ_NO_LIBXC $(CFLAGS_xeninclude) 9 10libelf-fuzzer.o: CFLAGS += $(CFLAGS_xeninclude) 11 12$(LIBELF_OBJS:.o=.c): libelf-%.c: ../../../xen/common/libelf/libelf-%.c FORCE 13 ln -nsf $< $@ 14 15libelf.a: libelf-fuzzer.o $(LIBELF_OBJS) 16 $(AR) rc $@ $^ 17 18.PHONY: libelf-fuzzer-all 19libelf-fuzzer-all: libelf.a libelf-fuzzer.o 20 21afl-libelf-fuzzer: afl-libelf-fuzzer.o libelf-fuzzer.o $(LIBELF_OBJS) 22 $(CC) $(CFLAGS) $^ -o $@ 23 24# Common targets 25.PHONY: all 26all: libelf-fuzzer-all 27 28.PHONY: distclean 29distclean: clean 30 31.PHONY: clean 32clean: 33 rm -f *.o .*.d *.a *-libelf-fuzzer $(LIBELF_OBJS:.o=.c) 34 35.PHONY: install 36install: all 37 38.PHONY: uninstall 39 40.PHONY: afl 41afl: afl-libelf-fuzzer 42