1*a98a962fSPatrick Mooney#
2*a98a962fSPatrick Mooney# This file and its contents are supplied under the terms of the
3*a98a962fSPatrick Mooney# Common Development and Distribution License ("CDDL"), version 1.0.
4*a98a962fSPatrick Mooney# You may only use this file in accordance with the terms of version
5*a98a962fSPatrick Mooney# 1.0 of the CDDL.
6*a98a962fSPatrick Mooney#
7*a98a962fSPatrick Mooney# A full copy of the text of the CDDL should have accompanied this
8*a98a962fSPatrick Mooney# source.  A copy of the CDDL is also available via the Internet at
9*a98a962fSPatrick Mooney# http://www.illumos.org/license/CDDL.
10*a98a962fSPatrick Mooney#
11*a98a962fSPatrick Mooney
12*a98a962fSPatrick Mooney# Copyright 2023 Oxide Computer Company
13*a98a962fSPatrick Mooney
14*a98a962fSPatrick Mooneyinclude $(SRC)/cmd/Makefile.cmd
15*a98a962fSPatrick Mooneyinclude $(SRC)/cmd/Makefile.cmd.64
16*a98a962fSPatrick Mooneyinclude $(SRC)/test/Makefile.com
17*a98a962fSPatrick Mooney
18*a98a962fSPatrick MooneyPROG =	entry_exit
19*a98a962fSPatrick Mooney
20*a98a962fSPatrick Mooney# C-based payloads need additional utils object
21*a98a962fSPatrick MooneyCPAYLOADS =	entry_exit
22*a98a962fSPatrick Mooney
23*a98a962fSPatrick MooneyPAYLOADS = $(PROG)
24*a98a962fSPatrick Mooneyinclude ../Makefile.in_guest
25*a98a962fSPatrick Mooney
26*a98a962fSPatrick MooneyCOMMON_OBJS =	in_guest.o common.o
27*a98a962fSPatrick Mooney
28*a98a962fSPatrick MooneyCLEANFILES =	$(COMMON_OBJS) $(PAYLOAD_CLEANFILES) payload_utils.o
29*a98a962fSPatrick MooneyCLOBBERFILES =	$(PROG)
30*a98a962fSPatrick Mooney
31*a98a962fSPatrick MooneyROOTOPTPKG = $(ROOT)/opt/bhyve-tests
32*a98a962fSPatrick MooneyTESTDIR = $(ROOTOPTPKG)/tests/perf
33*a98a962fSPatrick Mooney
34*a98a962fSPatrick MooneyCMDS = $(PROG:%=$(TESTDIR)/%)
35*a98a962fSPatrick Mooney$(CMDS) := FILEMODE = 0555
36*a98a962fSPatrick Mooney
37*a98a962fSPatrick MooneyCSTD=		$(CSTD_GNU99)
38*a98a962fSPatrick MooneyCPPFLAGS =	-I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \
39*a98a962fSPatrick Mooney		-I$(COMPAT)/bhyve/amd64 -I$(CONTRIB)/bhyve/amd64 \
40*a98a962fSPatrick Mooney		$(CPPFLAGS.master) \
41*a98a962fSPatrick Mooney		-I$(SRC)/uts/intel/io/vmm \
42*a98a962fSPatrick Mooney		-I$(SRC)/uts/intel \
43*a98a962fSPatrick Mooney		-I../common
44*a98a962fSPatrick Mooney
45*a98a962fSPatrick MooneyASFLAGS +=	-D_ASM
46*a98a962fSPatrick MooneyASFLAGS64 +=	-D_ASM
47*a98a962fSPatrick Mooney
48*a98a962fSPatrick Mooney$(PROG) :=	LDLIBS += -lvmmapi
49*a98a962fSPatrick Mooney
50*a98a962fSPatrick Mooneyall: $(PROG)
51*a98a962fSPatrick Mooney
52*a98a962fSPatrick Mooneyinstall: all $(CMDS)
53*a98a962fSPatrick Mooney
54*a98a962fSPatrick Mooneyclean:
55*a98a962fSPatrick Mooney	-$(RM) $(CLEANFILES)
56*a98a962fSPatrick Mooneyclobber: clean
57*a98a962fSPatrick Mooney	-$(RM) $(CLOBBERFILES)
58*a98a962fSPatrick Mooney
59*a98a962fSPatrick Mooney$(CMDS): $(TESTDIR) $(PROG)
60*a98a962fSPatrick Mooney
61*a98a962fSPatrick Mooney$(TESTDIR):
62*a98a962fSPatrick Mooney	$(INS.dir)
63*a98a962fSPatrick Mooney
64*a98a962fSPatrick Mooney$(TESTDIR)/%: %
65*a98a962fSPatrick Mooney	$(INS.file)
66*a98a962fSPatrick Mooney
67*a98a962fSPatrick Mooney%: %.c pobj_%.o $(COMMON_OBJS)
68*a98a962fSPatrick Mooney	$(LINK.c) -o $@ $^ $(LDLIBS)
69*a98a962fSPatrick Mooney	$(POST_PROCESS)
70*a98a962fSPatrick Mooney
71*a98a962fSPatrick Mooney%: %.o
72*a98a962fSPatrick Mooney	$(LINK.c) -o $@ $^ $(LDLIBS)
73*a98a962fSPatrick Mooney	$(POST_PROCESS)
74*a98a962fSPatrick Mooney
75*a98a962fSPatrick Mooney$(CPAYLOADS:%=payload_%): payload_utils.o
76