diff options
-rw-r--r-- | Makefile | 118 | ||||
-rw-r--r-- | etc/Makefile | 81 | ||||
-rw-r--r-- | etc/systemd/.gitignore | 4 | ||||
-rw-r--r-- | etc/systemd/iscsi-init.service.template (renamed from etc/systemd/iscsi-init.service) | 0 | ||||
-rw-r--r-- | etc/systemd/iscsi.service.template (renamed from etc/systemd/iscsi.service) | 0 | ||||
-rw-r--r-- | etc/systemd/iscsid.service.template (renamed from etc/systemd/iscsid.service) | 0 | ||||
-rw-r--r-- | etc/systemd/iscsiuio.service.template (renamed from etc/systemd/iscsiuio.service) | 0 | ||||
-rw-r--r-- | usr/Makefile | 18 | ||||
-rw-r--r-- | utils/.gitignore | 3 | ||||
-rw-r--r-- | utils/50-iscsi-firmware-login.rules.template (renamed from utils/50-iscsi-firmware-login.rules) | 0 | ||||
-rw-r--r-- | utils/Makefile | 66 | ||||
-rw-r--r--[-rwxr-xr-x] | utils/iscsi-gen-initiatorname.sh.template (renamed from utils/iscsi-gen-initiatorname) | 0 | ||||
-rwxr-xr-x | utils/iscsi_discovery.sh (renamed from utils/iscsi_discovery) | 0 | ||||
-rw-r--r-- | utils/iscsi_fw_login.sh.template (renamed from utils/iscsi_fw_login) | 0 | ||||
-rwxr-xr-x | utils/iscsi_offload.sh (renamed from utils/iscsi_offload) | 0 |
15 files changed, 200 insertions, 90 deletions
@@ -6,33 +6,15 @@ # that you want everything installed into. DESTDIR ?= -SED = /usr/bin/sed - prefix = /usr exec_prefix = -sbindir = $(exec_prefix)/sbin -bindir = $(exec_prefix)/bin +sbindir ?= $(exec_prefix)/sbin mandir = $(prefix)/share/man -etcdir = /etc -initddir = $(etcdir)/init.d -rulesdir = $(etcdir)/udev/rules.d -systemddir = $(prefix)/lib/systemd MANPAGES = doc/iscsid.8 doc/iscsiadm.8 doc/iscsi_discovery.8 \ iscsiuio/docs/iscsiuio.8 doc/iscsi_fw_login.8 doc/iscsi-iname.8 \ doc/iscsistart.8 doc/iscsi-gen-initiatorname.8 -PROGRAMS = usr/iscsid usr/iscsiadm utils/iscsi-iname iscsiuio/src/unix/iscsiuio \ - usr/iscsistart -SCRIPTS = utils/iscsi_discovery utils/iscsi_fw_login utils/iscsi_offload \ - utils/iscsi-gen-initiatorname INSTALL = install -CONFIGFILE = etc/iscsid.conf -IFACEFILES = etc/iface.example -RULESFILES = utils/50-iscsi-firmware-login.rules -SYSTEMDFILES = etc/systemd/iscsi.service \ - etc/systemd/iscsi-init.service \ - etc/systemd/iscsid.service etc/systemd/iscsid.socket \ - etc/systemd/iscsiuio.service etc/systemd/iscsiuio.socket export DESTDIR prefix INSTALL @@ -62,12 +44,13 @@ endif all: user user: iscsiuio/Makefile - $(MAKE) -C libopeniscsiusr SBINDIR=$(sbindir) - $(MAKE) -C utils/sysdeps - $(MAKE) -C utils/fwparam_ibft - $(MAKE) -C usr - $(MAKE) -C utils - $(MAKE) -C iscsiuio + $(MAKE) $(MFLAGS) -C libopeniscsiusr SBINDIR=$(sbindir) + $(MAKE) $(MFLAGS) -C utils/sysdeps + $(MAKE) $(MFLAGS) -C utils/fwparam_ibft + $(MAKE) $(MFLAGS) -C usr SBINDIR=$(sbindir) + $(MAKE) $(MFLAGS) -C utils SBINDIR=$(sbindir) + $(MAKE) $(MFLAGS) -C etc SBINDIR=$(sbindir) + $(MAKE) $(MFLAGS) -C iscsiuio @echo @echo "Compilation complete Output file" @echo "----------------------------------- ----------------" @@ -88,13 +71,14 @@ iscsiuio/configure iscsiuio/Makefile.in: iscsiuio/configure.ac iscsiuio/Makefile force: ; clean: - $(MAKE) -C utils/sysdeps clean - $(MAKE) -C utils/fwparam_ibft clean - $(MAKE) -C utils clean - $(MAKE) -C usr clean - $(MAKE) -C libopeniscsiusr clean - [ ! -f iscsiuio/Makefile ] || $(MAKE) -C iscsiuio clean - [ ! -f iscsiuio/Makefile ] || $(MAKE) -C iscsiuio distclean + $(MAKE) $(MFLAGS) -C utils/sysdeps clean + $(MAKE) $(MFLAGS) -C utils/fwparam_ibft clean + $(MAKE) $(MFLAGS) -C utils clean + $(MAKE) $(MFLAGS) -C usr clean + $(MAKE) $(MFLAGS) -C etc clean + $(MAKE) $(MFLAGS) -C libopeniscsiusr clean + [ ! -f iscsiuio/Makefile ] || $(MAKE) $(MFLAGS) -C iscsiuio clean + [ ! -f iscsiuio/Makefile ] || $(MAKE) $(MFLAGS) -C iscsiuio distclean # this is for safety # now -jXXX will still be safe @@ -104,64 +88,24 @@ clean: install_etc install_iface install_doc install_iname install: install_programs install_doc install_etc \ - install_systemd install_iname install_iface install_libopeniscsiusr + install_systemd install_iname install_iface install_libopeniscsiusr \ + install_iscsiuio + +install_iscsiuio: + $(MAKE) $(MFLAGS) -C iscsiuio install install_user: install_programs install_doc install_etc \ install_systemd install_iname install_iface install_udev_rules: - $(INSTALL) -d $(DESTDIR)$(rulesdir) - $(INSTALL) -m 644 $(RULESFILES) $(DESTDIR)$(rulesdir) - for f in $(RULESFILES); do \ - p=$(DESTDIR)$(rulesdir)/$${f##*/}; \ - $(SED) -i -e 's:@SBINDIR@:$(sbindir):' $$p; \ - done - -install_systemd: - $(INSTALL) -d $(DESTDIR)$(systemddir)/system - $(INSTALL) -m 644 $(SYSTEMDFILES) $(DESTDIR)$(systemddir)/system - for f in $(SYSTEMDFILES); do \ - p=$(DESTDIR)$(systemddir)/system/$${f##*/}; \ - $(SED) -i -e 's:@SBINDIR@:$(sbindir):' $$p; \ - done + $(MAKE) $(MFLAGS) -C utils $@ -install_programs: $(PROGRAMS) $(SCRIPTS) - $(INSTALL) -d $(DESTDIR)$(sbindir) - $(INSTALL) -m 755 $^ $(DESTDIR)$(sbindir) - for f in $(SCRIPTS); do \ - p=$(DESTDIR)$(sbindir)/$${f##*/}; \ - $(SED) -i -e 's:@SBINDIR@:$(sbindir):' $$p; \ - done +install_programs: + $(MAKE) $(MFLAGS) -C utils install + $(MAKE) $(MFLAGS) -C usr install -# ugh, auto-detection is evil -# Gentoo maintains their own init.d stuff -install_initd: - if [ -f /etc/debian_version ]; then \ - $(MAKE) install_initd_debian ; \ - elif [ -f /etc/redhat-release ]; then \ - $(MAKE) install_initd_redhat ; \ - fi - -# these are external targets to allow bypassing distribution detection -install_initd_redhat: - $(INSTALL) -d $(DESTDIR)$(initddir) - $(INSTALL) -m 755 etc/initd/initd.redhat \ - $(DESTDIR)$(initddir)/open-iscsi - -install_initd_debian: - $(INSTALL) -d $(DESTDIR)$(initddir) - $(INSTALL) -m 755 etc/initd/initd.debian \ - $(DESTDIR)$(initddir)/open-iscsi - -install_iface: $(IFACEFILES) - $(INSTALL) -d $(DESTDIR)$(etcdir)/iscsi/ifaces - $(INSTALL) -m 644 $^ $(DESTDIR)$(etcdir)/iscsi/ifaces - -install_etc: $(CONFIGFILE) - if [ ! -f $(DESTDIR)/etc/iscsi/iscsid.conf ]; then \ - $(INSTALL) -d $(DESTDIR)$(etcdir)/iscsi ; \ - $(INSTALL) -m 644 $^ $(DESTDIR)$(etcdir)/iscsi ; \ - fi +install_initd install_initd_redhat install_initd_debian install_ifae install_etc install_systemd install_iface: + $(MAKE) $(MFLAGS) -C etc $@ install_doc: $(MANPAGES) $(INSTALL) -d $(DESTDIR)$(mandir)/man8 @@ -177,11 +121,15 @@ install_iname: fi install_libopeniscsiusr: - $(MAKE) -C libopeniscsiusr install + $(MAKE) $(MFLAGS) -C libopeniscsiusr install depend: for dir in usr utils utils/fwparam_ibft; do \ - $(MAKE) -C $$dir $@; \ + $(MAKE) $(MFLAGS) -C $$dir $@; \ done +.PHONY: all user install force clean install_user install_udev_rules install_systemd \ + install_programs install_initrd install_initrd_redhat install_initrd_debian \ + install_etc install_doc install_iname install_libopeniscsiusr + # vim: ft=make tw=72 sw=4 ts=4: diff --git a/etc/Makefile b/etc/Makefile new file mode 100644 index 0000000..8a7d7c0 --- /dev/null +++ b/etc/Makefile @@ -0,0 +1,81 @@ +# +# gnu Makefile for the etc subdirectory, including +# initd and systemd subdirectories +# + +prefix = /usr +DESTDIR ?= +SBINDIR ?= $(DESTDIR)/sbin + +systemddir ?= $(DESTDIR)$(prefix)/lib/systemd +etcdir = $(DESTDIR)/etc +initddir ?= $(etcdir)/init.d + +HOMEDIR ?= $(etcdir)/iscsi + +SED = /usr/bin/sed +INSTALL = install + +SYSTEMD_SOURCE_FILES = iscsid.socket iscsiuio.socket +SYSTEMD_SOURCES = $(addprefix systemd/,$(SYSTEMD_SOURCE_FILES)) +SYSTEMD_TEMPLATE_FILES = iscsi-init.service.template \ + iscsid.service.template \ + iscsi.service.template \ + iscsiuio.service.template +SYSTEMD_TEMPLATES = $(addprefix systemd/,$(SYSTEMD_TEMPLATE_FILES)) +SYSTEMD_GENERATED_SERVICE_FILES = $(SYSTEMD_TEMPLATES:.template=) +SYSTEMD_DEST_FILES = $(addprefix $(systemddir)/system/,$(notdir $(SYSTEMD_SOURCES))) \ + $(addprefix $(systemddir)/system/,$(notdir $(SYSTEMD_GENERATED_SERVICE_FILES))) +IFACE_FILES = iface.example +IFACE_DEST_FILES = $(addprefix $(HOMEDIR)/ifaces/,$(IFACE_FILES)) +ETC_FILES = iscsid.conf +ETC_DEST_FILES = $(addprefix $(HOMEDIR)/,$(ETC_FILES)) + +all: $(SYSTEMD_SOURCES) $(SYSTEMD_GENERATED_SERVICE_FILES) + +$(SYSTEMD_GENERATED_SERVICE_FILES): systemd/%.service: systemd/%.service.template + $(SED) -e 's:@SBINDIR@:$(SBINDIR):' $? > $@ + +install: install_systemd install_iface install_etc + +install_iface: $(IFACE_DEST_FILES) + +$(IFACE_DEST_FILES): $(HOMEDIR)/ifaces/%: % + $(INSTALL) -m 644 $? $@ + +install_etc: $(ETC_DEST_FILES) + +$(ETC_DEST_FILES): $(HOMEDIR)/%: % + $(INSTALL) -m 644 $? $@ + +install_initd_distro = $(INSTALL) -m 755 $(1) $(initddir)/open-iscsi/ + +install_initd: $(initddir)/open-iscsi + @if [ -f /etc/debian_version ]; then \ + $(call install_initd_distro,initd/initd.redhat) ; \ + elif [ -f /etc/redhat-release ]; then \ + $(call install_initd_distro,initd/initd.debian) ; \ + fi + +$(initddir)/open-iscsi: + [ -d $@ ] || $(INSTALL) -d $@ + +install_initd_redhat: $(initddir)/open-iscsi + $(call install_initd_distro,initd/initd.redhat) + +install_initd_debian: $(initddir)/open-iscsi + $(call install_initd_distro,initd/initd.debian) + +install_systemd: $(systemddir)/system $(SYSTEMD_DEST_FILES) + +$(systemddir)/system: + [ -d $@ ] || $(INSTALL) -d -m 775 $@ + +$(SYSTEMD_DEST_FILES): $(systemddir)/system/%: systemd/% + $(INSTALL) $? $@ + +clean: + $(RM) $(SYSTEMD_GENERATED_SERVICE_FILES) + +.PHONY: all clean install install_iface install_initd install_initd_redhat \ + install_initd_debian install_systemd diff --git a/etc/systemd/.gitignore b/etc/systemd/.gitignore new file mode 100644 index 0000000..2b3a64e --- /dev/null +++ b/etc/systemd/.gitignore @@ -0,0 +1,4 @@ +iscsi-init.service +iscsi.service +iscsid.service +iscsiuio.service diff --git a/etc/systemd/iscsi-init.service b/etc/systemd/iscsi-init.service.template index 8f9a8aa..8f9a8aa 100644 --- a/etc/systemd/iscsi-init.service +++ b/etc/systemd/iscsi-init.service.template diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service.template index 6becab4..6becab4 100644 --- a/etc/systemd/iscsi.service +++ b/etc/systemd/iscsi.service.template diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service.template index e2a50d3..e2a50d3 100644 --- a/etc/systemd/iscsid.service +++ b/etc/systemd/iscsid.service.template diff --git a/etc/systemd/iscsiuio.service b/etc/systemd/iscsiuio.service.template index 2e721fe..2e721fe 100644 --- a/etc/systemd/iscsiuio.service +++ b/etc/systemd/iscsiuio.service.template diff --git a/usr/Makefile b/usr/Makefile index fe7430a..e7ba803 100644 --- a/usr/Makefile +++ b/usr/Makefile @@ -4,6 +4,11 @@ ifeq ($(TOPDIR),) TOPDIR = .. endif +INSTALL = install + +DESTDR ?= +SBINDIR ?= $(DESTDIR)/sbin + OSNAME=$(shell uname -s) # allow users to override these @@ -46,7 +51,9 @@ LDFLAGS += $(shell $(PKG_CONFIG) --libs libsystemd) else CFLAGS += -DNO_SYSTEMD endif -PROGRAMS = iscsid iscsiadm iscsistart + +PROGRAMS = iscsid iscsiadm iscsistart +PROGRAMS_DEST = $(addprefix $(SBINDIR)/,$(PROGRAMS)) # libc compat files SYSDEPS_SRCS = $(sort $(wildcard ../utils/sysdeps/*.o)) @@ -77,6 +84,15 @@ iscsiadm: $(ISCSI_LIB_SRCS) $(DISCOVERY_SRCS) iscsiadm.o session_mgmt.o mntcheck iscsistart: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \ iscsistart.o statics.o $(CC) $(CFLAGS) $^ -o $@ -lcrypto -lrt $(LDFLAGS) $(ISCSI_LIB) + +install: $(SBINDIR) $(PROGRAMS_DEST) + +$(SBINDIR): + [ -d $@ ] || $(INSTALL) -d $@ + +$(PROGRAMS_DEST): $(SBINDIR)/%: % + $(INSTALL) -m 755 $? $@ + clean: rm -f *.o $(PROGRAMS) .depend $(LIBSYS) diff --git a/utils/.gitignore b/utils/.gitignore index 7efe3fd..7b4beea 100644 --- a/utils/.gitignore +++ b/utils/.gitignore @@ -1 +1,4 @@ iscsi-iname +50-iscsi-firmware-login.rules +iscsi-gen-initiatorname.sh +iscsi_fw_login.sh diff --git a/utils/50-iscsi-firmware-login.rules b/utils/50-iscsi-firmware-login.rules.template index 9fa1e7d..9fa1e7d 100644 --- a/utils/50-iscsi-firmware-login.rules +++ b/utils/50-iscsi-firmware-login.rules.template diff --git a/utils/Makefile b/utils/Makefile index aed3bb0..92af01e 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -1,16 +1,74 @@ # This Makefile will work only with GNU make. +# +# Make file for the util sub-directory +# +# This make file does not control the fwparam_ibft +# or sysdeps subdirectories. Those are still controlled +# from the top-level make file. +# + +SED = /usr/bin/sed +INSTALL = install +CHMOD = chmod + +DESTDIR ?= +SBINDIR ?= $(DESTDIR)/sbin + +ETCDIR = $(DESTDIR)/etc +RULESDIR = $(ETCDIR)/udev/rules.d CFLAGS ?= -O2 -fno-inline -g CFLAGS += -Wall -Wextra -Wstrict-prototypes -PROGRAMS = iscsi-iname -all: $(PROGRAMS) +PROGRAMS = iscsi-iname +PROGRAMS_DEST = $(addprefix $(SBINDIR)/,$(PROGRAMS)) + +SCRIPTS_SOURCES = iscsi_discovery.sh iscsi_offload.sh +SCRIPTS_TEMPLATES = iscsi_fw_login.sh.template iscsi-gen-initiatorname.sh.template +SCRIPTS_GENERATED = $(SCRIPTS_TEMPLATES:.template=) +SCRIPTS_DEST = $(addprefix $(SBINDIR)/,$(basename $(SCRIPTS_GENERATED))) \ + $(addprefix $(SBINDIR)/,$(basename $(SCRIPTS_SOURCES))) + +RULESFILES_TEMPLATES = 50-iscsi-firmware-login.rules.template +RULESFILES_GENERATED = $(RULESFILES_TEMPLATES:.template=) +RULESFILES_DEST = $(addprefix $(RULESDIR)/,$(RULESFILES_GENERATED)) + +OBJS = iscsi-iname.o md5.o + +all: $(PROGRAMS) $(SCRIPTS_GENERATED) $(RULESFILES_GENERATED) + +$(SCRIPTS_GENERATED): %.sh: %.sh.template + $(SED) -e 's:@SBINDIR@:$(SBINDIR):' $? > $@ + $(CHMOD) 755 $@ -iscsi-iname: md5.o iscsi-iname.o +$(RULESFILES_GENERATED): %.rules: %.rules.template + $(SED) -e 's:@SBINDIR@:$(SBINDIR):' $? > $@ + +iscsi-iname: $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) $^ $(DBM_LIB) -o $@ +install: $(SBINDIR) $(RULESDIR) $(PROGRAMS_DEST) $(SCRIPTS_DEST) $(RULESFILES_DEST) + +$(PROGRAMS_DEST): $(SBINDIR)/%: % + $(INSTALL) -m 755 $? $@ + +$(SCRIPTS_DEST): $(SBINDIR)/%: %.sh + $(INSTALL) -m 755 $? $@ + +install_udev_rules: $(RULESFILES_DEST) + +$(RULESFILES_DEST): $(RULESDIR)/%: % + $(INSTALL) -m 644 $? $@ + +$(SBINDIR) $(RULESDIR): + [ -d $@ ] || $(INSTALL) -d $@ + clean: - rm -f *.o $(PROGRAMS) .depend + $(RM) $(OBJS) + $(RM) $(PROGRAMS) + $(RM) $(SCRIPTS_GENERATED) + $(RM) $(RULESFILES_GENERATED) + $(RM) .depend depend: gcc $(CFLAGS) -M `ls *.c` > .depend diff --git a/utils/iscsi-gen-initiatorname b/utils/iscsi-gen-initiatorname.sh.template index 70ad8bf..70ad8bf 100755..100644 --- a/utils/iscsi-gen-initiatorname +++ b/utils/iscsi-gen-initiatorname.sh.template diff --git a/utils/iscsi_discovery b/utils/iscsi_discovery.sh index be2f390..be2f390 100755 --- a/utils/iscsi_discovery +++ b/utils/iscsi_discovery.sh diff --git a/utils/iscsi_fw_login b/utils/iscsi_fw_login.sh.template index aae9e4c..aae9e4c 100644 --- a/utils/iscsi_fw_login +++ b/utils/iscsi_fw_login.sh.template diff --git a/utils/iscsi_offload b/utils/iscsi_offload.sh index 1869fe1..1869fe1 100755 --- a/utils/iscsi_offload +++ b/utils/iscsi_offload.sh |