Removed extra definitions
[~tnikolova/compat/.git] / Makefile
index 3f1a4ad..05a7d72 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -7,44 +7,72 @@ export KLIB:=          /lib/modules/$(shell uname -r)
 endif
 export KLIB_BUILD ?=    $(KLIB)/build
 
+ifeq ($(KERNELRELEASE),)
 export PWD := $(shell pwd)
+export COMPAT_BASE_TREE := "linux-next.git"
+# For this specific tree this is only relevant in
+# terms of the last time we synched code up with upstream
+# for internal stuff. For other compatability projects this
+# would be the git describe of the base tree you are
+# working with.
+export COMPAT_BASE_TREE_VERSION := "next-20100517"
+export COMPAT_VERSION := $(shell git describe)
 
-ifneq ($(wildcard $(KLIB_BUILD)/Makefile),)
-COMPAT_LATEST_VERSION = 32
-KERNEL_SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
-COMPAT_VERSIONS := $(shell I=$(COMPAT_LATEST_VERSION); while [ "$$I" -gt $(KERNEL_SUBLEVEL) ]; do echo $$I; I=$$(($$I - 1)); done)
-$(foreach ver,$(COMPAT_VERSIONS),$(eval CONFIG_COMPAT_KERNEL_$(ver)=y))
+# This is used to annotate what version of
+# compat.git was used.
+export COMPAT_BASE := $(shell git describe)
+
+# to check config and compat autoconf
+export COMPAT_CONFIG=$(PWD)/.config
+export COMPAT_AUTOCONF=$(PWD)/include/linux/compat_autoconf.h
+export MAKE
+
+else
+# By stuffing this hear we avoid using
+# this hackery on modpost, the 2nd section of module building.
+#
+# This hack lets us put our include path first than the kernel's
+# when building our compat modules. Your own makefile would look
+# the same.
+NOSTDINC_FLAGS := -I$(M)/include/ \
+       -include $(M)/include/linux/compat-2.6.h \
+       $(CFLAGS) \
+       -DCOMPAT_BASE="\"$(COMPAT_BASE)\"" \
+       -DCOMPAT_BASE_TREE="\"$(COMPAT_BASE_TREE)\"" \
+       -DCOMPAT_BASE_TREE_VERSION="\"$(COMPAT_BASE_TREE_VERSION)\"" \
+       -DCOMPAT_PROJECT="\"Generic kernel\"" \
+       -DCOMPAT_VERSION="\"$(COMPAT_VERSION)\""
+
+# Technicallay we can require the inclusion of COMPAT_CONFIG for
+# all targets except clean, so avoid the warnings at clean time.
+-include $(COMPAT_CONFIG)
 endif
 
-obj-m += compat.o
-#compat-objs :=
-
-compat-y += main.o
-
-# Compat kernel compatibility code
-compat-$(CONFIG_COMPAT_KERNEL_14) += compat-2.6.14.o
-compat-$(CONFIG_COMPAT_KERNEL_18) += compat-2.6.18.o
-compat-$(CONFIG_COMPAT_KERNEL_19) += compat-2.6.19.o
-compat-$(CONFIG_COMPAT_KERNEL_22) += compat-2.6.22.o
-compat-$(CONFIG_COMPAT_KERNEL_23) += compat-2.6.23.o
-compat-$(CONFIG_COMPAT_KERNEL_24) += compat-2.6.24.o
-compat-$(CONFIG_COMPAT_KERNEL_25) += compat-2.6.25.o
-compat-$(CONFIG_COMPAT_KERNEL_26) += compat-2.6.26.o
-compat-$(CONFIG_COMPAT_KERNEL_27) += compat-2.6.27.o
-compat-$(CONFIG_COMPAT_KERNEL_28) += compat-2.6.28.o
-compat-$(CONFIG_COMPAT_KERNEL_29) += compat-2.6.29.o
-compat-$(CONFIG_COMPAT_KERNEL_30) += compat-2.6.30.o
-compat-$(CONFIG_COMPAT_KERNEL_31) += compat-2.6.31.o
-compat-$(CONFIG_COMPAT_KERNEL_32) += compat-2.6.32.o
-
-modules: 
-       $(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules 
+obj-y += compat/
+
+all: modules
+
+modules: $(COMPAT_CONFIG) $(COMPAT_AUTOCONF)
+       $(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules
+       @touch modules
+
 install: modules
        $(MAKE) -C $(KLIB_BUILD) M=$(PWD) $(KMODDIR_ARG) $(KMODPATH_ARG) \
                modules_install
        depmod -a
+
+$(COMPAT_AUTOCONF): $(COMPAT_CONFIG)
+       +@$(PWD)/scripts/gen-compat-autoconf.sh $(COMPAT_CONFIG) > $(COMPAT_AUTOCONF)
+
+$(COMPAT_CONFIG):
+       +@$(PWD)/scripts/gen-compat-config.sh > $(COMPAT_CONFIG)
+
+install: modules
+
 clean:
        $(MAKE) -C $(KLIB_BUILD) M=$(PWD) clean
-all: modules
 
-clean-files := Module.symvers modules.order Module.markers
+clean-files := Module.symvers modules.order Module.markers compat/modules.order
+clean-files += modules $(COMPAT_CONFIG) $(COMPAT_AUTOCONF)
+
+.PHONY: all install clean modules Makefile