#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
export DH_VERBOSE = 1


# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

# rules won't see variables unless they're using DEB_foo_SET syntax. So use that as
# an intermediary. Also, export variables for sub-makes to be able to see them.
export KVER=$(DEB_KVER_SET)
export KDIR=$(DEB_KDIR_SET)
export CC=$(DEB_CC_SET)
export QLA_DIR=$(DEB_QLA_DIR_SET)
export QLA_INI_DIR=$(DEB_QLA_INI_DIR_SET)
export PKG_BUILD_MODE=$(DEB_PKG_BUILD_MODE)

SUBDIRS=scst $(shell grep -qw '^CONFIG_LIBFC' /boot/config-$(KVER) && echo fcst) iscsi-scst $(QLA_DIR) scst_local scstadmin srpt
DESTDIR=$(CURDIR)/debian/tmp
VERSION:=$(shell head -n1 debian/changelog | sed 's/.*(\([0-9.]*\).*).*/\1/')

%:
	echo "*** dh $@ ***"
	dh $@

clean:
	dh_testdir &&							\
	dh_prep -Xqla_isp/TAGS -Xdebian/changelog &&			\
	scripts/clean-source-tree -x debian/changelog -x debian/compat -x debian/scst.preinst \
	    -x debian/scst.postinst

build:
	[ -n "$(QLA_INI_DIR)" ] &&					\
	make $(PKG_BUILD_MODE) &&					\
	export BUILD_2X_MODULE=y &&					\
	export CONFIG_SCSI_QLA_FC=y &&					\
	export CONFIG_SCSI_QLA2XXX_TARGET=y &&				\
	for d in $(SUBDIRS); do $(MAKE) -C $$d; done &&			\
	{								\
		echo dkms.conf &&					\
		echo Makefile &&					\
		for d in fcst iscsi-scst $(QLA_INI_DIR) scst scst_local srpt; do\
			echo $$d;					\
		done;							\
	} | sed "s,^,usr/src/scst-$(VERSION)/," >debian/scst-dkms.install

build-indep: build

build-arch: build

install:
	[ -n "$(VERSION)" ] &&						\
	dh_testdir &&							\
	export PREFIX=/usr &&						\
	export DESTDIR="$(DESTDIR)" &&					\
	export BUILD_2X_MODULE=y &&					\
	export CONFIG_SCSI_QLA_FC=y &&					\
	export CONFIG_SCSI_QLA2XXX_TARGET=y &&				\
	for d in $(SUBDIRS); do						\
	    if [ $$d = scst ]; then					\
		{ $(MAKE) -C $$d install || break; }			\
	    else							\
		{ INSTALL_MOD_PATH="$(DESTDIR)" $(MAKE) -C $$d install; } ||\
		    break;						\
	    fi;								\
	done &&								\
	make $(PKG_BUILD_MODE) &&					\
	rm -f "$(DESTDIR)"/lib/modules/*/[Mm]odule* &&			\
	mkdir -p $(DESTDIR)/usr/src/scst-$(VERSION) &&			\
	for f in scst.dkms scst-dkms.postinst scst-dkms.prerm; do	\
		sed "s/\$${PACKAGE_VERSION}/$(VERSION)/;		\
		     s/\$${PKG_BUILD_MODE}/$(PKG_BUILD_MODE)/"		\
			< debian/$$f.in >debian/$$f || exit $?;	 	\
	done &&								\
	cp debian/scst.dkms						\
		$(DESTDIR)/usr/src/scst-$(VERSION)/dkms.conf &&		\
	scripts/list-source-files |					\
	grep -E '^Makefile$$|^(fcst|iscsi-scst|$(QLA_INI_DIR)|scst|scst_local|srpt)/'|\
	tar -T- -cf- |							\
	tar -C $(DESTDIR)/usr/src/scst-$(VERSION) -xf- &&		\
	find $(DESTDIR) -type f -print0 | xargs -0 -r chmod 0644 &&	\
	find $(DESTDIR) -type d -print0 | xargs -0 -r chmod 0755 &&	\
	mv "$(DESTDIR)"/usr/man "$(DESTDIR)"/usr/share/man &&		\
	dh_install &&							\
	dh_installman &&						\
	dh_installchangelogs &&						\
	dh_compress &&							\
	dh_fixperms &&							\
	dh_strip &&							\
	dh_makeshlibs &&						\
	dh_shlibdeps &&							\
	dh_installdeb &&						\
	dh_gencontrol &&						\
	dh_md5sums &&							\
	dh_builddeb

binary-indep: install

binary-arch: install

binary: binary-indep binary-arch

override_dh_installinit:
	dh_installinit --onlyscripts

override_dh_auto_configure:
	true

.PHONY: clean binary binary-arch binary-indep build build-arch build-indep \
	install
