# Makefile for GeekOS kernel, userspace, and tools
# Copyright (c) 2004,2005 David H. Hovemeyer <daveho@cs.umd.edu>
-# $Revision: 1.37 $
+# $Revision: 1.43 $
# This is free software. You are permitted to use,
# redistribute, and modify it as specified in the file "COPYING".
#when -DNDEBUG is set the kassert functions are disabled
#JRLDEBUG=-DNDEBUG
-JRLDEBUG= -DSERIAL_PRINT_DEBUG=1 -DSERIAL_PRINT_DEBUG_LEVEL=10 -DSERIAL_PRINT=1
+
+DEBUG=1
+
+ifeq ($(DEBUG),1)
+ JRLDEBUG= -DSERIAL_PRINT_DEBUG=1 -DSERIAL_PRINT_DEBUG_LEVEL=10 -DSERIAL_PRINT=1 -DVMM_DEBUG=1 -DVMM_INFO=1 -DVMM_TRACE=1
+else
+ JRLDEBUG= -DSERIAL_PRINT_DEBUG=0 -DSERIAL_PRINT_DEBUG_LEVEL=999999 -DSERIAL_PRINT=0 -DVMM_DEBUG=0 -DVMM_INFO=0 -DVMM_TRACE=0
+endif
#
#
#Peter's compile flags
PADFLAGS =
+#
+# This is wrong for current cygwin - no changes needed
+#
# Figure out if we're compiling with cygwin, http://cygwin.com
-SYSTEM_NAME := $(shell uname -s)
-ifeq ($(findstring CYGWIN,$(SYSTEM_NAME)),CYGWIN)
-SYM_PFX := _
-EXTRA_C_OPTS := -DNEED_UNDERSCORE -DGNU_WIN32
-EXTRA_NASM_OPTS := -DNEED_UNDERSCORE
-NON_ELF_SYSTEM := yes
-EXTRA_CC_USER_OPTS := -Dmain=geekos_main
-endif
+#
+#
+#SYSTEM_NAME := $(shell uname -s)
+#ifeq ($(findstring CYGWIN,$(SYSTEM_NAME)),CYGWIN)
+#SYM_PFX := _
+#EXTRA_C_OPTS := -DNEED_UNDERSCORE -DGNU_WIN32
+#EXTRA_NASM_OPTS := -DNEED_UNDERSCORE
+#NON_ELF_SYSTEM := yes
+#EXTRA_CC_USER_OPTS := -Dmain=geekos_main
+#endif
synch.c kthread.c \
serial.c reboot.c \
paging.c \
- debug.c vmm_stubs.c vm.c\
+ debug.c vmm_stubs.c vm.c pci.c\
main.c
# Kernel object files built from C source files
vmcb.c vmm_mem.c vmm_paging.c vmm_io.c vmm_debug.c svm_io.c \
vmm_intr.c vmm_time.c\
vmm_shadow_paging.c vm_guest_mem.c \
- vm_dev.c vmm_dev_mgr.c \
+ vm_dev.c vmm_dev_mgr.c vmm_decoder.c \
+ svm_halt.c
#\
# vmx.c vmcs_gen.c vmcs.c
VMM_OBJS := $(VMM_C_OBJS) $(VMM_ASM_OBJS)
-DEVICE_C_SRCS := generic.c keyboard.c nvram.c timer.c simple_pic.c 8259a.c 8254.c
+DEVICE_C_SRCS := generic.c keyboard.c nvram.c timer.c simple_pic.c 8259a.c 8254.c serial.c
DEVICE_C_OBJS := $(DEVICE_C_SRCS:%.c=devices/%.o)
force_rombios:
(cd ../src/vmboot/rombios; make clean; make)
-# cp ../src/vmboot/rombios/BIOS-bochs-latest rombios
force_vgabios:
(cd ../src/vmboot/vgabios; make clean; make)
-world: force_rombios force_vgabios
+force_payload: force_rombios force_vgabios
../scripts/make_payload.pl payload_layout.txt vm_kernel
- - make clean
- make vmm.img
+
+inter1: force_payload
+ -make clean
+
+world: inter1 vmm.img
# make ready to boot over PXE
pxe: vmm.img
cp vmm.img /tftpboot/vmm.img
+run: vmm.img
+ /usr/local/qemu/bin/qemu-system-x86_64 -m 1024 -serial file:serial.out -cdrom puppy.iso -fda vmm.img
+
+
# Floppy boot sector (first stage boot loader).