diff --git a/Driver/pcie40_driver/Makefile b/Driver/pcie40_driver/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..568f0019efb6aea1826e986059f2e1afeba1f710
--- /dev/null
+++ b/Driver/pcie40_driver/Makefile
@@ -0,0 +1,48 @@
+# Makefile for 2.6+ kernels
+#
+# Will compile and install for other kernel than the currently running,
+# given the TARGET parameter (should be the name of a directory in
+# /lib/modules) e.g.
+# make TARGET=2.6.32.10-90.fc12.x86_64
+#
+DAQ40_VER_REL ?=local-wip
+ifneq ($(KERNELRELEASE),)
+obj-m :=lhcb_pcie40.o lhcb_pcie40_emu.o
+lhcb_pcie40-y :=common.o main.o ecs.o daq.o
+lhcb_pcie40_emu-y :=common.o main_emu.o ecs_emu.o daq_emu.o
+ccflags-y :=-DDAQ40_VER_REL=\"$(DAQ40_VER_REL)\"
+else
+ifeq ($(TARGET),)
+TARGET :=$(shell uname -r)
+endif
+PWD :=$(shell pwd)
+KDIR :=/lib/modules/$(TARGET)/build
+
+default:
+	@echo $(TARGET) > module.target
+	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
+
+default: pcie40_dma_regmap.h pcie40_ioctl.h common.h common.c ecs.h daq.h
+
+default: main.c ecs.c daq.c
+
+default: main_emu.c ecs_emu.c daq_emu.c
+
+clean:
+	@rm -f *.ko *.o .*.cmd modules.order Module.symvers *.mod.? .pcie40.* *~ *.unsigned
+	@rm -rf .tmp_versions module.target
+
+install: lhcb_pcie40.ko
+	install --mode 0755 -d /lib/modules/$(shell cat module.target)/extra
+	install --mode 0644 lhcb_pcie40.ko /lib/modules/$(shell cat module.target)/extra
+	install --mode 0644 lhcb_pcie40_emu.ko /lib/modules/$(shell cat module.target)/extra
+	/sbin/depmod -a $(shell cat module.target)
+
+lhcb_pcie40.ko lhcb_pcie40_emu.ko:
+	$(MAKE)
+
+ifneq ("$(wildcard ../common/pcie40_dma_regmap.cfg)","")
+pcie40_dma_regmap.h: ../common/pcie40_dma_regmap.cfg
+	../common/regmap_cfg_to_h.tcl P40_ $< > $@ 2> /dev/null
+endif
+endif