KERNEL_SOURCE ?= /lib/modules/$(shell uname -r)/build

# this is taken from the original Makefile
KFLAGS   := -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0
ifndef CONFIG_VBOXDRV_FIXEDMAJOR
 KFLAGS  += -DCONFIG_VBOXDRV_AS_MISC
endif
#ifeq ($(BUILD_TARGET_ARCH),amd64)
# KFLAGS  += -DRT_ARCH_AMD64
#else
# KFLAGS  += -DRT_ARCH_X86
#endif

# bwalle
ifeq ($(xARCH),x86_64)
 KFLAGS  += -DRT_ARCH_AMD64
else
 KFLAGS  += -DRT_ARCH_X86
endif
# end bwalle

#
# Without IDT patching. See defetct #2160.
#
KFLAGS += -DVBOX_WITHOUT_IDT_PATCHING

#
# Use the RTR0MemObj API - testing.
# If this makes testboxes crash/burn/leak disable it and add a comment to defect #2116.
#
KFLAGS += -DUSE_NEW_OS_INTERFACE_FOR_MM


EXTRA_CFLAGS += $(addprefix -I$(KBUILD_EXTMOD),/ /include) $(KFLAGS)

# bwalle
EXTRA_CFLAGS += -I$(xPWD)/r0drv/linux/
# end bwalle

vboxdrv-obj-y = \
	linux/SUPDrv-linux.o \
	SUPDRVShared.o \
	alloc/heapsimple.o \
	r0drv/alloc-r0drv.o \
	r0drv/initterm-r0drv.o \
	r0drv/linux/alloc-r0drv-linux.o \
	r0drv/linux/initterm-r0drv-linux.o \
	r0drv/linux/process-r0drv-linux.o \
	r0drv/linux/semaphore-r0drv-linux.o \
	r0drv/linux/spinlock-r0drv-linux.o \
	r0drv/linux/thread-r0drv-linux.o \
	r0drv/memobj-r0drv.o \
	r0drv/linux/memobj-r0drv-linux.o
vboxdrv-objs := $(vboxdrv-obj-y)
obj-m += vboxdrv.o


modules modules_install clean:
	$(MAKE) -C $(KERNEL_SOURCE) SUBDIRS=$(shell pwd) $@

install: modules_install

all: modules
