X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fbuild%2FMakefile;h=7587e292c93741749dd60acfab89a79f552e6aba;hb=ff58148c2cfbbc82405dc9ec25056cc93c773083;hp=7e9603afab812eee8dac2958c45039cf7e7686d3;hpb=c6ae41adef1bd7d54bc7e74abc4a5438e203d754;p=palacios.git diff --git a/palacios/build/Makefile b/palacios/build/Makefile index 7e9603a..7587e29 100644 --- a/palacios/build/Makefile +++ b/palacios/build/Makefile @@ -1,6 +1,6 @@ # Makefile for GeekOS kernel, userspace, and tools # Copyright (c) 2004,2005 David H. Hovemeyer -# $Revision: 1.5 $ +# $Revision: 1.12 $ # This is free software. You are permitted to use, # redistribute, and modify it as specified in the file "COPYING". @@ -23,7 +23,7 @@ # THESE MUST MATCH WHAT IS DEFINED IN defs.h and defs.asm exactly # MUST BE INTEGRAL NUMBER OF PAGES -TOP_OF_MEM := 0x40000000 +TOP_OF_MEM := 0x30000000 VM_SIZE := 0x20000000 VM_START := 0x0 @@ -54,7 +54,7 @@ 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 +JRLDEBUG= -DSERIAL_PRINT_DEBUG=1 -DSERIAL_PRINT_DEBUG_LEVEL=10 -DSERIAL_PRINT=1 # # @@ -85,7 +85,7 @@ VMM_SIZES = ../include/geekos/vmm_sizes.h # List of targets to build by default. # These targets encompass everything needed to boot # and run GeekOS. -ALL_TARGETS := fd.img VM_linux_kernel +ALL_TARGETS := fd.img vm_kernel # Kernel source files @@ -97,14 +97,16 @@ KERNEL_C_SRCS := idt.c int.c trap.c irq.c io.c \ bget.c malloc.c \ synch.c kthread.c \ serial.c reboot.c \ - paging.c vmx.c vmcs_gen.c vmcs.c\ + paging.c vmx.c vmcs_gen.c vmcs.c \ + svm.c vmm.c vmm_util.c vmm_stubs.c \ + debug.c\ main.c # Kernel object files built from C source files KERNEL_C_OBJS := $(KERNEL_C_SRCS:%.c=geekos/%.o) # Kernel assembly files -KERNEL_ASM_SRCS := lowlevel.asm vmx_lowlevel.asm +KERNEL_ASM_SRCS := lowlevel.asm vmx_lowlevel.asm svm_lowlevel.asm KERNEL_GAS_SRCS := testvm.s @@ -136,7 +138,8 @@ COMMON_C_OBJS := $(COMMON_C_SRCS:%.c=common/%.o) # ---------------------------------------------------------------------- # Uncomment if cross compiling -#TARGET_CC_PREFIX := i386-elf- +TARGET_CC_PREFIX := $(PROJECT_ROOT)/../devtools/i386/bin/i386-elf- +#TARGET_CC_PREFIX := i386-elf- # Target C compiler. gcc 2.95.2 or later should work. TARGET_CC := $(TARGET_CC_PREFIX)gcc @@ -165,6 +168,7 @@ TARGET_OBJCOPY := $(TARGET_CC_PREFIX)objcopy # Nasm (http://nasm.sourceforge.net) NASM := $(PROJECT_ROOT)/../devtools/bin/nasm +#NASM := /opt/vmm-tools/bin/nasm AS = as --32 @@ -253,10 +257,10 @@ geekos/test: geekos/test.o geekos/vmcs.o geekos/vmx_lowlevel.o $(CC) geekos/test.o geekos/vmcs.o geekos/vmx_lowlevel.o -o geekos/test # Standard floppy image - just boots the kernel -fd.img : geekos/fd_boot.bin geekos/setup.bin geekos/kernel.bin VM_linux_kernel +fd.img : geekos/fd_boot.bin geekos/setup.bin geekos/kernel.bin vm_kernel cat geekos/fd_boot.bin geekos/setup.bin geekos/kernel.bin > _temp $(PAD) _temp 512 - cat _temp VM_linux_kernel > $@ + cat _temp vm_kernel > $@ # make ready to boot over PXE pxe: fd.img @@ -281,12 +285,12 @@ pxe-discovery-bjp600: fd.img # Floppy boot sector (first stage boot loader). -geekos/fd_boot.bin : geekos/setup.bin geekos/kernel.bin $(PROJECT_ROOT)/src/geekos/fd_boot.asm VM_linux_kernel +geekos/fd_boot.bin : geekos/setup.bin geekos/kernel.bin $(PROJECT_ROOT)/src/geekos/fd_boot.asm vm_kernel $(NASM) -f bin \ -I$(PROJECT_ROOT)/src/geekos/ \ -DNUM_SETUP_SECTORS=`$(NUMSECS) geekos/setup.bin` \ -DNUM_KERN_SECTORS=`$(NUMSECS) geekos/kernel.bin` \ - -DNUM_VM_KERNEL_SECTORS=`$(NUMSECS) VM_linux_kernel` \ + -DNUM_VM_KERNEL_SECTORS=`$(NUMSECS) vm_kernel` \ $(PROJECT_ROOT)/src/geekos/fd_boot.asm \ -o $@ @@ -322,7 +326,7 @@ generate_sizes: force echo "#define KERNEL_CORE_LENGTH (" `$(NUMSECS) geekos/kernel.bin` "*512)" >> $(VMM_SIZES) echo "#define KERNEL_END (KERNEL_LOAD_ADDRESS+KERNEL_CORE_LENGTH-1)" >> $(VMM_SIZES) - echo "#define VM_KERNEL_LENGTH (" `$(NUMSECS) VM_linux_kernel` "*512)" >> $(VMM_SIZES) + echo "#define VM_KERNEL_LENGTH (" `$(NUMSECS) vm_kernel` "*512)" >> $(VMM_SIZES) echo "#define VM_KERNEL_START (KERNEL_LOAD_ADDRESS + KERNEL_CORE_LENGTH)" >> $(VMM_SIZES) echo "#define VM_BOOT_PACKAGE_START (VM_KERNEL_START) " >> $(VMM_SIZES) echo "#define VM_BOOT_PACKAGE_END (VM_KERNEL_START+VM_KERNEL_LENGTH-1) " >> $(VMM_SIZES) @@ -341,9 +345,9 @@ get_kernel_size: make_show_sizes force: -VM_linux_kernel: force - $(PAD) VM_linux_kernel 512 - @echo "VM kernel lives at 0x100000 and is" `$(NUMSECS) VM_linux_kernel` "sectors long" +vm_kernel: force + $(PAD) vm_kernel 512 + @echo "VM kernel lives at 0x100000 and is" `$(NUMSECS) vm_kernel` "sectors long" # Clean build directories of generated files