1 # This Makefile will work only with GNU make.
3 OSNAME
=$(shell uname
-s
)
5 # allow users to override these
6 # eg to compile for a kernel that you aren't currently running
7 KERNELRELEASE ?
= $(shell uname
-r
)
8 KSRC ?
= /lib
/modules
/$(KERNELRELEASE
)/build
10 KSUBLEVEL
=$(shell cat
$(KSRC
)/Makefile | awk
-F
= '/^SUBLEVEL =/ {print $$2}' | \
11 sed
's/^[ \t]*//;s/[ \t]*$$//')
13 ifeq ($(OSNAME
),Linux
)
14 ifeq ($(KSUBLEVEL
),11)
15 IPC_CFLAGS
=-DNETLINK_ISCSI
=12 -D_GNU_SOURCE
17 ifeq ($(KSUBLEVEL
),12)
18 IPC_CFLAGS
=-DNETLINK_ISCSI
=12 -D_GNU_SOURCE
20 IPC_CFLAGS
=-DNETLINK_ISCSI
=8 -D_GNU_SOURCE
26 ifeq ($(OSNAME
),FreeBSD
)
34 WARNFLAGS ?
= -Wall
-Wstrict-prototypes
35 CFLAGS
+= $(OPTFLAGS
) $(WARNFLAGS
) -I..
/include -I.
-I..
/utils
/open-isns \
36 -D
$(OSNAME
) $(IPC_CFLAGS
)
37 PROGRAMS
= iscsid iscsiadm iscsistart
40 SYSDEPS_SRCS
= $(wildcard ..
/utils
/sysdeps
/*.o
)
41 # sources shared between iscsid, iscsiadm and iscsistart
42 ISCSI_LIB_SRCS
= iscsi_util.o io.o auth.o iscsi_timer.o login.o log.o md5.o \
43 sha1.o iface.o idbm.o sysfs.o host.o session_info.o iscsi_sysfs.o \
44 iscsi_net_util.o iscsid_req.o transport.o cxgbi.o be2iscsi.o \
45 initiator_common.o iscsi_err.o
$(IPC_OBJ
) $(SYSDEPS_SRCS
) $(DCB_OBJ
)
46 # core initiator files
47 INITIATOR_SRCS
= initiator.o scsi.o actor.o event_poll.o mgmt_ipc.o
50 FW_BOOT_SRCS
= $(wildcard ..
/utils
/fwparam_ibft
/*.o
)
52 # core discovery files
53 DISCOVERY_SRCS
= $(FW_BOOT_SRCS
) strings.o discovery.o
57 iscsid
: $(ISCSI_LIB_SRCS
) $(INITIATOR_SRCS
) $(DISCOVERY_SRCS
) \
58 iscsid.o session_mgmt.o discoveryd.o
59 $(CC
) $(CFLAGS
) $^
-o
$@
-L..
/utils
/open-isns
-lisns
61 iscsiadm
: $(ISCSI_LIB_SRCS
) $(DISCOVERY_SRCS
) iscsiadm.o session_mgmt.o
62 $(CC
) $(CFLAGS
) $^
-o
$@
-L..
/utils
/open-isns
-lisns
64 iscsistart
: $(ISCSI_LIB_SRCS
) $(INITIATOR_SRCS
) $(FW_BOOT_SRCS
) \
65 iscsistart.o statics.o
66 $(CC
) $(CFLAGS
) -static
$^
-o
$@
68 rm -f
*.o
$(PROGRAMS
) .depend
$(LIBSYS
)
71 gcc
$(CFLAGS
) -M
`ls *.c` > .depend