Rearrange module order for easy placement on external builds
[~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 # This generates a bunch of CONFIG_COMPAT_KERNEL_22 CONFIG_COMPAT_KERNEL_23 .. etc for
13 # each kernel release you need an object for.
14 ifneq ($(wildcard $(KLIB_BUILD)/Makefile),)
15 COMPAT_LATEST_VERSION = 32
16 KERNEL_SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
17 COMPAT_VERSIONS := $(shell I=$(COMPAT_LATEST_VERSION); while [ "$$I" -gt $(KERNEL_SUBLEVEL) ]; do echo $$I; I=$$(($$I - 1)); done)
18 $(foreach ver,$(COMPAT_VERSIONS),$(eval CONFIG_COMPAT_KERNEL_$(ver)=y))
19 endif
20
21 obj-y += compat/
22
23 # This hack lets us put our include path first than the kernel's
24 # when building our compat modules. Your own makefile would look
25 # the same.
26 NOSTDINC_FLAGS := -I$(M)/include/ -include $(M)/include/linux/compat.h $(CFLAGS)
27
28 modules:
29         $(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules
30 install: modules
31         $(MAKE) -C $(KLIB_BUILD) M=$(PWD) $(KMODDIR_ARG) $(KMODPATH_ARG) \
32                 modules_install
33         depmod -a
34 clean:
35         $(MAKE) -C $(KLIB_BUILD) M=$(PWD) clean
36 all: modules
37
38 clean-files := Module.symvers modules.order Module.markers