#!/usr/bin/make -f

export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
  confflags += --build $(DEB_HOST_GNU_TYPE)
else
  confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif

.PHONY: configure
configure: configure-stamp
configure-stamp:
	-cp -f /usr/share/misc/config.sub config.sub
	-cp -f /usr/share/misc/config.guess config.guess
	# Add here commands to configure the package.
	#autoreconf
	#automake --add-missing
	./configure $(confflags) \
	--prefix=/usr\
	--sysconfdir=/etc/X11/fvwm\
	--libexecdir=/usr/lib\
	--mandir=/usr/share/man --without-gnome\
	--without-rplay-library --with-stroke-library\
	--enable-multibyte
	#--enable-command-log --enable-debug-msgs
	cat debian/README.Debian.in > debian/README.Debian
	awk -f debian/conf.awk debian/rules >> debian/README.Debian
	echo -e "\n -- Alexander Kotelnikov <sacha@debian.org>, " `date -R` >> debian/README.Debian
	touch configure-stamp

.PHONY: build
build: configure-stamp patch-stamp build-stamp
build-stamp:
	$(MAKE) 
	touch build-stamp

.PHONY: binary
binary: binary-indep binary-arch

.PHONY: binary-indep
binary-indep: build

.PHONY: binary-arch
binary-arch: build
	-rm -fr debian/tmp
	install -m 755 -o root -g root\
		-d debian/tmp/DEBIAN\
		-d debian/tmp/usr/share/doc/fvwm\
		-d debian/tmp/etc/X11/fvwm\
		-d debian/tmp/etc/menu-methods\
		-d debian/tmp/usr/lib/menu
