xref: /kvm-unit-tests/Makefile (revision fd5d3dc60d413d77a93da79e65cc945aeb87cf4d)
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