109 lines
2 KiB
Makefile
109 lines
2 KiB
Makefile
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags)
|
|
|
|
ifeq ($V, 1)
|
|
VERBOSE =
|
|
else
|
|
VERBOSE = @
|
|
endif
|
|
|
|
include config.mk
|
|
|
|
VMM_SRC := \
|
|
src/vmm/x86.c \
|
|
src/vmm/vmm.c \
|
|
src/vmm/vmm_host.c \
|
|
src/vmm/vmm_mem.c \
|
|
src/vmm/vmm_lapic.c \
|
|
src/vmm/vmm_instruction_emul.c \
|
|
src/vmm/vmm_ioport.c \
|
|
src/vmm/vmm_callout.c \
|
|
src/vmm/vmm_stat.c \
|
|
src/vmm/vmm_util.c \
|
|
src/vmm/vmm_api.c \
|
|
src/vmm/intel/vmx.c \
|
|
src/vmm/intel/vmx_msr.c \
|
|
src/vmm/intel/vmcs.c \
|
|
src/vmm/io/vatpic.c \
|
|
src/vmm/io/vatpit.c \
|
|
src/vmm/io/vhpet.c \
|
|
src/vmm/io/vioapic.c \
|
|
src/vmm/io/vlapic.c \
|
|
src/vmm/io/vpmtmr.c \
|
|
src/vmm/io/vrtc.c
|
|
|
|
XHYVE_SRC := \
|
|
src/acpitbl.c \
|
|
src/atkbdc.c \
|
|
src/block_if.c \
|
|
src/consport.c \
|
|
src/dbgport.c \
|
|
src/inout.c \
|
|
src/ioapic.c \
|
|
src/md5c.c \
|
|
src/mem.c \
|
|
src/mevent.c \
|
|
src/mptbl.c \
|
|
src/pci_ahci.c \
|
|
src/pci_emul.c \
|
|
src/pci_hostbridge.c \
|
|
src/pci_irq.c \
|
|
src/pci_lpc.c \
|
|
src/pci_uart.c \
|
|
src/pci_virtio_block.c \
|
|
src/pci_virtio_net_tap.c \
|
|
src/pci_virtio_net_vmnet.c \
|
|
src/pci_virtio_rnd.c \
|
|
src/pm.c \
|
|
src/post.c \
|
|
src/rtc.c \
|
|
src/smbiostbl.c \
|
|
src/task_switch.c \
|
|
src/uart_emul.c \
|
|
src/xhyve.c \
|
|
src/virtio.c \
|
|
src/xmsr.c
|
|
|
|
FIRMWARE_SRC := \
|
|
src/firmware/kexec.c \
|
|
src/firmware/fbsd.c
|
|
|
|
SRC := \
|
|
$(VMM_SRC) \
|
|
$(XHYVE_SRC) \
|
|
$(FIRMWARE_SRC)
|
|
|
|
OBJ := $(SRC:src/%.c=build/%.o)
|
|
DEP := $(OBJ:%.o=%.d)
|
|
INC := -Iinclude
|
|
|
|
CFLAGS += -DVERSION=\"$(GIT_VERSION)\"
|
|
|
|
TARGET = build/xhyve
|
|
|
|
all: $(TARGET) | build
|
|
|
|
.PHONY: clean all
|
|
.SUFFIXES:
|
|
|
|
-include $(DEP)
|
|
|
|
build:
|
|
@mkdir -p build
|
|
|
|
build/%.o: src/%.c
|
|
@echo cc $<
|
|
@mkdir -p $(dir $@)
|
|
$(VERBOSE) $(ENV) $(CC) $(CFLAGS) $(INC) $(DEF) -MMD -MT $@ -MF build/$*.d -o $@ -c $<
|
|
|
|
$(TARGET).sym: $(OBJ)
|
|
@echo ld $(notdir $@)
|
|
$(VERBOSE) $(ENV) $(LD) $(LDFLAGS) -Xlinker $(TARGET).lto.o -o $@ $(OBJ)
|
|
@echo dsym $(notdir $(TARGET).dSYM)
|
|
$(VERBOSE) $(ENV) $(DSYM) $@ -o $(TARGET).dSYM
|
|
|
|
$(TARGET): $(TARGET).sym
|
|
@echo strip $(notdir $@)
|
|
$(VERBOSE) $(ENV) $(STRIP) $(TARGET).sym -o $@
|
|
|
|
clean:
|
|
@rm -rf build
|