#!/usr/bin/make -f
# Debian rules file for xscreensaver, adapted by Larry Daffner from
# Sample debian.rules file - for GNU Hello (1.3).
# Copyright 1994,1995 by Ian Jackson.
# I hereby give you perpetual unlimited permission to copy,
# modify and relicense this file, provided that you do not remove
# my name from the file itself.  (I assert my moral right of
# paternity under the Copyright, Designs and Patents Act 1988.)
# This file may have to be extensively modified
# Modified by Jose Luis Rivas and Tormod Volden and others

# Includes hardening compile options
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

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

build:	build-arch build-indep
build-arch:	build-stamp
build-indep:	build-stamp
build-stamp:
	dh_testdir

	# Generate POT file for translators
	cd po && intltool-update --verbose -p && cd ..

	# These are for some reason in the upstream tarball, preserve them
	[ -f driver/XScreenSaver_ad.h.upstream ] || \
	  [ ! -f driver/XScreenSaver_ad.h ] || \
	    mv driver/XScreenSaver_ad.h driver/XScreenSaver_ad.h.upstream
	[ -f driver/XScreenSaver_Xm_ad.h.upstream ] || \
	  [ ! -f driver/XScreenSaver_Xm_ad.h ] || \
	    mv driver/XScreenSaver_Xm_ad.h driver/XScreenSaver_Xm_ad.h.upstream

	# Configs files will be updated, so preserve originals
	[ -f config.sub.upstream ] || \
	  mv config.sub config.sub.upstream && \
	    cp /usr/share/misc/config.sub config.sub
	[ -f config.guess.upstream ] || \
	  mv config.guess config.guess.upstream && \
	    cp /usr/share/misc/config.guess config.guess

	dh_autoreconf

	# Configure for xscreensaver
	./configure --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) \
		--prefix=/usr \
		--without-gl --with-pam --with-gtk --without-kerberos \
		--with-hackdir=/usr/lib/xscreensaver \
		--with-configdir=/usr/share/xscreensaver/config \
		--mandir=/usr/share/man --with-login-manager \
		--with-x-app-defaults=/etc/X11/app-defaults \
		--with-proc-interrupts
	cp driver/XScreenSaver.ad driver/XScreenSaver.ad-nogl
	# Configure for xscreensaver-gl
	./configure --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) \
		--prefix=/usr \
		--with-gl --with-pam --with-gtk --without-kerberos \
		--with-hackdir=/usr/lib/xscreensaver \
		--with-configdir=/usr/share/xscreensaver/config \
		--mandir=/usr/share/man --with-login-manager \
		--with-x-app-defaults=/etc/X11/app-defaults \
		--with-proc-interrupts
	$(MAKE)
	touch build-stamp

clean:
	dh_testdir
	[ ! -f Makefile ] || $(MAKE) distclean
	rm -f config.log config.h
	rm -rf driver/XScreenSaver.ad-nogl
	rm -f debian/xscreensaver*.install
	rm -f debian/xscreensaver*.manpages
	rm -f po/.intltool-merge-cache
	[ ! -f config.sub.upstream ] || mv config.sub.upstream config.sub
	[ ! -f config.guess.upstream ] || mv config.guess.upstream config.guess
	[ ! -f driver/XScreenSaver_ad.h.upstream ] || \
	  mv driver/XScreenSaver_ad.h.upstream driver/XScreenSaver_ad.h
	[ ! -f driver/XScreenSaver_Xm_ad.h.upstream ] || \
	  mv driver/XScreenSaver_Xm_ad.h.upstream driver/XScreenSaver_Xm_ad.h
	dh_autoreconf_clean
	dh_clean

binary-indep:	build
# Nothing to do here

binary-arch:	build
	dh_testdir
	dh_testroot
	dh_prep
	$(MAKE) install_prefix=$(CURDIR)/debian/tmp \
		GTK_DATADIR=/usr/share KDEDIR=/usr install
	dh_installdirs -a
	dh_installdocs -a
	dh_installchangelogs -a
	# Install .desktop files used by gnome-screensaver etc
	mkdir -p debian/tmp/usr/share/applications/screensavers
	cp debian/screensavers-desktop-files/*.desktop \
		debian/tmp/usr/share/applications/screensavers/
	for i in debian/tmp/usr/share/applications/screensavers/*; do \
		cat debian/screensavers-desktop.stub >> $${i}; done
	mv debian/tmp/usr/share/man/man6/xscreensaver-gl-helper.6x \
	   debian/tmp/usr/share/man/man1/xscreensaver-gl-helper.1
	# Change man header section from 6 to 1
	sed -i '1s/6x/1/' debian/tmp/usr/share/man/man1/xscreensaver-gl-helper.1
	sh debian/split-hacks.sh
	dh_install -a
	chmod +x debian/xscreensaver/usr/share/xscreensaver/xscreensaver-wrapper.sh
	dh_installman -a
	dh_installpam -a
	dh_installmenu -a
	# Install app-defaults to proper places
	mv debian/xscreensaver-data/etc/X11/app-defaults/XScreenSaver \
		debian/xscreensaver-gl/etc/X11/app-defaults/XScreenSaver-gl
	install -m 644 -o root -g root driver/XScreenSaver.ad-nogl \
		debian/xscreensaver-data/etc/X11/app-defaults/XScreenSaver-nogl
	dh_link -a
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary:	binary-indep binary-arch

.PHONY:	binary binary-arch binary-indep clean
