compat: fix few compilations by adding compat_autoconf.h support
[~emulex/for-vlad/old/compat.git] / Makefile
1 export KMODDIR?=       updates/
2 KMODDIR_ARG:=   "INSTALL_MOD_DIR=$(KMODDIR)"
3 ifneq ($(origin $(KLIB)), undefined)
4 KMODPATH_ARG:=  "INSTALL_MOD_PATH=$(KLIB)"
5 else
6 export KLIB:=          /lib/modules/$(shell uname -r)
7 endif
8 export KLIB_BUILD ?=    $(KLIB)/build
9
10 export PWD := $(shell pwd)
11
12 ifeq ($(KERNELRELEASE),)
13 export COMPAT_BASE_TREE := "linux-next.git"
14 # For this specific tree this is only relevant in
15 # terms of the last time we synched code up with upstream
16 # for internal stuff. For other compatability projects this
17 # would be the git describe of the base tree you are
18 # working with.
19 export COMPAT_BASE_TREE_VERSION := "next-20100517"
20 export COMPAT_VERSION := $(shell git describe)
21 endif
22
23 # to check config and compat autoconf
24 export COMPAT_CONFIG=.config
25 export COMPAT_AUTOCONF=include/linux/compat_autoconf.h
26 export MAKE
27
28 # Recursion lets us ensure we get this file included.
29 # Trick is to run make -C $(PWD) modules later.
30 -include $(PWD)/$(COMPAT_CONFIG)
31
32 obj-y += compat/
33
34 # This hack lets us put our include path first than the kernel's
35 # when building our compat modules. Your own makefile would look
36 # the same.
37 NOSTDINC_FLAGS := -I$(M)/include/ \
38         -include $(M)/include/linux/compat-2.6.h \
39         $(CFLAGS) \
40         -DCOMPAT_BASE_TREE="\"$(COMPAT_BASE_TREE)\"" \
41         -DCOMPAT_BASE_TREE_VERSION="\"$(COMPAT_BASE_TREE_VERSION)\"" \
42         -DCOMPAT_PROJECT="\"Generic kernel\"" \
43         -DCOMPAT_VERSION="\"$(COMPAT_VERSION)\""
44
45 all: $(COMPAT_CONFIG)
46
47 modules: $(COMPAT_CONFIG) $(COMPAT_AUTOCONF)
48         $(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules
49         @touch modules
50
51 install: modules
52         $(MAKE) -C $(KLIB_BUILD) M=$(PWD) $(KMODDIR_ARG) $(KMODPATH_ARG) \
53                 modules_install
54         depmod -a
55         $(MAKE) -C $(KLIB_BUILD) M=$(PWD) clean
56
57 $(COMPAT_AUTOCONF): ;
58
59 $(COMPAT_CONFIG):
60         @$(PWD)/scripts/gen-compat-config.sh > $(PWD)/$(COMPAT_CONFIG)
61         @$(PWD)/scripts/gen-compat-autoconf.sh $(COMPAT_CONFIG) > $(PWD)/$(COMPAT_AUTOCONF)
62         @$(MAKE) -C $(PWD) modules
63
64 install: modules
65
66 clean:
67         $(MAKE) -C $(KLIB_BUILD) M=$(PWD) clean
68
69 clean-files := Module.symvers modules.order Module.markers compat/modules.order
70 clean-files += modules $(COMPAT_CONFIG) $(COMPAT_AUTOCONF)
71
72 .PHONY: all install clean