#!/usr/bin/make -f

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

DEB_HOST_ARCH       ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

VERSION  := $(shell dpkg-parsechangelog | sed -ne 's,^Version: *\(.*\),\1,p')

CFLAGS_DEB = -Wall -W -Werror -ggdb
CFLAGS_STATIC = -Wall -W -Werror
CFLAGS_UDEB = -Wall -W -Werror

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS_DEB += -O0
	CFLAGS_STATIC += -O0
	CFLAGS_UDEB += -O0
else
	CFLAGS_DEB += -O2
	CFLAGS_STATIC += -Os -fomit-frame-pointer
	CFLAGS_UDEB += -Os -fomit-frame-pointer
endif

configure:
	autoreconf -i
	@exit 1

CONFIGURE = ../configure \
		--host=$(DEB_HOST_GNU_TYPE) \
		--build=$(DEB_BUILD_GNU_TYPE) \
		--prefix=/usr \
		--mandir=\$${prefix}/share/man \
		--infodir=\$${prefix}/share/info \
		--with-debian-architecture=$(DEB_HOST_ARCH)

build-deb/config.status: configure
	dh_testdir
	-mkdir build-deb
	cd build-deb && \
	$(CONFIGURE) \
		CFLAGS="${CFLAGS_DEB}" \
		--with-frontend=standalone

build-static/config.status: configure
	dh_testdir
	-mkdir build-static
	cd build-static && \
	$(CONFIGURE) \
		CFLAGS="${CFLAGS_STATIC}" \
		LDFLAGS="-static" \
		--with-configdir=\$${datadir}/cdebootstrap-static \
		--with-frontend=standalone

build-tar/config.status: configure
	dh_testdir
	-mkdir build-tar
	cd build-tar && \
	$(CONFIGURE) \
		CFLAGS="${CFLAGS_STATIC}" \
		LDFLAGS="-static" \
		--with-configdir=BINARY/cdebootstrap-support \
		--with-frontend=standalone

build-udeb/config.status: configure
	dh_testdir
	-mkdir build-udeb
	cd build-udeb && \
	$(CONFIGURE) \
		CFLAGS="${CFLAGS_UDEB}" \
		--with-frontend=debian-installer

build: build-deb build-static build-tar build-udeb

.NOTPARALLEL: build-deb-stamp build-static-stamp build-tar-stamp build-udeb-stamp

build-deb: build-deb-stamp
build-deb-stamp: build-deb/config.status
	dh_testdir
	$(MAKE) -C build-deb
	touch $@

build-static: build-static-stamp
build-static-stamp: build-static/config.status
	dh_testdir
	$(MAKE) -C build-static
	touch $@

build-tar: build-tar-stamp
build-tar-stamp: build-tar/config.status
	dh_testdir
	$(MAKE) -C build-tar
	touch $@

build-udeb: build-udeb-stamp
build-udeb-stamp: build-udeb/config.status
	dh_testdir
	$(MAKE) -C build-udeb
	touch $@

clean:
	dh_testdir
	rm -f *-stamp 

	-rm -rf build-*

	cp -f /usr/share/misc/config.sub config.sub
	cp -f /usr/share/misc/config.guess config.guess

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	$(MAKE) -C build-deb install DESTDIR=$(CURDIR)/debian/cdebootstrap

	$(MAKE) -C build-static install DESTDIR=$(CURDIR)/debian/cdebootstrap-static
	mv debian/cdebootstrap-static/usr/bin/cdebootstrap debian/cdebootstrap-static/usr/bin/cdebootstrap-static
	mv debian/cdebootstrap-static/usr/share/man/man1/cdebootstrap.1 debian/cdebootstrap-static/usr/share/man/man1/cdebootstrap-static.1

	$(MAKE) -C build-tar install DESTDIR=$(CURDIR)/debian/tmp
	strip --remove-section=.comment --remove-section=.note debian/tmp/usr/bin/cdebootstrap
	tar -C debian/tmp/usr/bin -czf debian/tmp/cdebootstrap_$(VERSION)_$(DEB_HOST_ARCH).tar.gz .
	mkdir -p debian/cdebootstrap-static/usr/lib/cdebootstrap
	cp debian/tmp/cdebootstrap_$(VERSION)_$(DEB_HOST_ARCH).tar.gz debian/cdebootstrap-static/usr/lib/cdebootstrap

	$(MAKE) -C build-udeb install DESTDIR=$(CURDIR)/debian/cdebootstrap-udeb


# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs
	dh_installdocs
	dh_installexamples
#	dh_install
#	dh_installmenu
	dh_installdebconf
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
#	dh_installmime
#	dh_installinit
#	dh_installcron
#	dh_installinfo
#	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
#	dh_perl
#	dh_python
#	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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