#
ifeq ($(LEAN_AND_MEAN),1)
-DEBUG=0
-DEBUG_SECTIONS=
+DEBUG := 0
+DEBUG_SECTIONS :=
else
-DEBUG=1
-DEBUG_SECTIONS=
+DEBUG := 1
+DEBUG_SECTIONS :=
endif
+ifeq ($(INSTRUMENT_VMM),1)
+ EXTRA_C_OPTS:= -DINSTRUMENT_VMM
+ INSTRUMENT_OPT := -finstrument-functions
+ OBJ_FILES := palacios/vmm_instrument.o
+else
+ INSTRUMENT_OPT :=
+endif
+
+
# ----------------------------------------------------------------------
# Configuration -
palacios/vmm_msr.o \
palacios/svm_msr.o \
palacios/vmm_socket.o \
+ palacios/vmm_xed.o \
+ palacios/vmm_rbtree.o \
+ palacios/vmm_profiler.o \
+ palacios/vmm_direct_paging.o \
+ palacios/vmm_ringbuffer.o \
+ $(OBJ_FILES)
# vmx.c vmcs_gen.c vmcs.c
xed/v3-xed-compat.o \
xed/v3-udiv-compat.o \
-$(XED_OBJS) :: EXTRA_CFLAGS =
-
+$(XED_OBJS) :: EXTRA_CFLAGS = \
+ $(JRLDEBUG) \
DEVICES_OBJS := \
devices/generic.o \
devices/ramdisk.o \
devices/cdrom.o \
devices/bochs_debug.o \
+ devices/os_debug.o \
+ devices/apic.o \
+ devices/io_apic.o \
-$(DEVICES_OBJS) :: EXTRA_CFLAGS =
-
-#
-# DECODER is the decoder that will be used
-# currently we only support xed
-#
-DECODER=XED
-
-ifeq ($(DECODER),XED)
-VMM_OBJS += palacios/vmm_xed.o
-else
-# This is an error
-endif
+$(DEVICES_OBJS) :: EXTRA_CFLAGS = \
+ $(JRLDEBUG) \
$(EXTRA_C_OPTS) \
$(VMM_FLAGS) \
-I$(PROJECT_ROOT)/include \
- -fPIC \
-Werror \
+ -fPIC \
-Wp,-MD,$(@D)/.$(@F).d \
-Wp,-MT,$@ \
+#-fPIC \
#-fvisibility=hidden
-
# Flags passed to objcopy program (strip unnecessary sections from kernel.exe)
OBJCOPY_FLAGS := -R .dynamic -R .note -R .comment
-c \
$< \
-o $@ \
+ $(INSTRUMENT_OPT) \
)
AS_COMPILE = \
-c \
$< \
-o $@ \
+ $(INSTRUMENT_OPT) \
)