#
###
	# Add here commands to install the package into debian/tmp.
	$(MAKE) DESTDIR=`pwd`/debian/tmp/ install
	# clean up
	rm debian/tmp/usr/bin/fvwm
	#
	install --mode=755 utils/fvwmrc_convert debian/tmp/usr/bin/
	install --mode=755 debian/contrib/setup-background debian/tmp/usr/bin/
	install --mode=644 debian/contrib/setup-background.1x debian/tmp/usr/share/man/man1/
	install --mode=755 debian/contrib/fvwm-update-menu debian/tmp/usr/bin/
	install --mode=644 debian/contrib/fvwm-update-menu.1 debian/tmp/usr/share/man/man1/
	rm debian/tmp/usr/share/man/man1/fvwm-root.1
	sh -c 'for i in debian/tmp/usr/share/man/man1/*; do gzip -9 $$i; done'
	ln -s xpmroot.1.gz debian/tmp/usr/share/man/man1/fvwm-root.1.gz
	#
	install --mode=644 debian/etc.X11.fvwm/*\
	                   debian/tmp/etc/X11/fvwm/
	# samples
	install -d debian/tmp/usr/share/doc/fvwm/sample.fvwmrc/
	install --mode=644 sample.fvwmrc/DecorMwm \
		debian/tmp/usr/share/doc/fvwm/sample.fvwmrc/
	install --mode=644 sample.fvwmrc/DecorWin95 \
		debian/tmp/usr/share/doc/fvwm/sample.fvwmrc/
	install --mode=644 sample.fvwmrc/new-features \
		debian/tmp/usr/share/doc/fvwm/sample.fvwmrc/
	install --mode=644 sample.fvwmrc/system.fvwm2rc \
		debian/tmp/usr/share/doc/fvwm/sample.fvwmrc/
	install --mode=644 sample.fvwmrc/system.fvwm2rc-sample-1 \
		debian/tmp/usr/share/doc/fvwm/sample.fvwmrc/
	install --mode=644 sample.fvwmrc/system.fvwm2rc-sample-2 \
		debian/tmp/usr/share/doc/fvwm/sample.fvwmrc/
	install --mode=644 sample.fvwmrc/system.fvwm2rc-sample-95 \
		debian/tmp/usr/share/doc/fvwm/sample.fvwmrc/
	# sample hooks
	install -d debian/tmp/usr/share/doc/fvwm/hooks
	install --mode=644 debian/usr.share.doc.fvwm.hooks/* \
		debian/tmp/usr/share/doc/fvwm/hooks
	# jdg's examples
	install -d debian/tmp/usr/share/doc/fvwm/examples
	install --mode=644 debian/usr.share.doc.fvwm.examples/* \
		debian/tmp/usr/share/doc/fvwm/examples
	# my configuration
	install -d debian/tmp/usr/share/doc/fvwm/examples/sacha
	install --mode=644 debian/usr.share.doc.fvwm.examples.sacha/* \
		debian/tmp/usr/share/doc/fvwm/examples/sacha
	# docs
	install -d debian/tmp/usr/share/doc/fvwm/docs
	install --mode=644 docs/ANNOUNCE \
	  debian/tmp/usr/share/doc/fvwm/docs
	install --mode=644 docs/BUGS \
	  debian/tmp/usr/share/doc/fvwm/docs
	install --mode=644 docs/ChangeLog \
	  debian/tmp/usr/share/doc/fvwm/docs
	install --mode=644 docs/DEVELOPERS \
	  debian/tmp/usr/share/doc/fvwm/docs
	install --mode=644 docs/FAQ \
	  debian/tmp/usr/share/doc/fvwm/docs
	install --mode=644 docs/TODO \
	  debian/tmp/usr/share/doc/fvwm/docs
	install --mode=644 docs/color_combos \
	  debian/tmp/usr/share/doc/fvwm/docs
	install --mode=644 docs/error_codes \
	  debian/tmp/usr/share/doc/fvwm/docs
	install --mode=644 docs/fvwm.lsm \
	  debian/tmp/usr/share/doc/fvwm/docs
	install --mode=644 docs/m4_hacks \
	  debian/tmp/usr/share/doc/fvwm/docs
	#
	install --mode=644 ChangeLog \
	  debian/tmp/usr/share/doc/fvwm/changelog
	gzip -9 debian/tmp/usr/share/doc/fvwm/changelog
###
#
	install -m 644 -o root -g root\
	        debian/copyright\
	        debian/README.Debian\
	        debian/tmp/usr/share/doc/fvwm
	install -m 644 -o root -g root\
	        debian/changelog\
	        debian/tmp/usr/share/doc/fvwm/changelog.Debian
	gzip -9 debian/tmp/usr/share/doc/fvwm/changelog.Debian
	# menu stuff
	install -m 644 -o root -g root debian/menu debian/tmp/usr/lib/menu/fvwm
	install -m 755 -o root -g root debian/menu-method debian/tmp/etc/menu-methods/fvwm
	#
	find debian/tmp -exec sh -c 'if file -b {}|egrep -q "^ELF.*executable"; then strip --strip-all --remove-section=.comment --remove-section=.note {}; fi' \;
	find debian/tmp -exec sh -c 'if file -b {}|egrep -q "^ELF.*shared object"; then strip --strip-unneeded --remove-section=.comment --remove-section=.note {}; fi' \;
	#
	find debian/tmp -type f | grep -v "./DEBIAN" | xargs md5sum | \
	     sed -e 's#debian/tmp/##' > debian/tmp/DEBIAN/md5sums
	install -m 644 -o root -g root debian/conffiles debian/tmp/DEBIAN/
	install -m 755 -o root -g root debian/fvwm.postinst debian/tmp/DEBIAN/postinst
	install -m 755 -o root -g root debian/fvwm.postrm   debian/tmp/DEBIAN/postrm
	install -m 755 -o root -g root debian/fvwm.preinst  debian/tmp/DEBIAN/preinst
	install -m 755 -o root -g root debian/fvwm.prerm    debian/tmp/DEBIAN/prerm

	dpkg-shlibdeps `find debian/tmp -exec sh -c 'if file -b {}|grep -q ^ELF; then echo {}; fi' \;`
	dpkg-gencontrol -isp -pfvwm
	dpkg --build debian/tmp ..

patch-stamp:
	if [ ! -x debian/dpatch ]; then chmod a+x debian/dpatch; fi
	debian/dpatch patch

.PHONY: clean
clean:
	if [ ! -x debian/dpatch ]; then chmod a+x debian/dpatch; fi
	debian/dpatch clean
	-rm -f build-stamp configure-stamp debian/README.Debian
	-rm -fr debian/tmp debian/files debian/substvars build-stamp
	-$(MAKE) distclean

