#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.
#
# Modified to make a template file for a multi-binary package with separated
# build-arch and build-indep targets  by Bill Allombert 2001

# Uncomment this to turn on verbose mode.
# export DH_VERBOSE=1

include /usr/share/dpatch/dpatch.make

# This has to be exported to make some magic below work.
export DH_OPTIONS

PACKAGE=drbd8-module
MA_DIR ?= /usr/share/modass
-include $(MA_DIR)/include/generic.make
-include $(MA_DIR)/include/common-rules.make

CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	INSTALL_PROGRAM += -s
endif

# module-assistant stuff
MAJOR=$(shell echo $(KVERS) | sed -e 's/\(...\).*/\1/')
ifeq ($(MAJOR),2.6)
KO=k
endif

kdist_clean: unpatch
	dh_clean
	-$(MAKE) -C drbd clean

# prep-deb-files rewrites the debian/ files as needed. See RATIONALE for
# details
kdist_config: prep-deb-files
# ... additional kernel specific things to configure...

kdist_configure: kdist_config

binary-modules: prep-deb-files
	dh_testdir
	dh_testroot
	dh_clean -k
	$(MAKE) -C drbd KERNEL_SOURCES=$(KSRC) MODVERSIONS=detect KERNEL=linux-$(KVERS) KDIR=$(KSRC)
	install -m644 -b -D drbd/drbd.$(KO)o $(CURDIR)/debian/$(PKGNAME)/lib/modules/$(KVERS)/kernel/drivers/block/drbd.$(KO)o
	dh_installdocs
	dh_installchangelogs
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_gencontrol -- -v$(VERSION)
	dh_md5sums
	dh_builddeb --destdir=$(DEB_DESTDIR)

#Architecture
build: patch build-arch build-indep

build-arch: build-arch-stamp
build-arch-stamp:
	dh_testdir
#	build this first, so user/drbd_buildtag.c does not use the stale thing from the tgz
	[ -f configure ] || autoconf
	./configure --prefix=/ --sysconfdir=/etc
	$(MAKE) drbd/drbd_buildtag.c
	$(MAKE) -C user
	$(MAKE) -C scripts
	$(MAKE) -C documentation doc
	touch build-arch-stamp

build-indep: build-indep-stamp
build-indep-stamp:
	touch build-indep-stamp

clean: unpatch
	dh_testdir
	dh_testroot
	rm -f build-arch-stamp build-indep-stamp #CONFIGURE-STAMP#
#	remove these files from upstream tgz
	rm -f debian/drbd8.*
	rm -f debian/drbd8-source.dirs
	rm -f debian/kernel-patch-wup.kpatches debian/kernel-patch-wup.README.Debian debian/kernel-export-wup.patch
	-$(MAKE) -C user clean
	-$(MAKE) -C scripts clean
	-$(MAKE) -C documentation clean
	-$(MAKE) -C drbd clean
	dh_clean

install: install-arch install-indep
install-indep:
	dh_testdir
	dh_testroot
	dh_clean -k -i
	dh_installdirs -i
	cp -a drbd/* debian/$(PACKAGE)-source/usr/src/modules/drbd/drbd
	cp Makefile debian/$(PACKAGE)-source/usr/src/modules/drbd
	cp drbd/linux/drbd_config.h debian/$(PACKAGE)-source/usr/src/modules/drbd
	mkdir debian/$(PACKAGE)-source/usr/src/modules/drbd/scripts/
	cp -a scripts/adjust_drbd_config_h.sh debian/$(PACKAGE)-source/usr/src/modules/drbd/scripts/

#	 install debian/ files
	cd debian ; cp changelog control compat *.modules.in rules copyright $(PACKAGE)-source/usr/src/modules/drbd/debian

#	 tar the stuff
	cd debian/$(PACKAGE)-source/usr/src/ ; tar pzfvc drbd8.tar.gz modules ; rm -rf modules

	install -m 755 $(CURDIR)/debian/modass.drbd8-module-source $(CURDIR)/debian/$(PACKAGE)-source/usr/share/modass/overrides/drbd8-module-source
	dh_install -i

install-arch:
	dh_testdir
	dh_testroot
	dh_clean -k -s
	dh_installdirs -s
	$(MAKE) DESTDIR=$(CURDIR)/debian/drbd8-utils/ -C user install
	$(MAKE) DESTDIR=$(CURDIR)/debian/drbd8-utils/ -C scripts install
	$(MAKE) DESTDIR=$(CURDIR)/debian/drbd8-utils/ -C documentation install

	dh_install -s
# Must not depend on anything. This is to be called by
# binary-arch/binary-indep
# in another 'make' thread.
binary-common:
	dh_testdir
	dh_testroot
	dh_installchangelogs ChangeLog
	dh_installdocs
	dh_installexamples
#	dh_installinit
	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb
# Build architecture independant packages using the common target.
binary-indep: build-indep install-indep
	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common

# Build architecture dependant packages using the common target.
binary-arch: build-arch install-arch
	$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common

binary: binary-arch binary-indep
.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch patch unpatch
