371f65bb72df7e32b86424c1c37f92b8ef538a56
[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 SCST_INC_DIR := /usr/local/include/scst
9 #SCST_INC_DIR := $(SUBDIRS)/../../scst/include
10 SCST_DIR := $(SCST_INC_DIR)
11 #SCST_DIR := $(shell pwd)/../scst/src
12
13 SUBDIRS := $(shell pwd)
14
15 ifeq ($(KVER),)
16   ifeq ($(KDIR),)
17     KVER = $(shell uname -r)
18     KDIR ?= /lib/modules/$(KVER)/build
19   else
20     KVER = $$KERNELRELEASE
21   endif
22 else
23   KDIR ?= /lib/modules/$(KVER)/build
24 endif
25
26 all: include/iscsi_scst_itf_ver.h progs mods
27
28 mods: Modules.symvers Module.symvers
29         $(MAKE) -C $(KDIR) SCST_INC_DIR=$(SCST_INC_DIR) SUBDIRS=$(shell pwd)/kernel modules
30
31 progs:
32         $(MAKE) -C usr
33
34 include/iscsi_scst_itf_ver.h: include/iscsi_scst.h
35         echo "/* Autogenerated, don't edit */" >include/iscsi_scst_itf_ver.h
36         echo "" >>include/iscsi_scst_itf_ver.h
37         echo -n "#define ISCSI_SCST_INTERFACE_VERSION " >>include/iscsi_scst_itf_ver.h
38         echo "\"`sha1sum include/iscsi_scst.h|awk '{printf $$1}'`\"" >>include/iscsi_scst_itf_ver.h
39
40 install: all
41         @install -vD usr/iscsi-scstd $(DISTDIR)/usr/local/sbin/iscsi-scstd
42 #       -@install -vD usr/iscsi-scst-adm $(DISTDIR)/usr/local/sbin/iscsi-scst-adm
43         if [ -f /etc/debian_version ]; then \
44                 install -vD -m 755 etc/initd/initd.debian $(DISTDIR)/etc/init.d/iscsi-scst; \
45         elif [ -f /etc/redhat-release ]; then \
46                 install -vD -m 755 etc/initd/initd.redhat $(DISTDIR)/etc/init.d/iscsi-scst; \
47         elif [ -f /etc/gentoo-release ]; then \
48                 install -vD -m 755 etc/initd/initd.gentoo $(DISTDIR)/etc/init.d/iscsi-scst; \
49         elif [ -f /etc/slackware-version ]; then \
50                 install -vD -m 755 etc/initd/initd $(DISTDIR)/etc/rc.d/iscsi-scst; \
51         else \
52                 install -vD -m 755 etc/initd/initd $(DISTDIR)/etc/init.d/iscsi-scst; \
53         fi
54         @eval `sed -n 's/#define UTS_RELEASE /KERNELRELEASE=/p' $(KDIR)/include/linux/version.h $(KDIR)/include/linux/utsrelease.h 2>/dev/null`; \
55         install -vD -m 644 kernel/iscsi-scst.ko \
56         $(DISTDIR)$(INSTALL_MOD_PATH)/lib/modules/$(KVER)/extra/iscsi-scst.ko
57         -/sbin/depmod -aq $(KVER)
58
59 SCST_MOD_VERS := $(shell ls $(SCST_DIR)/Modules.symvers 2>/dev/null)
60 ifneq ($(SCST_MOD_VERS),)
61 Modules.symvers: $(SCST_DIR)/Modules.symvers
62         echo $(SCST_MOD_VERS)
63         cp $(SCST_DIR)/Modules.symvers kernel/
64 else
65 .PHONY: Modules.symvers
66 endif
67
68 # It's renamed in 2.6.18
69 SCST_MOD_VERS := $(shell ls $(SCST_DIR)/Module.symvers 2>/dev/null)
70 ifneq ($(SCST_MOD_VERS),)
71 Module.symvers: $(SCST_DIR)/Module.symvers
72         cp $(SCST_DIR)/Module.symvers kernel/
73 else
74 .PHONY: Module.symvers
75 endif
76
77 clean:
78         $(MAKE) -C usr clean
79         $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd)/kernel clean
80         rm -f kernel/Modules.symvers kernel/Module.symvers \
81                 kernel/Module.markers kernel/modules.order \
82                 include/iscsi_scst_itf_ver.h
83
84 extraclean: clean
85
86 .PHONY: all mods progs install clean extraclean