]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/modules/vmm/Makefile
Initial support for bhyve save and restore.
[FreeBSD/FreeBSD.git] / sys / modules / vmm / Makefile
1 # $FreeBSD$
2
3 .include <kmod.opts.mk>
4
5 KMOD=   vmm
6
7 SRCS=   opt_acpi.h opt_bhyve_snapshot.h opt_ddb.h
8 SRCS+=  device_if.h bus_if.h pci_if.h pcib_if.h acpi_if.h vnode_if.h
9 DPSRCS+=        vmx_assym.h svm_assym.h
10 DPSRCS+=        vmx_genassym.c svm_genassym.c offset.inc
11
12 CFLAGS+= -DVMM_KEEP_STATS
13 CFLAGS+= -I${SRCTOP}/sys/amd64/vmm
14 CFLAGS+= -I${SRCTOP}/sys/amd64/vmm/io
15 CFLAGS+= -I${SRCTOP}/sys/amd64/vmm/intel
16 CFLAGS+= -I${SRCTOP}/sys/amd64/vmm/amd
17
18 # generic vmm support
19 .PATH: ${SRCTOP}/sys/amd64/vmm
20 SRCS+=  vmm.c           \
21         vmm_dev.c       \
22         vmm_host.c      \
23         vmm_instruction_emul.c  \
24         vmm_ioport.c    \
25         vmm_lapic.c     \
26         vmm_mem.c       \
27         vmm_stat.c      \
28         vmm_util.c      \
29         x86.c
30
31 .PATH: ${SRCTOP}/sys/amd64/vmm/io
32 SRCS+=  iommu.c         \
33         ppt.c           \
34         vatpic.c        \
35         vatpit.c        \
36         vhpet.c         \
37         vioapic.c       \
38         vlapic.c        \
39         vpmtmr.c        \
40         vrtc.c
41
42 # intel-specific files
43 .PATH: ${SRCTOP}/sys/amd64/vmm/intel
44 SRCS+=  ept.c           \
45         vmcs.c          \
46         vmx_msr.c       \
47         vmx_support.S   \
48         vmx.c           \
49         vtd.c
50
51 # amd-specific files
52 .PATH: ${SRCTOP}/sys/amd64/vmm/amd
53 SRCS+=  vmcb.c          \
54         svm.c           \
55         svm_support.S   \
56         npt.c           \
57         ivrs_drv.c      \
58         amdvi_hw.c      \
59         svm_msr.c
60
61 .if ${KERN_OPTS:MBHYVE_SNAPSHOT} != ""
62 SRCS+=  vmm_snapshot.c
63 .endif
64
65 CLEANFILES=     vmx_assym.h vmx_genassym.o svm_assym.h svm_genassym.o
66
67 OBJS_DEPEND_GUESS.vmx_support.o+= vmx_assym.h
68 OBJS_DEPEND_GUESS.svm_support.o+= svm_assym.h
69
70 vmx_assym.h:    vmx_genassym.o
71         sh ${SYSDIR}/kern/genassym.sh vmx_genassym.o > ${.TARGET}
72
73 svm_assym.h:    svm_genassym.o
74         sh ${SYSDIR}/kern/genassym.sh svm_genassym.o > ${.TARGET}
75
76 vmx_support.o:
77         ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
78             ${.IMPSRC} -o ${.TARGET}
79
80 svm_support.o:
81         ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
82             ${.IMPSRC} -o ${.TARGET}
83
84 vmx_genassym.o: offset.inc
85         ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC}
86
87 svm_genassym.o: offset.inc
88         ${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC}
89
90 .include <bsd.kmod.mk>