-KERNELDIR := ../../linux-2.6.32.y/
-CONFIG_PALACIOS_PATH := /home/jarusl/palacios
+include $(PWD)/../.config
+LDFLAGS += --whole-archive --script=$(PWD)/ld.cmd
+ifdef V3_CONFIG_SYMMOD
+LDFLAGS += --script=$(PWD)/ld.symmod.cmd
+endif
+EXTRA_CFLAGS += -I$(PWD)/../palacios/include/ -include autoconf.h -DMODULE=1 -D__KERNEL__=1
-v3vee-objs := palacios.o palacios-dev.o palacios-vm.o palacios-file.o palacios-stream.o palacios-console.o palacios-mm.o palacios-serial.o palacios-queue.o palacios-ringbuffer.o
-#palacios-socket.o
-#palacios-vnet.o palacios-packet.o
-v3vee-objs += ../../palacios/libv3vee.a
+v3vee-objs := palacios.o \
+ palacios-dev.o \
+ palacios-vm.o \
+ palacios-mm.o \
+ palacios-queue.o \
+ palacios-hashtable.o
+ifdef V3_CONFIG_CONSOLE
+ v3vee-objs += palacios-console.o
+endif
-obj-m := v3vee.o
+ifdef V3_CONFIG_FILE
+ v3vee-objs += palacios-file.o
+endif
+
+ifdef V3_CONFIG_STREAM
+ v3vee-objs += palacios-stream.o \
+ palacios-ringbuffer.o
+endif
+
+ifdef V3_CONFIG_EXT_INSPECTOR
+ v3vee-objs += palacios-inspector.o
+endif
+
+ifdef V3_CONFIG_VNET
+ v3vee-objs += palacios-vnet.o palacios-vnet-bridge.o
+endif
+
+ifdef V3_CONFIG_PACKET
+ v3vee-objs += palacios-packet.o
+endif
+
+ifdef V3_CONFIG_SOCKET
+ v3vee-objs += palacios-socket.o
+endif
+
+ifdef V3_CONFIG_KEYED_STREAMS
+ v3vee-objs += palacios-keyed-stream.o
+endif
+ifdef V3_CONFIG_HOST_DEVICE
+ v3vee-objs += palacios-host-dev.o
+endif
-LDFLAGS = --whole-archive --script=$(PWD)/link.cmd
+ifdef V3_CONFIG_GRAPHICS_CONSOLE
+ v3vee-objs += palacios-graphics-console.o
+endif
-EXTRA_CFLAGS := -I$(CONFIG_PALACIOS_PATH)/palacios/include/ -DMODULE=1 -D__KERNEL__=1
+
+v3vee-objs += ../libv3vee.a
+
+
+
+obj-m := v3vee.o
all:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
+ $(MAKE) -C $(V3_CONFIG_LINUX_KERN) M=$(PWD) modules
-clean:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) clean
-install:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install /sbin/ -ae
+clean:
+ $(MAKE) -C $(V3_CONFIG_LINUX_KERN) M=$(PWD) clean