summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile87
1 files changed, 75 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index 2a1bbf6..f19c115 100644
--- a/Makefile
+++ b/Makefile
@@ -2,9 +2,30 @@
# Makefile for the Open-iSCSI Initiator
#
+# if you are packaging open-iscsi, set this variable to the location
+# that you want everything installed into.
+DESTDIR ?=
+
+prefix = /usr
+exec_prefix = $(prefix)
+sbindir = $(exec_prefix)/sbin
+bindir = $(exec_prefix)/bin
+mandir = $(prefix)/share/man
+etcdir = /etc
+initddir = $(etcdir)/init.d
+
+MANPAGES = doc/iscsid.8 doc/iscsiadm.8
+PROGRAMS = usr/iscsid usr/iscsiadm
+INSTALL = install
+ETCFILES = etc/iscsid.conf
+
+# Random comments:
+# using '$(MAKE)' instead of just 'make' allows make to run in parallel
+# over multiple makefile.
+
all:
- make -C usr
- make -C kernel
+ $(MAKE) -C usr
+ $(MAKE) -C kernel
@echo
@echo "Compilation complete Output file"
@echo "----------------------------------- ----------------"
@@ -16,17 +37,59 @@ all:
@echo Read README file for detailed information.
clean:
- make -C usr clean
- make -C kernel clean
+ $(MAKE) -C usr clean
+ $(MAKE) -C kernel clean
+
+# this is for safety
+# now -jXXX will still be safe
+# note that make may still execute the blocks in parallel
+.NOTPARALLEL: install_usr install_programs install_initd \
+ install_initd_suse install_initd_redhat install_initd_debian \
+ install_etc install_doc install_kernel
+
+install: install_kernel install_programs install_doc install_etc \
+ install_initd
+
+install_programs: $(PROGRAMS)
+ $(INSTALL) -d $(DESTDIR)$(sbindir)
+ $(INSTALL) -m 755 $^ $(DESTDIR)$(sbindir)
-install: kernel/iscsi_tcp.ko kernel/scsi_transport_iscsi.ko usr/iscsid usr/iscsiadm
- @install -vD usr/iscsid /usr/sbin/iscsid
- @install -vD usr/iscsiadm /usr/sbin/iscsiadm
+# ugh, auto-detection is evil
+# Gentoo maintains their own init.d stuff
+install_initd:
if [ -f /etc/debian_version ]; then \
- install -vD -m 755 etc/initd/initd.debian /etc/init.d/open-iscsi; \
+ $(MAKE) install_initd_debian ; \
elif [ -f /etc/redhat-release ]; then \
- install -vD -m 755 etc/initd/initd.redhat /etc/init.d/open-iscsi; \
+ $(MAKE) install_initd_redhat ; \
+ elif [ -f /etc/SuSE-release ]; then \
+ $(MAKE) install_initd_suse ; \
fi
- install -vD kernel/iscsi_tcp.ko /lib/modules/`uname -r`/kernel/drivers/scsi/iscsi_tcp.ko
- install -vD kernel/scsi_transport_iscsi.ko /lib/modules/`uname -r`/kernel/drivers/scsi/scsi_transport_iscsi.ko
- -depmod -aq
+
+# these are external targets to allow bypassing distribution detection
+install_initd_suse:
+ $(INSTALL) -d $(DESTDIR)$(initddir)
+ $(INSTALL) -m 755 etc/initd/initd.suse \
+ $(DESTDIR)$(initddir)/open-iscsi
+
+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_etc: $(ETCFILES)
+ $(INSTALL) -d $(DESTDIR)$(etcdir)
+ $(INSTALL) $^ $(DESTDIR)$(etcdir)
+
+install_doc: $(MANPAGES)
+ $(INSTALL) -d $(DESTDIR)$(mandir)/man8
+ $(INSTALL) -m 644 $^ $(DESTDIR)$(mandir)/man8
+
+install_kernel:
+ $(MAKE) -C kernel install_kernel
+
+# vim: ft=make tw=72 sw=4 ts=4: