| ifndef PREFIX |
| PREFIX=/usr/local |
| endif |
| |
| REVISION ?= $(shell if [ -e .svn ]; then \ |
| svn info | sed -n 's/^Revision:[[:blank:]]*/./p'; \ |
| elif [ -e .git ]; then \ |
| echo -n .; \ |
| git log | grep -c ^commit; \ |
| fi) |
| VERSION = $(shell echo -n "$$(sed -n 's/^[[:blank:]]*\$$VERSION[[:blank:]]*=[[:blank:]]*[\"'"'"']\([0-9.]*\)[\"'"'"'];$$/\1/p' scstadmin/scst-*/lib/SCST/SCST.pm)$(REVISION)") |
| |
| SCSTADMIN_DIR = $(shell if [ ! -h scstadmin ]; then \ |
| rm -f scstadmin; \ |
| ln -s scstadmin.sysfs scstadmin; \ |
| fi; \ |
| echo scstadmin) |
| |
| MANDIR ?= $(DESTDIR)$(PREFIX)/man |
| |
| INITDIR := $(shell if [ -f /etc/slackware-version ]; then \ |
| echo /etc/rc.d; \ |
| else \ |
| echo /etc/init.d; \ |
| fi) |
| |
| ECHO_INSTALL_FN = \ |
| if [ -n "$(DESTDIR)" ]; then \ |
| chr="chroot $(DESTDIR)"; \ |
| else \ |
| chr=""; \ |
| fi; \ |
| if type systemctl >/dev/null 2>&1; then \ |
| echo $$chr systemctl enable "$(1).service"; \ |
| elif type chkconfig >/dev/null 2>&1; then \ |
| echo $$chr chkconfig --add "$(1)"; \ |
| elif type update-rc.d >/dev/null 2>&1; then \ |
| echo $$chr update-rc.d "$(1)" defaults; \ |
| elif type rc-update >/dev/null 2>&1; then \ |
| echo $$chr rc-update add "$(1)" default; \ |
| elif type /usr/lib/lsb/install_initd >/dev/null 2>&1; then \ |
| echo $$chr /usr/lib/lsb/install_initd "$(1)"; \ |
| fi |
| |
| REMOVE_FN = \ |
| if [ -n "$(DESTDIR)" ]; then \ |
| chr="chroot $(DESTDIR)"; \ |
| else \ |
| chr=""; \ |
| fi; \ |
| if type systemctl >/dev/null 2>&1; then \ |
| $$chr systemctl disable "$(1).service"; \ |
| elif type chkconfig >/dev/null 2>&1; then \ |
| $$chr chkconfig --del "$(1)"; \ |
| elif type update-rc.d >/dev/null 2>&1; then \ |
| $$chr update-rc.d -f "$(1)" remove; \ |
| elif type rc-update >/dev/null 2>&1; then \ |
| $$chr rc-update del "$(1)"; \ |
| elif type /usr/lib/lsb/remove_initd >/dev/null 2>&1; then \ |
| $$chr /usr/lib/lsb/remove_initd "$(1)"; \ |
| fi; \ |
| rm -f $(DESTDIR)$(INITDIR)/$(1) |
| |
| DEFAULTDIR := $(shell if [ -f /etc/gentoo-release ]; then \ |
| echo /etc/conf.d; \ |
| else \ |
| echo /etc/default; \ |
| fi) |
| |
| RPMTOPDIR ?= $(shell if [ $$(id -u) = 0 ]; then echo /usr/src/packages;\ |
| else echo $$PWD/rpmbuilddir; fi) |
| |
| all: |
| cd $(SCSTADMIN_DIR) && $(MAKE) $@ |
| |
| install install_vendor: |
| @if [ -z "$(DESTDIR)" ] && rpm -q scstadmin >/dev/null 2>&1; then \ |
| echo Error: the scstadmin RPM must be uninstalled first; false; fi |
| @if ! perl -MExtUtils::MakeMaker -e '' >/dev/null 2>&1; then \ |
| echo Error: the Perl module ExtUtils::MakeMaker must be installed \ |
| first; false; fi |
| cd $(SCSTADMIN_DIR) && $(MAKE) $@ |
| for m in scstadmin/man*/*.[1-9]; do \ |
| if [ -e $$m ]; then \ |
| d=$(MANDIR)/$$(basename $$(dirname $$m)); \ |
| if install -d $$d; then \ |
| install -m 644 $$m $$d; \ |
| fi \ |
| fi \ |
| done |
| # Remove the files that are obsolete since SCST-SCST has been |
| # renamed into SCST_SCST. |
| rm -rf "$(DESTDIR)$$(/usr/bin/perl -V:sitearch | sed "s|.*='||;s|'.*||")/auto/SCST-SCST" |
| # Install the files that have just been built. |
| install -d $(DESTDIR)$(INITDIR) |
| tmp=/tmp/scst-initd-$$$$ && init.d/scst >$$tmp && \ |
| install -m 755 $$tmp $(DESTDIR)$(INITDIR)/scst && \ |
| rm -f $$tmp |
| if [ ! -e $(DESTDIR)$(DEFAULTDIR)/scst ]; then \ |
| mkdir -p $(DESTDIR)$(DEFAULTDIR); \ |
| install -m 755 default/scst $(DESTDIR)$(DEFAULTDIR); \ |
| fi |
| for s in iscsi-scst qla2x00t; do \ |
| { $(call REMOVE_FN,$$s); } >/dev/null 2>&1; \ |
| done |
| @echo |
| @echo 'If you want SCST to start automatically at boot time, run' \ |
| 'the following command:' |
| @$(call ECHO_INSTALL_FN,scst) |
| @echo |
| |
| uninstall: |
| if [ -e $(DESTDIR)$(DEFAULTDIR)/scst ]; then \ |
| mv $(DESTDIR)$(DEFAULTDIR)/scst \ |
| $(DESTDIR)$(DEFAULTDIR)/scst.`date +%F,%T`; \ |
| fi |
| if [ -e $(DESTDIR)$(INITDIR)/scst ]; then \ |
| $(call REMOVE_FN,scst); \ |
| fi |
| for m in scstadmin/man*/*.[1-9]; do \ |
| if [ -e $$m ]; then \ |
| d=$(MANDIR)/$$(basename $$(dirname $$m)); \ |
| rm -f $$d/$$(basename $$m); \ |
| fi \ |
| done |
| cd $(SCSTADMIN_DIR) && $(MAKE) $@ |
| |
| perl-module: |
| cd $(SCSTADMIN_DIR) && $(MAKE) $@ |
| |
| test: |
| $(MAKE) -C scstadmin test |
| |
| dist-gzip: |
| name=$(shell basename $$PWD) && \ |
| mkdir $${name}-$(VERSION) && \ |
| { ../scripts/list-source-files | tar -T- -cf- | \ |
| tar -C $${name}-$(VERSION) -xf-; } && \ |
| rm -f $${name}-$(VERSION).tar.bz2 && \ |
| tar -cjf $${name}-$(VERSION).tar.bz2 $${name}-$(VERSION) && \ |
| rm -rf $${name}-$(VERSION) |
| |
| rpm: |
| name=$(shell basename $$PWD) && \ |
| rpmtopdir=$(RPMTOPDIR) && \ |
| $(MAKE) dist-gzip && \ |
| for d in BUILD RPMS SOURCES SPECS SRPMS; do \ |
| mkdir -p $${rpmtopdir}/$$d; \ |
| done && \ |
| cp $${name}-$(VERSION).tar.bz2 $${rpmtopdir}/SOURCES && \ |
| sed "s/@rpm_version@/$(VERSION)/g" \ |
| <$${name}.spec.in >$${name}.spec && \ |
| MAKE="$(MAKE)" \ |
| rpmbuild --define="%_topdir $${rpmtopdir}" -ba $${name}.spec && \ |
| rm -f $${name}-$(VERSION).tar.bz2 |
| |
| clean: |
| cd $(SCSTADMIN_DIR) && $(MAKE) $@ |
| |
| distclean: |
| cd $(SCSTADMIN_DIR) && $(MAKE) $@ |
| |
| extraclean: |
| cd $(SCSTADMIN_DIR) && $(MAKE) $@ |
| |
| release-archive: |
| ../scripts/generate-release-archive scstadmin "$$(sed -n 's/^my \$$Version[[:blank:]]*=[[:blank:]]*'"'"'SCST Configurator v\([^'"'"']*\)'"'"'.*/\1/p' scstadmin.sysfs/scstadmin)" |
| |
| .PHONY: all install uninstall perl-module clean distclean extraclean |