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 16311330e6SAndy Fiddaman# Copyright 2022 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 \ 33*32640292SAndy Fiddaman acpi_device.c \ 344c87aefeSPatrick Mooney atkbdc.c \ 3559d65d31SAndy Fiddaman basl.c \ 364c87aefeSPatrick Mooney bhyvegc.c \ 374c87aefeSPatrick Mooney bhyverun.c \ 384c87aefeSPatrick Mooney block_if.c \ 394c87aefeSPatrick Mooney bootrom.c \ 402b948146SAndy Fiddaman config.c \ 41*32640292SAndy Fiddaman console.c \ 42*32640292SAndy Fiddaman crc16.c \ 43*32640292SAndy Fiddaman e820.c \ 444c87aefeSPatrick Mooney fwctl.c \ 454c87aefeSPatrick Mooney gdb.c \ 4659d65d31SAndy Fiddaman hexdump.c \ 474c87aefeSPatrick Mooney inout.c \ 484c87aefeSPatrick Mooney ioapic.c \ 49*32640292SAndy Fiddaman iov.c \ 504c87aefeSPatrick Mooney mem.c \ 514c87aefeSPatrick Mooney mevent.c \ 524c87aefeSPatrick Mooney mptbl.c \ 53069b2ef0SAndy Fiddaman net_backends.c \ 5484659b24SMichael Zeller net_utils.c \ 554c87aefeSPatrick Mooney pci_ahci.c \ 564c87aefeSPatrick Mooney pci_e82545.c \ 574c87aefeSPatrick Mooney pci_emul.c \ 584c87aefeSPatrick Mooney pci_fbuf.c \ 594c87aefeSPatrick Mooney pci_hostbridge.c \ 604c87aefeSPatrick Mooney pci_irq.c \ 614c87aefeSPatrick Mooney pci_lpc.c \ 624c87aefeSPatrick Mooney pci_nvme.c \ 634c87aefeSPatrick Mooney pci_passthru.c \ 644c87aefeSPatrick Mooney pci_uart.c \ 65aa693e99SJason King pci_virtio_9p.c \ 664c87aefeSPatrick Mooney pci_virtio_block.c \ 674c87aefeSPatrick Mooney pci_virtio_console.c \ 684c87aefeSPatrick Mooney pci_virtio_net.c \ 694c87aefeSPatrick Mooney pci_virtio_rnd.c \ 70b22a70abSPatrick Mooney pci_virtio_viona.c \ 714c87aefeSPatrick Mooney pci_xhci.c \ 726960cd89SAndy Fiddaman pctestdev.c \ 734c87aefeSPatrick Mooney pm.c \ 744c87aefeSPatrick Mooney post.c \ 752817ebc2SAndy Fiddaman privileges.c \ 764c87aefeSPatrick Mooney ps2kbd.c \ 774c87aefeSPatrick Mooney ps2mouse.c \ 78*32640292SAndy Fiddaman qemu_fwcfg.c \ 79*32640292SAndy Fiddaman qemu_loader.c \ 804c87aefeSPatrick Mooney rfb.c \ 814c87aefeSPatrick Mooney rtc.c \ 824c87aefeSPatrick Mooney smbiostbl.c \ 834c87aefeSPatrick Mooney sockstream.c \ 84*32640292SAndy Fiddaman spinup_ap.c \ 854c87aefeSPatrick Mooney task_switch.c \ 86*32640292SAndy Fiddaman tpm_device.c \ 87*32640292SAndy Fiddaman tpm_emul_passthru.c \ 88*32640292SAndy Fiddaman tpm_intf_crb.c \ 89*32640292SAndy Fiddaman tpm_ppi_qemu.c \ 904c87aefeSPatrick Mooney uart_emul.c \ 914c87aefeSPatrick Mooney usb_emul.c \ 924c87aefeSPatrick Mooney usb_mouse.c \ 934c87aefeSPatrick Mooney vga.c \ 944c87aefeSPatrick Mooney virtio.c \ 95154972afSPatrick Mooney vmgenc.c \ 964c87aefeSPatrick Mooney xmsr.c \ 974c87aefeSPatrick Mooney bhyve_sol_glue.c 984c87aefeSPatrick Mooney 99154972afSPatrick Mooney# We are not yet performing instruction emulation in userspace, so going to the 100154972afSPatrick Mooney# trouble of fixing the header tangle for this is not worth the complexity. 101154972afSPatrick Mooney #kernemu_dev.c \ 102154972afSPatrick Mooney 103b0de25cbSAndy Fiddaman# The virtio-scsi driver appears to include a slew of materials from FreeBSD's 1044c87aefeSPatrick Mooney# native SCSI implementation. We will omit that complexity for now. 1054c87aefeSPatrick Mooney #ctl_util.c \ 1064c87aefeSPatrick Mooney #ctl_scsi_all.c \ 1074c87aefeSPatrick Mooney #pci_virtio_scsi.c \ 1084c87aefeSPatrick Mooney 10984659b24SMichael Zeller# The audio backend in FreeBSD is different than the one found in audio_oss.h 11084659b24SMichael Zeller #audio.c \ 11184659b24SMichael Zeller #hda_codec.c \ 11284659b24SMichael Zeller #pci_hda.c \ 11384659b24SMichael Zeller 114b0de25cbSAndy Fiddaman# The virtio input device expects to link to a FreeBSD /dev/input/eventX device 115b0de25cbSAndy Fiddaman #pci_virtio_input.c \ 116b0de25cbSAndy Fiddaman 1174c87aefeSPatrick MooneyOBJS = $(SRCS:.c=.o) 1184c87aefeSPatrick Mooney 1194c87aefeSPatrick MooneyMEVENT_TEST_PROG = mevent_test 1204c87aefeSPatrick MooneyMEVENT_TEST_SRCS = mevent.c mevent_test.c 1214c87aefeSPatrick MooneyMEVENT_TEST_OBJS = $(MEVENT_TEST_SRCS:.c=.o) 1224c87aefeSPatrick Mooney 123311330e6SAndy FiddamanCLEANFILES = $(OBJS) $(MEVENT_TEST_OBJS) 124311330e6SAndy FiddamanCLOBBERFILES = $(PROG) $(MEVENT_TEST_PROG) 1254c87aefeSPatrick Mooney 126069b2ef0SAndy FiddamanCFLAGS += $(CCVERBOSE) 12759d65d31SAndy FiddamanCFLAGS += -_gcc=-Wimplicit-function-declaration 128d0b3c59bSPatrick MooneyCPPFLAGS = -I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \ 129d0b3c59bSPatrick Mooney -I$(COMPAT)/bhyve/amd64 -I$(CONTRIB)/bhyve/amd64 \ 130d0b3c59bSPatrick Mooney -I$(CONTRIB)/bhyve/dev/usb/controller \ 131d0b3c59bSPatrick Mooney -I$(CONTRIB)/bhyve/dev/mii \ 132aa693e99SJason King -I$(SRC)/lib/lib9p/common \ 1334c87aefeSPatrick Mooney -I$(SRC)/uts/common/io/e1000api \ 1344c87aefeSPatrick Mooney $(CPPFLAGS.master) \ 1357c8c0b82SPatrick Mooney -I$(SRC)/uts/intel/io/vmm \ 1364c87aefeSPatrick Mooney -I$(SRC)/uts/common \ 1377c8c0b82SPatrick Mooney -I$(SRC)/uts/intel \ 138*32640292SAndy Fiddaman -DWITHOUT_CAPSICUM \ 139*32640292SAndy Fiddaman -DOPENSSL_API_COMPAT=0x10100000L 1404c87aefeSPatrick Mooney 14159d65d31SAndy FiddamanSMOFF += all_func_returns 1421aa1f41fSAndy Fiddamanrfb.o := SMOFF= 1431aa1f41fSAndy Fiddaman 1444c87aefeSPatrick Mooney# Force c99 for everything 1454c87aefeSPatrick MooneyCSTD= $(CSTD_GNU99) 1464c87aefeSPatrick Mooney 14726624470SAndy Fiddaman$(PROG) := LDLIBS += \ 148aa693e99SJason King -l9p \ 1491aa1f41fSAndy Fiddaman -lcmdutils \ 1501aa1f41fSAndy Fiddaman -lcrypto \ 15126624470SAndy Fiddaman -ldladm \ 1521aa1f41fSAndy Fiddaman -ldlpi \ 1531aa1f41fSAndy Fiddaman -lidspace \ 15426624470SAndy Fiddaman -lmd \ 1551aa1f41fSAndy Fiddaman -lnsl \ 1562b948146SAndy Fiddaman -lnvpair \ 1571aa1f41fSAndy Fiddaman -lsocket \ 1581aa1f41fSAndy Fiddaman -lumem \ 15926624470SAndy Fiddaman -luuid \ 16026624470SAndy Fiddaman -lvmmapi \ 16126624470SAndy Fiddaman -lz 16226624470SAndy FiddamanNATIVE_LIBS += libz.so libcrypto.so 163e8d71297SAndy Fiddaman$(MEVENT_TEST_PROG) := LDLIBS += -lsocket 16490d74ed6SAndy Fiddaman$(PROG) := LDFLAGS += $(ZASLR) 1654c87aefeSPatrick Mooney 166bf21cd93STycho Nightingale.KEEP_STATE: 167bf21cd93STycho Nightingale 1684c87aefeSPatrick Mooneyall: $(PROG) $(MEVENT_TEST_PROG) $(SUBDIRS) 1694c87aefeSPatrick Mooney 1704c87aefeSPatrick Mooney$(PROG): $(OBJS) 1714c87aefeSPatrick Mooney $(LINK.c) -o $@ $(OBJS) $(LDFLAGS) $(LDLIBS) 1724c87aefeSPatrick Mooney $(POST_PROCESS) 1734c87aefeSPatrick Mooney 1744c87aefeSPatrick Mooney$(MEVENT_TEST_PROG): $(MEVENT_TEST_OBJS) 1754c87aefeSPatrick Mooney $(LINK.c) -o $@ $(MEVENT_TEST_OBJS) $(LDFLAGS) $(LDLIBS) 1764c87aefeSPatrick Mooney 1774c87aefeSPatrick Mooneyinstall: all $(ROOTUSRSBINPROG) $(SUBDIRS) 1784c87aefeSPatrick Mooney 1794c87aefeSPatrick Mooneyclean: $(SUBDIRS) 180311330e6SAndy Fiddaman $(RM) $(CLEANFILES) 1814c87aefeSPatrick Mooney 1824c87aefeSPatrick Mooneyclobber: clean $(SUBDIRS) 1834c87aefeSPatrick Mooney $(RM) $(CLOBBERFILES) 184bf21cd93STycho Nightingale 1854c87aefeSPatrick Mooney$(SUBDIRS): FRC 1864c87aefeSPatrick Mooney @cd $@; pwd; $(MAKE) $(TARGET) 187bf21cd93STycho Nightingale 188bf21cd93STycho NightingaleFRC: 189