1 include ..
/..
/..
/..
/scripts
/Kbuild.
include
5 top_srcdir
= ..
/..
/..
/..
7 UNAME_M
:= $(shell uname
-m
)
9 LIBKVM
= lib
/assert.c lib
/elf.c lib
/io.c lib
/kvm_util.c lib
/ucall.c lib
/sparsebit.c
10 LIBKVM_x86_64
= lib
/x86_64
/processor.c lib
/x86_64
/vmx.c
11 LIBKVM_aarch64
= lib
/aarch64
/processor.c
13 TEST_GEN_PROGS_x86_64
= x86_64
/platform_info_test
14 TEST_GEN_PROGS_x86_64
+= x86_64
/set_sregs_test
15 TEST_GEN_PROGS_x86_64
+= x86_64
/sync_regs_test
16 TEST_GEN_PROGS_x86_64
+= x86_64
/vmx_tsc_adjust_test
17 TEST_GEN_PROGS_x86_64
+= x86_64
/cr4_cpuid_sync_test
18 TEST_GEN_PROGS_x86_64
+= x86_64
/state_test
19 TEST_GEN_PROGS_x86_64
+= x86_64
/evmcs_test
20 TEST_GEN_PROGS_x86_64
+= x86_64
/hyperv_cpuid
21 TEST_GEN_PROGS_x86_64
+= x86_64
/vmx_close_while_nested_test
22 TEST_GEN_PROGS_x86_64
+= x86_64
/smm_test
23 TEST_GEN_PROGS_x86_64
+= dirty_log_test
24 TEST_GEN_PROGS_x86_64
+= clear_dirty_log_test
26 TEST_GEN_PROGS_aarch64
+= dirty_log_test
27 TEST_GEN_PROGS_aarch64
+= clear_dirty_log_test
29 TEST_GEN_PROGS
+= $(TEST_GEN_PROGS_
$(UNAME_M
))
30 LIBKVM
+= $(LIBKVM_
$(UNAME_M
))
32 INSTALL_HDR_PATH
= $(top_srcdir
)/usr
33 LINUX_HDR_PATH
= $(INSTALL_HDR_PATH
)/include/
34 LINUX_TOOL_INCLUDE
= $(top_srcdir
)/tools
/include
35 CFLAGS
+= -O2
-g
-std
=gnu99
-fno-stack-protector
-fno-PIE
-I
$(LINUX_TOOL_INCLUDE
) -I
$(LINUX_HDR_PATH
) -Iinclude
-I
$(<D
) -Iinclude
/$(UNAME_M
) -I..
37 no-pie-option
:= $(call try-run
, echo
'int main() { return 0; }' | \
38 $(CC
) -Werror
$(KBUILD_CPPFLAGS
) $(CC_OPTION_CFLAGS
) -no-pie
-x c
- -o
"$$TMP", -no-pie
)
40 LDFLAGS
+= -pthread
$(no-pie-option
)
42 # After inclusion, $(OUTPUT) is defined and
43 # $(TEST_GEN_PROGS) starts with $(OUTPUT)/
46 STATIC_LIBS
:= $(OUTPUT
)/libkvm.a
47 LIBKVM_OBJ
:= $(patsubst %.c
, $(OUTPUT
)/%.o
, $(LIBKVM
))
48 EXTRA_CLEAN
+= $(LIBKVM_OBJ
) $(STATIC_LIBS
) cscope.
*
50 x
:= $(shell mkdir
-p
$(sort $(dir $(LIBKVM_OBJ
))))
51 $(LIBKVM_OBJ
): $(OUTPUT
)/%.o
: %.c
52 $(CC
) $(CFLAGS
) $(CPPFLAGS
) $(TARGET_ARCH
) -c
$< -o
$@
54 $(OUTPUT
)/libkvm.a
: $(LIBKVM_OBJ
)
58 $(TEST_GEN_PROGS
): $(STATIC_LIBS
)
60 cscope
: include_paths
= $(LINUX_TOOL_INCLUDE
) $(LINUX_HDR_PATH
) include lib ..
63 (find
$(include_paths
) -name
'*.h' \
64 -exec realpath
--relative-base
=$(PWD
) {} \
;; \
66 -exec realpath
--relative-base
=$(PWD
) {} \
;) |
sort -u
> cscope.files