Small improvement
[mirror/scst/.git] / qla2x00t / qla2x00-target / Makefile
1 #
2 #  Qlogic 2x00 SCSI target driver makefile
3 #  
4 #  Copyright (C) 2004 - 2008 Vladislav Bolkhovitin <vst@vlnb.net>
5 #  Copyright (C) 2004 - 2005 Leonid Stoljar
6 #  
7 #  This program is free software; you can redistribute it and/or
8 #  modify it under the terms of the GNU General Public License
9 #  as published by the Free Software Foundation, version 2
10 #  of the License.
11
12 #  This program is distributed in the hope that it will be useful,
13 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 #  GNU General Public License for more details.
16 #
17 #
18 # Main targets:
19 #    all (the default) : make all
20 #    clean             : clean files
21 #    extraclean        : clean + clean dependencies
22 #    install           : install 
23 #    uninstall         : uninstall 
24 #
25 # Notes :
26 #    - install and uninstall must be made as root
27 #
28
29 #SCST_INC_DIR := /usr/local/include/scst
30 #SCST_DIR := $(SCST_INC_DIR)
31 SCST_INC_DIR := $(SUBDIRS)/../../scst/include
32 SCST_DIR := $(shell pwd)/../../scst/src
33
34 EXTRA_CFLAGS += -I$(SCST_INC_DIR)
35
36 INSTALL_DIR := /lib/modules/$(shell uname -r)/extra
37
38 EXTRA_CFLAGS += -W -Wno-unused-parameter -Wno-missing-field-initializers
39
40 EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS 
41 #EXTRA_CFLAGS += -DCONFIG_SCST_TRACING
42 EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG -g
43 #EXTRA_CFLAGS += -DCONFIG_QLA_TGT_DEBUG_WORK_IN_THREAD
44
45 ifeq ($(KVER),)
46   ifeq ($(KDIR),)
47     KVER = $(shell uname -r)
48     KDIR := /lib/modules/$(KVER)/build
49   endif
50 else
51   KDIR := /lib/modules/$(KVER)/build
52 endif
53
54 QLA2XXX_INC_DIR := $(KDIR)/drivers/scsi/qla2xxx
55 EXTRA_CFLAGS += -I$(QLA2XXX_INC_DIR)
56
57 ifneq ($(KERNELRELEASE),)
58 obj-m := qla2x00tgt.o
59 qla2x00tgt-objs := qla2x00t.o
60
61 else
62
63 all: Modules.symvers Module.symvers
64         $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd) BUILD_INI=m
65
66 tgt: Modules.symvers Module.symvers
67         $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd) BUILD_INI=n
68
69 install: all
70         $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd) BUILD_INI=m \
71                 modules_install
72         -/sbin/depmod -a $(KVER)
73
74 SCST_MOD_VERS := $(shell ls $(SCST_DIR)/Modules.symvers 2>/dev/null)
75 ifneq ($(SCST_MOD_VERS),)
76 Modules.symvers: $(SCST_DIR)/Modules.symvers
77         cp $(SCST_DIR)/Modules.symvers .
78 else
79 .PHONY: Modules.symvers
80 endif
81
82 # It's renamed in 2.6.18
83 SCST_MOD_VERS := $(shell ls $(SCST_DIR)/Module.symvers 2>/dev/null)
84 ifneq ($(SCST_MOD_VERS),)
85 Module.symvers: $(SCST_DIR)/Module.symvers
86         cp $(SCST_DIR)/Module.symvers .
87 else
88 .PHONY: Module.symvers
89 endif
90
91 uninstall:
92         rm -f $(INSTALL_DIR)/qla2[23x]00tgt.ko
93         -/sbin/depmod -a $(KVER)
94 endif
95
96 clean:
97         rm -f *.o *.ko .*.cmd *.mod.c .*.d .depend *~ Modules.symvers \
98                 Module.symvers Module.markers modules.order
99         rm -rf .tmp_versions
100
101 extraclean: clean
102
103 .PHONY: all tgt install uninstall clean extraclean