1 # Top level Makefile for V3Vee
3 # Northwestern University
4 # (c) 2008, Jack Lange <jarusl@cs.northwestern.edu>
5 # (c) 2008, Peter Dinda <pdinda@northwestern.edu>
6 # (c) 2008, Lei Xia <xiaxlei@gmail.com>
7 # (c) 2008, The V3VEE Project <http://www.v3vee.org>
9 # Required software to build V3Vee:
10 # - GNU Make (http://www.gnu.org/software/make)
11 # - nasm (http://nasm.sourceforge.net)
12 # - Perl5, AWK (any version), egrep
17 GEEKOS_BUILD_DIR := $(PROJECT_ROOT)/geekos/build
18 GUEST_ISO_DIR := /opt/vmm-tools/isos
20 # List of targets to build by default.
21 # These targets encompass everything needed to boot
23 ALL_TARGETS := geekos-full
25 QEMU := /usr/local/qemu/bin/qemu-system-x86_64
28 ifeq ($(PROFILE_VMM),1)
29 GEEKOS_FLAGS:= $(GEEKOS_FLAGS) PROFILE_VMM=1
32 ifeq ($(INSTRUMENT_VMM),1)
33 GEEKOS_FLAGS:= $(GEEKOS_FLAGS) INSTRUMENT_VMM=1
38 # ----------------------------------------------------------------------
40 # Specifies files to be built
41 # ----------------------------------------------------------------------
43 # Default target - see definition of ALL_TARGETS in Configuration section
48 cp $(PROJECT_ROOT)/libv3vee.a $(GEEKOS_BUILD_DIR)/palacios/
49 (cd $(GEEKOS_BUILD_DIR) && make $(GEEKOS_FLAGS))
52 # make ready to boot over PXE
54 cp $(GEEKOS_BUILD_DIR)/vmm.img /tftpboot/vmm.img
57 $(QEMU) -m 1024 -serial file:serial.out -cdrom $(GUEST_ISO_DIR)/puppy.iso -fda $(GEEKOS_BUILD_DIR)/vmm.img
60 cp $(GEEKOS_BUILD_DIR)/vmm.img iso/vmm.img
61 mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o test.iso iso
70 # Clean build directories of generated files
72 for d in $(GEEKOS_BUILD_DIR) do \
73 (cd $$d && make clean); \