Fix for user space part of the iSCSI target, which refused connections in the procfs...
[mirror/scst/.git] / iscsi-scst / Makefile
1 #
2 # Makefile for iSCSI-SCST
3 #
4 # Note! Dependencies are done automagically by 'make dep', which also
5 # removes any old dependencies. DON'T put your own dependencies here
6 # unless it's something special (not a .c file).
7
8 SUBDIRS := $(shell pwd)
9
10 #SCST_INC_DIR := /usr/local/include/scst
11 SCST_INC_DIR := $(SUBDIRS)/../scst/include
12 #SCST_DIR := $(SCST_INC_DIR)
13 SCST_DIR := $(shell pwd)/../scst/src
14 SBINDIR := /usr/local/sbin
15 INITDIR := /etc/init.d
16 RCDIR := /etc/rc.d
17 KMOD := $(shell pwd)/kernel
18 INCDIR := $(shell pwd)/include
19
20 ifeq ($(KVER),)
21   ifeq ($(KDIR),)
22     KVER = $(shell uname -r)
23     KDIR ?= /lib/modules/$(KVER)/build
24   else
25     KVER = $$KERNELRELEASE
26   endif
27 else
28   KDIR ?= /lib/modules/$(KVER)/build
29 endif
30
31 all: include/iscsi_scst_itf_ver.h progs mods
32
33 mods: Modules.symvers Module.symvers
34         $(MAKE) -C $(KDIR) SCST_INC_DIR=$(SCST_INC_DIR) SUBDIRS=$(KMOD) modules
35
36 progs:
37         $(MAKE) -C usr
38
39 include/iscsi_scst_itf_ver.h: include/iscsi_scst.h
40         echo "/* Autogenerated, don't edit */" >include/iscsi_scst_itf_ver.h
41         echo "" >>include/iscsi_scst_itf_ver.h
42         echo -n "#define ISCSI_SCST_INTERFACE_VERSION " >>include/iscsi_scst_itf_ver.h
43         echo "\"`sha1sum include/iscsi_scst.h|awk '{printf $$1}'`\"" >>include/iscsi_scst_itf_ver.h
44
45 install: all
46         @install -vD usr/iscsi-scstd $(DESTDIR)$(SBINDIR)/iscsi-scstd
47         @install -vD usr/iscsi-scst-adm $(DESTDIR)$(SBINDIR)/iscsi-scst-adm
48         if [ -f /etc/debian_version ]; then \
49                 install -vD -m 755 etc/initd/initd.debian $(DESTDIR)$(INITDIR)/iscsi-scst; \
50         elif [ -f /etc/redhat-release ]; then \
51                 install -vD -m 755 etc/initd/initd.redhat $(DESTDIR)$(INITDIR)/iscsi-scst; \
52         elif [ -f /etc/gentoo-release ]; then \
53                 install -vD -m 755 etc/initd/initd.gentoo $(DESTDIR)$(INITDIR)/iscsi-scst; \
54         elif [ -f /etc/slackware-version ]; then \
55                 install -vD -m 755 etc/initd/initd $(DESTDIR)$(RCDIR)/iscsi-scst; \
56         else \
57                 install -vD -m 755 etc/initd/initd $(DESTDIR)$(INITDIR)/iscsi-scst; \
58         fi
59         @eval `sed -n 's/#define UTS_RELEASE /KERNELRELEASE=/p' $(KDIR)/include/linux/version.h $(KDIR)/include/linux/utsrelease.h 2>/dev/null`; \
60         install -vD -m 644 kernel/iscsi-scst.ko \
61         $(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/$(KVER)/extra/iscsi-scst.ko
62         -/sbin/depmod -aq $(KVER)
63
64 SCST_MOD_VERS := $(shell ls $(SCST_DIR)/Modules.symvers 2>/dev/null)
65 ifneq ($(SCST_MOD_VERS),)
66 Modules.symvers: $(SCST_DIR)/Modules.symvers
67         echo $(SCST_MOD_VERS)
68         cp $(SCST_DIR)/Modules.symvers kernel/
69 else
70 .PHONY: Modules.symvers
71 endif
72
73 # It's renamed in 2.6.18
74 SCST_MOD_VERS := $(shell ls $(SCST_DIR)/Module.symvers 2>/dev/null)
75 ifneq ($(SCST_MOD_VERS),)
76 Module.symvers: $(SCST_DIR)/Module.symvers
77         cp $(SCST_DIR)/Module.symvers kernel/
78 else
79 .PHONY: Module.symvers
80 endif
81
82 clean:
83         $(MAKE) -C usr clean
84         $(MAKE) -C $(KDIR) SUBDIRS=$(KMOD) clean
85         rm -f kernel/Modules.symvers kernel/Module.symvers \
86                 kernel/Module.markers kernel/modules.order \
87                 include/iscsi_scst_itf_ver.h
88
89 extraclean: clean
90
91 debug2release:
92         sed -i.aa s/"^EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/"#EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/ $(KMOD)/Makefile
93         @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi
94         sed -i.aa s/"#EXTRA_CFLAGS += \-DCONFIG_SCST_TRACING"/"EXTRA_CFLAGS += \-DCONFIG_SCST_TRACING"/ $(KMOD)/Makefile
95         @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi
96         sed -i.aa s/"^EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/"#EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/ $(KMOD)/Makefile
97         @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi
98         rm $(KMOD)/Makefile.aa
99
100 release2debug:
101         sed -i.aa s/"#EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/"EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/ $(KMOD)/Makefile
102         @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi
103         sed -i.aa s/"^EXTRA_CFLAGS += \-DCONFIG_SCST_TRACING"/"#EXTRA_CFLAGS += \-DCONFIG_SCST_TRACING"/ $(KMOD)/Makefile
104         @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi
105         sed -i.aa s/"#EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/"EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/ $(KMOD)/Makefile
106         @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi
107         rm $(KMOD)/Makefile.aa
108
109 debug2perf:
110         sed -i.aa s/"^EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/"#EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/ $(KMOD)/Makefile
111         @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi
112         sed -i.aa s/"^EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/"#EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/ $(KMOD)/Makefile
113         @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi
114         rm $(KMOD)/Makefile.aa
115
116 perf2debug:
117         sed -i.aa s/"#EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/"EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/ $(KMOD)/Makefile
118         @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi
119         sed -i.aa s/"#EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/"EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/ $(KMOD)/Makefile
120         @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi
121         rm $(KMOD)/Makefile.aa
122
123 disable_proc:
124         sed -i.aa s/"^#define CONFIG_SCST_PROC"/"\/* #define CONFIG_SCST_PROC *\/"/ $(INCDIR)/iscsi_scst_ver.h
125         @cmp $(INCDIR)/iscsi_scst_ver.h $(INCDIR)/iscsi_scst_ver.h.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(INCDIR)/iscsi_scst_ver.h.aa; echo "sed failed"; false; fi
126         rm $(INCDIR)/iscsi_scst_ver.h.aa
127
128 enable_proc:
129         sed -i.aa s/"\/\* #define CONFIG_SCST_PROC \*\/"/"#define CONFIG_SCST_PROC"/ $(INCDIR)/iscsi_scst_ver.h
130         @cmp $(INCDIR)/iscsi_scst_ver.h $(INCDIR)/iscsi_scst_ver.h.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(INCDIR)/iscsi_scst_ver.h.aa; echo "sed failed"; false; fi
131         rm $(INCDIR)/iscsi_scst_ver.h.aa
132
133 .PHONY: all mods progs install clean extraclean debug2release release2debug debug2perf perf2debug disable_proc enable_proc