1 2include config.mak 3 4DESTDIR := $(PREFIX)/share/qemu/tests 5 6.PHONY: arch_clean clean 7 8#make sure env CFLAGS variable is not used 9CFLAGS = -g 10 11libgcc := $(shell $(CC) --print-libgcc-file-name) 12 13libcflat := lib/libcflat.a 14cflatobjs := \ 15 lib/panic.o \ 16 lib/printf.o \ 17 lib/string.o 18cflatobjs += lib/argv.o 19 20#include architecure specific make rules 21include config-$(ARCH).mak 22 23# cc-option 24# Usage: OP_CFLAGS+=$(call cc-option, -falign-functions=0, -malign-functions=0) 25 26cc-option = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null \ 27 > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;) 28 29CFLAGS += -O1 30CFLAGS += $(autodepend-flags) -g -fomit-frame-pointer -Wall 31CFLAGS += $(call cc-option, -fno-stack-protector, "") 32CFLAGS += $(call cc-option, -fno-stack-protector-all, "") 33CFLAGS += -I. 34 35CXXFLAGS += $(CFLAGS) 36 37autodepend-flags = -MMD -MF $(dir $*).$(notdir $*).d 38 39LDFLAGS += $(CFLAGS) 40LDFLAGS += -pthread -lrt 41 42kvmtrace_objs= kvmtrace.o 43 44kvmtrace: $(kvmtrace_objs) 45 $(CC) $(LDFLAGS) $^ -o $@ 46 47$(libcflat): $(cflatobjs) 48 $(AR) rcs $@ $^ 49 50%.o: %.S 51 $(CC) $(CFLAGS) -c -nostdlib -o $@ $< 52 53-include .*.d */.*.d */*/.*.d 54 55install: 56 mkdir -p $(DESTDIR) 57 install $(tests_and_config) $(DESTDIR) 58 59clean: arch_clean 60 $(RM) kvmtrace *.o *.a .*.d $(libcflat) $(cflatobjs) 61