Patch from andy yan <andyysj@gmail.com>:
[mirror/scst/.git] / mvsas_tgt / Makefile
1 #
2 #  Marvell SCSI target driver makefile
3 #  
4 #  Copyright (C) 2006 - 2008 Jacky Feng <jfeng@marvell.com>
5 #  
6 #  This program is free software; you can redistribute it and/or
7 #  modify it under the terms of the GNU General Public License
8 #  as published by the Free Software Foundation, version 2
9 #  of the License.
10
11 #  This program is distributed in the hope that it will be useful,
12 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 #  GNU General Public License for more details.
15 #
16 #
17 # Main targets:
18 #    all (the default) : make all
19 #    clean             : clean files
20 #    extraclean        : clean + clean dependencies
21 #    install           : install 
22 #    uninstall         : uninstall 
23 #
24 # Notes :
25 #    - install and uninstall must be made as root
26 #
27
28
29 ifeq ($(KVER),)
30   ifeq ($(KDIR),)
31     KVER = $(shell uname -r)
32     KDIR := /lib/modules/$(KVER)/build
33   endif
34 else
35   KDIR := /lib/modules/$(KVER)/build
36 endif
37
38 export PWD    := $(shell pwd)
39 export LIBSAS := m
40
41 #SCST_INC_DIR := /usr/local/include/scst
42 #SCST_DIR := $(SCST_INC_DIR)
43 SCST_INC_DIR := $(SUBDIRS)/scst/include
44 SCST_DIR := $(shell pwd)/scst/src
45
46 EXTRA_CFLAGS += -I$(SCST_INC_DIR)
47
48 EXTRA_CFLAGS +=  #-DSUPPORT_TARGET
49 MODULE_NAME = mvsas_tgt
50
51 EXTRA_CFLAGS += -DMV_DEBUG
52
53 INSTALL_DIR := /lib/modules/$(shell uname -r)/extra
54
55 #EXTRA_CFLAGS += -DCONFIG_SCST_TRACING
56 #EXTRA_CFLAGS += -DDEBUG_WORK_IN_THREAD
57 #EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG
58
59 ifneq ($(KERNELRELEASE),)
60 obj-m := mvsas.o
61 mvsas-y := mv_init.o  \
62            mv_sas.o   \
63            mv_tgt.o   \
64            mv_64xx.o  \
65            mv_94xx.o  \
66            mv_spi.o
67 else
68 all: Modules.symvers Module.symvers
69         $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd) BUILD_INI=m
70
71 tgt: Modules.symvers Module.symvers
72         $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd) BUILD_INI=n
73
74 install: all
75         $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd) BUILD_INI=m \
76                 modules_install
77         -depmod -a $(KVER)
78
79 ins:
80         ./config
81         insmod mvsas.ko
82         
83 SCST_MOD_VERS := $(shell ls $(SCST_DIR)/Modules.symvers 2>/dev/null)
84 ifneq ($(SCST_MOD_VERS),)
85 Modules.symvers: $(SCST_DIR)/Modules.symvers
86         cp $(SCST_DIR)/Modules.symvers .
87 else
88 .PHONY: Modules.symvers
89 endif
90
91 # It's renamed in 2.6.18
92 SCST_MOD_VERS := $(shell ls $(SCST_DIR)/Module.symvers 2>/dev/null)
93 ifneq ($(SCST_MOD_VERS),)
94 Module.symvers: $(SCST_DIR)/Module.symvers
95         cp $(SCST_DIR)/Module.symvers .
96 else
97 .PHONY: Module.symvers
98 endif
99
100 uninstall:
101         rm -f $(INSTALL_DIR)/$(MODULE_NAME).ko
102         -/sbin/depmod -a $(KVER)
103 endif
104
105 clean:
106         rm -f *.o *.ko .*.cmd *.mod.c .*.d .depend *~ Modules.symvers \
107                 Module.symvers Module.markers modules.order
108         rm -rf .tmp_versions
109
110 extraclean: clean
111
112 .PHONY: all tgt install uninstall clean extraclean