1# SPDX-License-Identifier: GPL-2.0
2
3ccflags-y += -I $(srctree)/arch/x86/kvm
4ccflags-$(CONFIG_KVM_WERROR) += -Werror
5
6ifeq ($(CONFIG_FRAME_POINTER),y)
7OBJECT_FILES_NON_STANDARD_vmenter.o := y
8endif
9
10include $(srctree)/virt/kvm/Makefile.kvm
11
12kvm-y			+= x86.o emulate.o i8259.o irq.o lapic.o \
13			   i8254.o ioapic.o irq_comm.o cpuid.o pmu.o mtrr.o \
14			   hyperv.o debugfs.o mmu/mmu.o mmu/page_track.o \
15			   mmu/spte.o
16
17ifdef CONFIG_HYPERV
18kvm-y			+= kvm_onhyperv.o
19endif
20
21kvm-$(CONFIG_X86_64) += mmu/tdp_iter.o mmu/tdp_mmu.o
22kvm-$(CONFIG_KVM_XEN)	+= xen.o
23kvm-$(CONFIG_KVM_SMM)	+= smm.o
24
25kvm-intel-y		+= vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o \
26			   vmx/hyperv.o vmx/nested.o vmx/posted_intr.o
27kvm-intel-$(CONFIG_X86_SGX_KVM)	+= vmx/sgx.o
28
29kvm-amd-y		+= svm/svm.o svm/vmenter.o svm/pmu.o svm/nested.o svm/avic.o \
30			   svm/sev.o svm/hyperv.o
31
32ifdef CONFIG_HYPERV
33kvm-amd-y		+= svm/svm_onhyperv.o
34endif
35
36obj-$(CONFIG_KVM)	+= kvm.o
37obj-$(CONFIG_KVM_INTEL)	+= kvm-intel.o
38obj-$(CONFIG_KVM_AMD)	+= kvm-amd.o
39
40AFLAGS_svm/vmenter.o    := -iquote $(obj)
41$(obj)/svm/vmenter.o: $(obj)/kvm-asm-offsets.h
42
43AFLAGS_vmx/vmenter.o    := -iquote $(obj)
44$(obj)/vmx/vmenter.o: $(obj)/kvm-asm-offsets.h
45
46$(obj)/kvm-asm-offsets.h: $(obj)/kvm-asm-offsets.s FORCE
47	$(call filechk,offsets,__KVM_ASM_OFFSETS_H__)
48
49targets += kvm-asm-offsets.s
50clean-files += kvm-asm-offsets.h
51