Added macro for iSER on RHEL7.6
[compat-rdma/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 ifeq ($(KERNELRELEASE),)
11 export PWD := $(shell pwd)
12 export COMPAT_BASE_TREE := "linux-next.git"
13 # For this specific tree this is only relevant in
14 # terms of the last time we synched code up with upstream
15 # for internal stuff. For other compatability projects this
16 # would be the git describe of the base tree you are
17 # working with.
18 export COMPAT_BASE_TREE_VERSION := "next-20100517"
19 export COMPAT_VERSION := $(shell git describe)
20
21 # This is used to annotate what version of
22 # compat.git was used.
23 export COMPAT_BASE := $(shell git describe)
24
25 # to check config and compat autoconf
26 export COMPAT_CONFIG=$(PWD)/.config
27 export COMPAT_AUTOCONF=$(PWD)/include/linux/compat_autoconf.h
28 export MAKE
29
30 else
31 # By stuffing this hear we avoid using
32 # this hackery on modpost, the 2nd section of module building.
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="\"$(COMPAT_BASE)\"" \
41         -DCOMPAT_BASE_TREE="\"$(COMPAT_BASE_TREE)\"" \
42         -DCOMPAT_BASE_TREE_VERSION="\"$(COMPAT_BASE_TREE_VERSION)\"" \
43         -DCOMPAT_PROJECT="\"Generic kernel\"" \
44         -DCOMPAT_VERSION="\"$(COMPAT_VERSION)\""
45
46 # Technicallay we can require the inclusion of COMPAT_CONFIG for
47 # all targets except clean, so avoid the warnings at clean time.
48 -include $(COMPAT_CONFIG)
49 endif
50
51 obj-y += compat/
52
53 all: modules
54
55 modules: $(COMPAT_CONFIG) $(COMPAT_AUTOCONF)
56         $(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules
57         @touch modules
58
59 install: modules
60         $(MAKE) -C $(KLIB_BUILD) M=$(PWD) $(KMODDIR_ARG) $(KMODPATH_ARG) \
61                 modules_install
62         depmod -a
63
64 $(COMPAT_AUTOCONF): $(COMPAT_CONFIG)
65         +@$(PWD)/scripts/gen-compat-autoconf.sh $(COMPAT_CONFIG) > $(COMPAT_AUTOCONF)
66
67 $(COMPAT_CONFIG):
68         +@$(PWD)/scripts/gen-compat-config.sh > $(COMPAT_CONFIG)
69
70 install: modules
71
72 clean:
73         $(MAKE) -C $(KLIB_BUILD) M=$(PWD) clean
74
75 clean-files := Module.symvers modules.order Module.markers compat/modules.order
76 clean-files += modules $(COMPAT_CONFIG) $(COMPAT_AUTOCONF)
77
78 .PHONY: all install clean modules Makefile