# Makefile for GeekOS kernel, userspace, and tools
# Copyright (c) 2004,2005 David H. Hovemeyer <daveho@cs.umd.edu>
-# $Revision: 1.28 $
+# $Revision: 1.33 $
# This is free software. You are permitted to use,
# redistribute, and modify it as specified in the file "COPYING".
# List of targets to build by default.
# These targets encompass everything needed to boot
# and run GeekOS.
-ALL_TARGETS := fd.img vm_kernel
+ALL_TARGETS := vmm.img vm_kernel
# Kernel source files
VMM_C_SRCS := vm_guest.c \
- svm.c svm_handler.c vmm.c vmm_util.c svm_ctrl_regs.c \
+ svm.c svm_handler.c vmm.c vmm_util.c vmm_ctrl_regs.c \
vmcb.c vmm_mem.c vmm_paging.c vmm_io.c vmm_debug.c svm_io.c \
vmm_intr.c vmm_irq.c\
vmm_shadow_paging.c vm_guest_mem.c \
VMM_OBJS := $(VMM_C_OBJS) $(VMM_ASM_OBJS)
-DEVICE_C_SRCS := nvram.c timer.c simple_pic.c 8259a.c
+DEVICE_C_SRCS := keyboard.c nvram.c timer.c simple_pic.c 8259a.c
DEVICE_C_OBJS := $(DEVICE_C_SRCS:%.c=devices/%.o)
CC_KERNEL_OPTS := -g -DGEEKOS -I$(PROJECT_ROOT)/include
# Flags used for VMM C source files
-CC_VMM_OPTS := -g -I$(PROJECT_ROOT)/include
+CC_VMM_OPTS := -g -I$(PROJECT_ROOT)/include -D__V3VEE__
# Flags used for VMM C ASM files
NASM_VMM_OPTS := -I$(PROJECT_ROOT)/src/palacios/ -f elf $(EXTRA_NASM_OPTS)
$(PAD) _temp 512
cat _temp vm_kernel > $@
+vmm.img : fd.img
+ cp fd.img vmm.img
+ $(PAD) vmm.img 1474560
+
+force_rombios:
+ (cd ../src/vmboot/rombios; make)
+
+world: force_rombios
+ ../scripts/make_payload.pl payload_layout.txt vm_kernel
+ make clean
+ make vmm.img
+
# make ready to boot over PXE
-pxe: fd.img
- cp fd.img /tftpboot/vmm.img
- $(PAD) /tftpboot/vmm.img 1474560
+pxe: vmm.img
+ cp vmm.img /tftpboot/vmm.img