xref: /illumos-gate/usr/src/test/bhyve-tests/tests/inst_emul/Makefile (revision 8ed63bc6926cb5db26dff2588e5d1622eda438ab)
1d2f938fdSPatrick Mooney#
2d2f938fdSPatrick Mooney# This file and its contents are supplied under the terms of the
3d2f938fdSPatrick Mooney# Common Development and Distribution License ("CDDL"), version 1.0.
4d2f938fdSPatrick Mooney# You may only use this file in accordance with the terms of version
5d2f938fdSPatrick Mooney# 1.0 of the CDDL.
6d2f938fdSPatrick Mooney#
7d2f938fdSPatrick Mooney# A full copy of the text of the CDDL should have accompanied this
8d2f938fdSPatrick Mooney# source.  A copy of the CDDL is also available via the Internet at
9d2f938fdSPatrick Mooney# http://www.illumos.org/license/CDDL.
10d2f938fdSPatrick Mooney#
11d2f938fdSPatrick Mooney
12*8ed63bc6SGreg Colombo# Copyright 2025 Oxide Computer Company
13d2f938fdSPatrick Mooney
14d2f938fdSPatrick Mooneyinclude $(SRC)/cmd/Makefile.cmd
15d2f938fdSPatrick Mooneyinclude $(SRC)/cmd/Makefile.cmd.64
16d2f938fdSPatrick Mooneyinclude $(SRC)/test/Makefile.com
17d2f938fdSPatrick Mooney
18d2f938fdSPatrick MooneyPROG =	rdmsr \
1983b49c54SPatrick Mooney	wrmsr \
201fde93bfSAndy Fiddaman	imul \
218cf9ea42Siximeow	cpuid \
22*8ed63bc6SGreg Colombo	cpuid_guest_state \
238cf9ea42Siximeow	inout
24578d9a56SPatrick Mooney
253f6fd99dSPatrick Mooney# These should probably go in the `vmm` tests, but since they depend on
263f6fd99dSPatrick Mooney# in-guest payloads, it is easier to build them here.
273f6fd99dSPatrick MooneyPROG +=	triple_fault \
281bf21c92SPatrick Mooney	exit_paging \
2923d9a8faSPatrick Mooney	page_dirty \
3072473353SPatrick Mooney	exit_consistent \
3172473353SPatrick Mooney	suspend_info \
3272473353SPatrick Mooney	vcpu_barrier
333f6fd99dSPatrick Mooney
34578d9a56SPatrick Mooney# C-based payloads need additional utils object
3572473353SPatrick MooneyCPAYLOADS =	cpuid \
36*8ed63bc6SGreg Colombo		cpuid_guest_state \
3772473353SPatrick Mooney		suspend_info
38d2f938fdSPatrick Mooney
39d2f938fdSPatrick MooneyPAYLOADS = $(PROG)
40d2f938fdSPatrick Mooneyinclude ../Makefile.in_guest
41d2f938fdSPatrick Mooney
424ac713daSLuqman AdenCOMMON_OBJS =	in_guest.o common.o
43d2f938fdSPatrick Mooney
44578d9a56SPatrick MooneyCLEANFILES =	$(COMMON_OBJS) $(PAYLOAD_CLEANFILES) payload_utils.o
45d2f938fdSPatrick MooneyCLOBBERFILES =	$(PROG)
46d2f938fdSPatrick Mooney
47d2f938fdSPatrick MooneyROOTOPTPKG = $(ROOT)/opt/bhyve-tests
48d2f938fdSPatrick MooneyTESTDIR = $(ROOTOPTPKG)/tests/inst_emul
49d2f938fdSPatrick Mooney
50d2f938fdSPatrick MooneyCMDS = $(PROG:%=$(TESTDIR)/%)
51d2f938fdSPatrick Mooney$(CMDS) := FILEMODE = 0555
52d2f938fdSPatrick Mooney
53d2f938fdSPatrick MooneyCSTD=		$(CSTD_GNU99)
54d2f938fdSPatrick MooneyCPPFLAGS =	-I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \
55d2f938fdSPatrick Mooney		-I$(COMPAT)/bhyve/amd64 -I$(CONTRIB)/bhyve/amd64 \
56d2f938fdSPatrick Mooney		$(CPPFLAGS.master) \
577c8c0b82SPatrick Mooney		-I$(SRC)/uts/intel/io/vmm \
587c8c0b82SPatrick Mooney		-I$(SRC)/uts/intel \
59d2f938fdSPatrick Mooney		-I../common
60d2f938fdSPatrick Mooney
615d9d9091SRichard LoweASFLAGS +=	-D_ASM
625d9d9091SRichard LoweASFLAGS64 +=	-D_ASM
63d2f938fdSPatrick Mooney
64d2f938fdSPatrick Mooney$(PROG) :=	LDLIBS += -lvmmapi
65d2f938fdSPatrick Mooney
66d2f938fdSPatrick Mooneyall: $(PROG)
67d2f938fdSPatrick Mooney
68d2f938fdSPatrick Mooneyinstall: all $(CMDS)
69d2f938fdSPatrick Mooney
70d2f938fdSPatrick Mooneyclean:
71d2f938fdSPatrick Mooney	-$(RM) $(CLEANFILES)
72d2f938fdSPatrick Mooneyclobber: clean
73d2f938fdSPatrick Mooney	-$(RM) $(CLOBBERFILES)
74d2f938fdSPatrick Mooney
75d2f938fdSPatrick Mooney$(CMDS): $(TESTDIR) $(PROG)
76d2f938fdSPatrick Mooney
77d2f938fdSPatrick Mooney$(TESTDIR):
78d2f938fdSPatrick Mooney	$(INS.dir)
79d2f938fdSPatrick Mooney
80d2f938fdSPatrick Mooney$(TESTDIR)/%: %
81d2f938fdSPatrick Mooney	$(INS.file)
82d2f938fdSPatrick Mooney
83d2f938fdSPatrick Mooney%: %.c pobj_%.o $(COMMON_OBJS)
84d2f938fdSPatrick Mooney	$(LINK.c) -o $@ $^ $(LDLIBS)
85d2f938fdSPatrick Mooney	$(POST_PROCESS)
86d2f938fdSPatrick Mooney
87d2f938fdSPatrick Mooney%: %.o
88d2f938fdSPatrick Mooney	$(LINK.c) -o $@ $^ $(LDLIBS)
89d2f938fdSPatrick Mooney	$(POST_PROCESS)
90578d9a56SPatrick Mooney
91578d9a56SPatrick Mooney$(CPAYLOADS:%=payload_%): payload_utils.o
92