Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


removed unused devices
[palacios.git] / build / Makefile
index e346632..77aba0f 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile for GeekOS kernel, userspace, and tools
+# Top level Makefile for V3Vee
 #
 #  Northwestern University 
 # (c) 2008, Jack Lange <jarusl@cs.northwestern.edu>
 # (c) 2008, Lei Xia <xiaxlei@gmail.com>
 # (c) 2008, The V3VEE Project <http://www.v3vee.org> 
 #
-# Based on GeekOS Makefile:
-# Copyright (c) 2004,2005 David H. Hovemeyer <daveho@cs.umd.edu>
-# $Revision: 1.71 $
-
-
-# This is free software.  You are permitted to use,
-# redistribute, and modify it as specified in the file "COPYING".
-
-# Required software to build GeekOS:
+# Required software to build V3Vee:
 # - GNU Make (http://www.gnu.org/software/make)
-# - gcc 2.95.2 generating code for target (i386/ELF) and host platforms
 # - nasm (http://nasm.sourceforge.net)
 # - Perl5, AWK (any version), egrep
 #
-# Cygwin (http://cygwin.com) may be used to build GeekOS.
-# Make sure that gcc, binutils, nasm, and perl are installed.
-
-# NOTES:
-# - This makefile has been written carefully to work correctly
-#   with the -j (parallel make) option.  I regularly use "make -j 2"
-#   to speed the build process on 2 processor systems.
-
-
 
 
-# ----------------------------------------------------------------------
-# Configuration -
-#   Various options specifying how GeekOS should be built,
-#   what source files to build, which user programs to build,
-#   etc.  This is generally the only section of the makefile
-#   that will need to be modified.
-# ----------------------------------------------------------------------
 PROJECT_ROOT := ..
-PALACIOS_BUILD_DIR := $(PROJECT_ROOT)/palacios/build
 GEEKOS_BUILD_DIR := $(PROJECT_ROOT)/geekos/build
 GUEST_ISO_DIR := /opt/vmm-tools/isos
 
 # List of targets to build by default.
 # These targets encompass everything needed to boot
 # and run GeekOS.
-ALL_TARGETS := palacios geekos
+ALL_TARGETS := geekos-full
 
 QEMU := /usr/local/qemu/bin/qemu-system-x86_64
 
 
-
-#when -DNDEBUG is set the kassert functions are disabled
-#JRLDEBUG=-DNDEBUG
-
-# DEBUG=1 means VMM_DEBUG, VMM_INFO, and VMM_TRACE are enabled
-# as are SERIAL_PRINT_DEBUG
-# 
-DEBUG_SECTIONS := DEBUG=1
-
-ifeq ($(DEBUG_ALL),1)
-  DEBUG_SECTIONS:= $(DEBUG_SECTIONS) DEBUG_ALL=1
-endif
-
-ifeq ($(DEBUG_SHADOW_PAGING),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_SHADOW_PAGING=1
-else 
-ifeq ($(DEBUG_SHADOW_PAGING),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_SHADOW_PAGING=0
-endif
-endif
-
-ifeq ($(DEBUG_CTRL_REGS),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_CTRL_REGS=1
-else 
-ifeq ($(DEBUG_CTRL_REGS),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_CTRL_REGS=0
-endif
-endif
-
-ifeq ($(DEBUG_INTERRUPTS),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_INTERRUPTS=1
-else 
-ifeq ($(DEBUG_INTERRUPTS),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_INTERRUPTS=0
-endif
-endif
-
-ifeq ($(DEBUG_IO),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_IO=1
-else 
-ifeq ($(DEBUG_IO),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_IO=0
-endif
-endif
-
-ifeq ($(DEBUG_KEYBOARD),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_KEYBOARD=1
-else 
-ifeq ($(DEBUG_KEYBOARD),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_KEYBOARD=0
-endif
-endif
-
-ifeq ($(DEBUG_PIC),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_PIC=1
-else 
-ifeq ($(DEBUG_PIC),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_PIC=0
-endif
+ifeq ($(PROFILE_VMM),1)
+  GEEKOS_FLAGS:= $(GEEKOS_FLAGS) PROFILE_VMM=1
 endif
 
-ifeq ($(DEBUG_PIT),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_PIT=1
-else 
-ifeq ($(DEBUG_PIT),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_PIT=0
-endif
+ifeq ($(INSTRUMENT_VMM),1)
+  GEEKOS_FLAGS:= $(GEEKOS_FLAGS) INSTRUMENT_VMM=1
 endif
 
-ifeq ($(DEBUG_NVRAM),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_NVRAM=1
-else 
-ifeq ($(DEBUG_NVRAM),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_NVRAM=0
-endif
-endif
-
-ifeq ($(DEBUG_GENERIC),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_GENERIC=1
-else 
-ifeq ($(DEBUG_GENERIC),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_GENERIC=0
-endif
-endif
-
-ifeq ($(DEBUG_EMULATOR),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_EMULATOR=1
-else 
-ifeq ($(DEBUG_EMULATOR),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_EMULATOR=0
-endif
-endif
-
-ifeq ($(DEBUG_RAMDISK),1)
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_RAMDISK=1
-else 
-ifeq ($(DEBUG_RAMDISK),0) 
-DEBUG_SECTIONS := $(DEBUG_SECTIONS) DEBUG_RAMDISK=0
-endif
-endif
 
 
 # ----------------------------------------------------------------------
@@ -162,28 +44,19 @@ endif
 all : $(ALL_TARGETS)
 
 
-
-palacios:
-       (cd $(PALACIOS_BUILD_DIR) && make $(DEBUG_SECTIONS) world)
-
-
-geekos: 
-       cp $(PALACIOS_BUILD_DIR)/libv3vee.a $(GEEKOS_BUILD_DIR)/palacios/
-       cp $(PALACIOS_BUILD_DIR)/../lib/xed/libxed.a $(GEEKOS_BUILD_DIR)/palacios/
-       cp $(PALACIOS_BUILD_DIR)/vm_kernel $(GEEKOS_BUILD_DIR)/palacios/
-       (cd $(GEEKOS_BUILD_DIR) && make clean && make)
-
-
+geekos:
+       cp $(PROJECT_ROOT)/libv3vee.a $(GEEKOS_BUILD_DIR)/palacios/
+       (cd $(GEEKOS_BUILD_DIR) && make $(GEEKOS_FLAGS))
 
 
 # make ready to boot over PXE
-geekos-pxe: geekos
+geekos-pxe: 
        cp $(GEEKOS_BUILD_DIR)/vmm.img /tftpboot/vmm.img
 
-geekos-run: geekos
+geekos-run: 
        $(QEMU) -m 1024 -serial file:serial.out -cdrom $(GUEST_ISO_DIR)/puppy.iso -fda $(GEEKOS_BUILD_DIR)/vmm.img 
 
-geekos-iso: geekos 
+geekos-iso: 
        cp $(GEEKOS_BUILD_DIR)/vmm.img iso/vmm.img
        mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o test.iso iso
 
@@ -196,7 +69,7 @@ force:
 
 # Clean build directories of generated files
 clean :
-       for d in $(GEEKOS_BUILD_DIR) $(PALACIOS_BUILD_DIR); do \
+       for d in $(GEEKOS_BUILD_DIR) do \
                (cd $$d && make clean); \
        done