# Makefile for GeekOS kernel, userspace, and tools
# Copyright (c) 2004,2005 David H. Hovemeyer <daveho@cs.umd.edu>
-# $Revision: 1.1 $
+# $Revision: 1.2 $
# This is free software. You are permitted to use,
# redistribute, and modify it as specified in the file "COPYING".
#
# The setup code needs to copy it up to this address and jump there
#
-#KERNEL_BASE_ADDR := $(shell perl -e 'print sprintf("0x%x",$(TOP_OF_MEM)-4096*3-$(MAX_VMM));')
KERNEL_BASE_ADDR := 0x100000
# Kernel entry point function
PROJECT_ROOT := ..
VPATH := $(PROJECT_ROOT)/src
-#when -DNDEBUG is set the kassert functions are disabled
-#JRLDEBUG=-DNDEBUG
-JRLDEBUG= -DSERIAL_PRINT_DEBUG=1 -DSERIAL_PRINT_DEBUG_LEVEL=1000 -DSERIAL_PRINT=1
+ifeq ($(DEBUG_SERIAL),1)
+JRL_DEBUG := -DDEBUG_SERIAL
+endif
+
-#
-#
-#Peter's compile flags
-PAD=
# Figure out if we're compiling with cygwin, http://cygwin.com
SYSTEM_NAME := $(shell uname -s)
# Uncomment if cross compiling
#TARGET_CC_PREFIX := i386-elf-
+TARGET_CC_PREFIX := $(PROJECT_ROOT)/../../devtools/i386/bin/i386-elf-
# Target C compiler. gcc 2.95.2 or later should work.
TARGET_CC := $(TARGET_CC_PREFIX)gcc
-#TARGET_CC := $(TARGET_CC_PREFIX)gcc34 -m32
+
# Host C compiler. This is used to compile programs to execute on
# the host platform, not the target (x86) platform. On x86/ELF
TARGET_OBJCOPY := $(TARGET_CC_PREFIX)objcopy
# Nasm (http://nasm.sourceforge.net)
-NASM := $(PROJECT_ROOT)/../devtools/bin/nasm
+NASM := $(PROJECT_ROOT)/../../devtools/bin/nasm
#NASM := /opt/vmm-tools/bin/nasm
AS = as --32
# ----------------------------------------------------------------------
# Flags used for all C source files
-GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) $(JRLDEBUG) $(PADFLAGS)
+GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) $(JRL_DEBUG)
CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror
# Flags used for kernel C source files
cat geekos/fd_boot.bin geekos/setup.bin geekos/kernel.bin > $@
-# make ready to boot over PXE
-pxe: fd.img
- cp fd.img /tftpboot/vmm.img
- $(PAD) /tftpboot/vmm.img 1474560
+guest-img: fd.img
+ cp fd.img guest.img
+ $(PAD) guest.img 1474560
-vm: geekos/kernel.bin
- cp geekos/kernel.bin ../../vmm-hack1/build/vm_kernel
+guest-iso: guest-img
-geekos/test: geekos/test.o
- $(CC) geekos/test.o -o geekos/test
+ mkisofs -pad -b guest.img -R -o guest.iso guest.img