#!/usr/bin/make -f
# Copyright © 2001-2005 Mario Jou/3en <joussen@debian.org>
# Copyright © 2005-2008 Martin F. Krafft <madduck@debian.org>
# Distributable under the terms of the GNU GPL version 2.
#

#export DH_VERBOSE=1

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
TG_BRANCHES="debian/conffile-location debian/disable-udev-incr-assembly debian/no-Werror"
-include /usr/share/topgit/tg2quilt.mk

CXFLAGS = -ggdb
RUNDIR = /run/mdadm
RUNOPTS = MAP_DIR=$(RUNDIR) MDMON_DIR=$(RUNDIR) FAILED_SLOTS_DIR=$(RUNDIR)/failed-slots

CXFLAGS_UDEB := $(CXFLAGS) -fomit-frame-pointer
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
    CXFLAGS += -O0
    CXFLAGS_UDEB += -O0
else
    CXFLAGS += -O2
    ifeq ($(DEB_HOST_ARCH),ppc64)
      # work around link error
      CXFLAGS_UDEB += -O2
    else
      CXFLAGS_UDEB += -Os
    endif
endif

.PHONY: configure
configure:

build: configure build-stamp
build-stamp:
	dh_testdir
	$(MAKE) -f debian/rules mdadm.udeb DEBIAN=yes
	$(MAKE) clean
	$(MAKE) -f debian/rules mdadm DEBIAN=yes
	touch $@

mdadm.udeb: FLAGS = CXFLAGS="$(CXFLAGS_UDEB)" CONFFILE=/tmp/mdadm.conf
mdadm.udeb: configure
	dh_testdir
	$(MAKE) $(FLAGS) all $(RUNOPTS)
	mv mdadm mdadm.udeb
.PHONY: mdadm.udeb

mdadm: FLAGS = CXFLAGS="$(CXFLAGS)" CONFFILE=/etc/mdadm/mdadm.conf CONFFILE2=/etc/mdadm.conf
mdadm: configure
	dh_testdir
	$(MAKE) $(FLAGS) all man $(RUNOPTS)
.PHONY: mdadm

INTERPOLATED_FILES = debian/bugscript debian/mkconf

clean:
	dh_testdir
	rm -f $(INTERPOLATED_FILES)
	rm -f build-stamp
	[ ! -f Makefile ] || $(MAKE) clean
	rm -f mdadm.udeb mdadm
	dh_clean
	debconf-updatepo

debian/%: VERSION=$(shell dpkg-parsechangelog | sed -ne 's,^Version: ,,p')
debian/%: debian/%.in
	sed -re 's,%VERSION%,$(VERSION),g' < $< > $@

install: DESTDIR=$(CURDIR)/debian/mdadm
install: DESTDIR_UDEB=$(DESTDIR)-udeb
install: build $(INTERPOLATED_FILES)
	dh_testdir
	dh_clean -k
	dh_installdirs
	chmod +x debian/install-rc
	PACKAGE=mdadm-udeb debian/install-rc check.d

	$(MAKE) install DESTDIR=$(DESTDIR)

	install -m0755 debian/initramfs/hook \
		$(DESTDIR)/usr/share/initramfs-tools/hooks/mdadm

	install -m0755 debian/initramfs/init-premount \
		$(DESTDIR)/usr/share/initramfs-tools/scripts/init-premount/mdadm

	install -m0755 debian/initramfs/mdadm-functions \
		$(DESTDIR)/usr/share/initramfs-tools/scripts/mdadm-functions

	install -m0755 debian/initramfs/local-premount \
		$(DESTDIR)/usr/share/initramfs-tools/scripts/local-premount/mdadm

	install -m0755 debian/mkconf $(DESTDIR)/usr/share/mdadm
	install -m0755 debian/checkarray $(DESTDIR)/usr/share/mdadm
	install -m0755 debian/bugscript $(DESTDIR)/usr/share/bug/mdadm/script
	install -m0755 debian/source_mdadm.py $(DESTDIR)/usr/share/apport/package-hooks/
	install -m0755 mdadm.udeb $(DESTDIR_UDEB)/sbin/mdadm
	install -D -m0644 udev-md-raid.rules $(DESTDIR_UDEB)/lib/udev/rules.d/64-md-raid.rules

binary-indep: build install

binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdebconf
	echo >> debian/mdadm/DEBIAN/templates
	po2debconf debian/mdadm-udeb.templates >> debian/mdadm/DEBIAN/templates
	dh_installdocs
	dh_installexamples debian/mdadd.sh
	dh_installinit -- defaults 25
	dh_installman
	dh_installcron
	dh_installchangelogs ChangeLog
	dh_installlogcheck
	dh_link
	dh_strip
	dh_compress -Xmdadd.sh
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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