1bf21cd93STycho Nightingale# 2bf21cd93STycho Nightingale# This file and its contents are supplied under the terms of the 3bf21cd93STycho Nightingale# Common Development and Distribution License ("CDDL"), version 1.0. 4bf21cd93STycho Nightingale# You may only use this file in accordance with the terms of version 5bf21cd93STycho Nightingale# 1.0 of the CDDL. 6bf21cd93STycho Nightingale# 7bf21cd93STycho Nightingale# A full copy of the text of the CDDL should have accompanied this 8bf21cd93STycho Nightingale# source. A copy of the CDDL is also available via the Internet at 9bf21cd93STycho Nightingale# http://www.illumos.org/license/CDDL. 10bf21cd93STycho Nightingale# 11bf21cd93STycho Nightingale 12bf21cd93STycho Nightingale# 13bf21cd93STycho Nightingale# Copyright 2014 Pluribus Networks Inc. 1426624470SAndy Fiddaman# Copyright 2020 Joyent, Inc. 15e0c0d44eSPatrick Mooney# Copyright 2020 Oxide Computer Company 162b948146SAndy Fiddaman# Copyright 2021 OmniOS Community Edition (OmniOSce) Association. 17bf21cd93STycho Nightingale# 18bf21cd93STycho Nightingale 19bf21cd93STycho NightingalePROG = bhyve 20bf21cd93STycho Nightingale 21bf21cd93STycho Nightingaleinclude ../Makefile.cmd 224c87aefeSPatrick Mooneyinclude ../Makefile.cmd.64 234c87aefeSPatrick Mooneyinclude ../Makefile.ctf 24bf21cd93STycho Nightingale 254c87aefeSPatrick MooneySUBDIRS = test 26bf21cd93STycho Nightingale 27bf21cd93STycho Nightingaleall := TARGET = all 28bf21cd93STycho Nightingaleinstall := TARGET = install 29bf21cd93STycho Nightingaleclean := TARGET = clean 30bf21cd93STycho Nightingaleclobber := TARGET = clobber 31bf21cd93STycho Nightingale 324c87aefeSPatrick MooneySRCS = acpi.c \ 334c87aefeSPatrick Mooney atkbdc.c \ 344c87aefeSPatrick Mooney bhyvegc.c \ 354c87aefeSPatrick Mooney bhyverun.c \ 364c87aefeSPatrick Mooney block_if.c \ 374c87aefeSPatrick Mooney bootrom.c \ 384c87aefeSPatrick Mooney console.c \ 392b948146SAndy Fiddaman config.c \ 404c87aefeSPatrick Mooney fwctl.c \ 414c87aefeSPatrick Mooney gdb.c \ 424c87aefeSPatrick Mooney inout.c \ 434c87aefeSPatrick Mooney ioapic.c \ 444c87aefeSPatrick Mooney mem.c \ 454c87aefeSPatrick Mooney mevent.c \ 464c87aefeSPatrick Mooney mptbl.c \ 4784659b24SMichael Zeller net_utils.c \ 484c87aefeSPatrick Mooney pci_ahci.c \ 494c87aefeSPatrick Mooney pci_e82545.c \ 504c87aefeSPatrick Mooney pci_emul.c \ 514c87aefeSPatrick Mooney pci_fbuf.c \ 524c87aefeSPatrick Mooney pci_hostbridge.c \ 534c87aefeSPatrick Mooney pci_irq.c \ 544c87aefeSPatrick Mooney pci_lpc.c \ 554c87aefeSPatrick Mooney pci_nvme.c \ 564c87aefeSPatrick Mooney pci_passthru.c \ 574c87aefeSPatrick Mooney pci_uart.c \ 584c87aefeSPatrick Mooney pci_virtio_block.c \ 594c87aefeSPatrick Mooney pci_virtio_console.c \ 604c87aefeSPatrick Mooney pci_virtio_net.c \ 614c87aefeSPatrick Mooney pci_virtio_rnd.c \ 62b22a70abSPatrick Mooney pci_virtio_viona.c \ 634c87aefeSPatrick Mooney pci_xhci.c \ 646960cd89SAndy Fiddaman pctestdev.c \ 654c87aefeSPatrick Mooney pm.c \ 664c87aefeSPatrick Mooney post.c \ 674c87aefeSPatrick Mooney ps2kbd.c \ 684c87aefeSPatrick Mooney ps2mouse.c \ 694c87aefeSPatrick Mooney rfb.c \ 704c87aefeSPatrick Mooney rtc.c \ 714c87aefeSPatrick Mooney smbiostbl.c \ 724c87aefeSPatrick Mooney sockstream.c \ 734c87aefeSPatrick Mooney task_switch.c \ 744c87aefeSPatrick Mooney uart_emul.c \ 754c87aefeSPatrick Mooney usb_emul.c \ 764c87aefeSPatrick Mooney usb_mouse.c \ 774c87aefeSPatrick Mooney vga.c \ 784c87aefeSPatrick Mooney virtio.c \ 79154972afSPatrick Mooney vmgenc.c \ 804c87aefeSPatrick Mooney xmsr.c \ 814c87aefeSPatrick Mooney spinup_ap.c \ 824c87aefeSPatrick Mooney iov.c \ 834c87aefeSPatrick Mooney bhyve_sol_glue.c 844c87aefeSPatrick Mooney 85154972afSPatrick Mooney# We are not yet performing instruction emulation in userspace, so going to the 86154972afSPatrick Mooney# trouble of fixing the header tangle for this is not worth the complexity. 87154972afSPatrick Mooney #kernemu_dev.c \ 88154972afSPatrick Mooney 894c87aefeSPatrick Mooney# The virtio-scsi driver appears to include a slew of materials from FreeBSD's 904c87aefeSPatrick Mooney# native SCSI implementation. We will omit that complexity for now. 914c87aefeSPatrick Mooney #ctl_util.c \ 924c87aefeSPatrick Mooney #ctl_scsi_all.c \ 934c87aefeSPatrick Mooney #pci_virtio_scsi.c \ 944c87aefeSPatrick Mooney 9584659b24SMichael Zeller# The audio backend in FreeBSD is different than the one found in audio_oss.h 9684659b24SMichael Zeller #audio.c \ 9784659b24SMichael Zeller #hda_codec.c \ 9884659b24SMichael Zeller #pci_hda.c \ 9984659b24SMichael Zeller 10084659b24SMichael Zeller# The bhyve generic net-backend stuff has been ignored by us at the moment 1016960cd89SAndy Fiddaman# because illumos users prefer to use viona for its superior network perf. 10284659b24SMichael Zeller #net_backends.c \ 10384659b24SMichael Zeller 1044c87aefeSPatrick Mooney 1054c87aefeSPatrick MooneyOBJS = $(SRCS:.c=.o) 1064c87aefeSPatrick Mooney 1074c87aefeSPatrick MooneyCLOBBERFILES = $(ROOTUSRSBINPROG) 1084c87aefeSPatrick Mooney 1094c87aefeSPatrick MooneyMEVENT_TEST_PROG = mevent_test 1104c87aefeSPatrick MooneyMEVENT_TEST_SRCS = mevent.c mevent_test.c 1114c87aefeSPatrick MooneyMEVENT_TEST_OBJS = $(MEVENT_TEST_SRCS:.c=.o) 1124c87aefeSPatrick Mooney 1134c87aefeSPatrick MooneyCLEANFILES = $(PROG) $(MEVENT_TEST_PROG) $(MEVENT_TEST_OBJS) 1144c87aefeSPatrick Mooney 1154c87aefeSPatrick MooneyCFLAGS += $(CCVERBOSE) -_gcc=-Wimplicit-function-declaration -_gcc=-Wno-parentheses 116d0b3c59bSPatrick MooneyCPPFLAGS = -I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \ 117d0b3c59bSPatrick Mooney -I$(COMPAT)/bhyve/amd64 -I$(CONTRIB)/bhyve/amd64 \ 118d0b3c59bSPatrick Mooney -I$(CONTRIB)/bhyve/dev/usb/controller \ 119d0b3c59bSPatrick Mooney -I$(CONTRIB)/bhyve/dev/mii \ 1204c87aefeSPatrick Mooney -I$(SRC)/uts/common/io/e1000api \ 1214c87aefeSPatrick Mooney $(CPPFLAGS.master) \ 1224c87aefeSPatrick Mooney -I$(SRC)/uts/i86pc/io/vmm \ 1234c87aefeSPatrick Mooney -I$(SRC)/uts/common \ 1244c87aefeSPatrick Mooney -I$(SRC)/uts/i86pc \ 1254c87aefeSPatrick Mooney -DWITHOUT_CAPSICUM 1264c87aefeSPatrick Mooney 1274c87aefeSPatrick Mooneypci_nvme.o := CERRWARN += -_gcc=-Wno-pointer-sign 1282b948146SAndy Fiddamanpci_nvme.o := CERRWARN += -_gcc10=-Wno-address-of-packed-member 129154972afSPatrick Mooneypci_nvme.o := SMOFF += kmalloc_wrong_size 1304c87aefeSPatrick Mooney 1312b948146SAndy Fiddamanpci_passthru.o := CERRWARN += -_gcc10=-Wno-address-of-packed-member 1322b948146SAndy Fiddaman 1332b948146SAndy Fiddamanpci_xhci.o := CERRWARN += -_gcc10=-Wno-address-of-packed-member 1342b948146SAndy Fiddaman 1354c87aefeSPatrick MooneySMOFF += all_func_returns,leaks,no_if_block 1364c87aefeSPatrick Mooney 1374c87aefeSPatrick Mooney# Force c99 for everything 1384c87aefeSPatrick MooneyCSTD= $(CSTD_GNU99) 1394c87aefeSPatrick Mooney 14026624470SAndy Fiddaman$(PROG) := LDLIBS += \ 14126624470SAndy Fiddaman -lsocket \ 14226624470SAndy Fiddaman -lnsl \ 14326624470SAndy Fiddaman -ldlpi \ 14426624470SAndy Fiddaman -ldladm \ 14526624470SAndy Fiddaman -lmd \ 1462b948146SAndy Fiddaman -lnvpair \ 14726624470SAndy Fiddaman -lcrypto \ 14826624470SAndy Fiddaman -luuid \ 14926624470SAndy Fiddaman -lvmmapi \ 15026624470SAndy Fiddaman -lz 15126624470SAndy FiddamanNATIVE_LIBS += libz.so libcrypto.so 1524c87aefeSPatrick Mooney$(MEVENT_TEST_PROG) := LDLIBS += -lsocket 153*90d74ed6SAndy Fiddaman$(PROG) := LDFLAGS += $(ZASLR) 1544c87aefeSPatrick Mooney 155bf21cd93STycho Nightingale.KEEP_STATE: 156bf21cd93STycho Nightingale 1574c87aefeSPatrick Mooneyall: $(PROG) $(MEVENT_TEST_PROG) $(SUBDIRS) 158bf21cd93STycho Nightingale 1594c87aefeSPatrick Mooney$(PROG): $(OBJS) 1604c87aefeSPatrick Mooney $(LINK.c) -o $@ $(OBJS) $(LDFLAGS) $(LDLIBS) 1614c87aefeSPatrick Mooney $(POST_PROCESS) 1624c87aefeSPatrick Mooney 1634c87aefeSPatrick Mooney$(MEVENT_TEST_PROG): $(MEVENT_TEST_OBJS) 1644c87aefeSPatrick Mooney $(LINK.c) -o $@ $(MEVENT_TEST_OBJS) $(LDFLAGS) $(LDLIBS) 1654c87aefeSPatrick Mooney 1664c87aefeSPatrick Mooneyinstall: all $(ROOTUSRSBINPROG) $(SUBDIRS) 1674c87aefeSPatrick Mooney 1684c87aefeSPatrick Mooneyclean: $(SUBDIRS) 1694c87aefeSPatrick Mooney $(RM) $(OBJS) $(CLEANFILES) 1704c87aefeSPatrick Mooney 1714c87aefeSPatrick Mooneyclobber: clean $(SUBDIRS) 1724c87aefeSPatrick Mooney $(RM) $(CLOBBERFILES) 1734c87aefeSPatrick Mooney 174bf21cd93STycho Nightingale$(SUBDIRS): FRC 1754c87aefeSPatrick Mooney @cd $@; pwd; $(MAKE) $(TARGET) 176bf21cd93STycho Nightingale 177bf21cd93STycho NightingaleFRC: 178