#!/usr/bin/make -f
#-*- makefile -*-
# Made with the aid of dh_make, by Craig Small
# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
# Also some stuff taken from debmake scripts, by Christoph Lameter.

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

PACKAGE= dx

RSH=/usr/bin/ssh

export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie
DPKG_EXPORT_BUILDFLAGS=1
include /usr/share/dpkg/buildflags.mk

DEB_DX_FLAGS = -Wall -g -fsigned-char -fno-strict-aliasing
DEB_DX_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH_OS | sed 's/^k//')

configure: configure-stamp
configure-stamp:
	dh_testdir
	dh_autoreconf --as-needed

	DEB_HOST_ARCH=`dpkg-architecture -qDEB_HOST_ARCH`; \
	if test "$$DEB_HOST_ARCH" = "alpha"; then \
		DEB_DX_EXTRA_FLAGS="-mieee"; \
	fi; \
	CFLAGS="$(CFLAGS) $(DEB_DX_FLAGS) $$DEB_DX_EXTRA_FLAGS" \
	CXXFLAGS="$(CXXFLAGS) $(DEB_DX_FLAGS) $$DEB_DX_EXTRA_FLAGS" \
	LDFLAGS="$(LDFLAGS) -Wl,--as-needed" \
	./configure --prefix=/usr/share --enable-smp-linux --with-rsh=$(RSH) \
		--disable-dependency-tracking --enable-shared

	# libtool ain't no fool, but we're being clever, relocating the libs
	# at install time. There's no --dxlibdir option to configure, alas.
	printf '%%s/^hardcode_libdir_flag_spec=.*$$/hardcode_libdir_flag_spec=" -D__LIBTOOL_AINT_NO_FOOL__ "/\nw\nq\n' | ed libtool

	touch configure-stamp


build-arch: build
build-indep: build

build: build-stamp
build-stamp: configure-stamp
	dh_testdir

	# Compiling displayx.c with -O2 or higher is broken on mips.
	# Limit optimisation to -O1. Likewise for zclipQ.c on all archs.
	# Upstream has a fix in place for the latter, but it doesn't work
	# when explicitly overriding CFLAGS at configure time. Therefore
	# overriding the override once again.
	# m68k is broken on too many files with -O2. [dk]
	DEB_OVERRIDE_CFLAGS="`sed -ne \
		's/^CFLAGS =\(.*\)/\1/;T;s/-O[2-9]/-O1/gp' \
		src/exec/libdx/Makefile`"; \
	$(MAKE) -C src/exec/libdx CFLAGS="$$DEB_OVERRIDE_CFLAGS" zclipQ.lo; \
	DEB_HOST_ARCH=`dpkg-architecture -qDEB_HOST_ARCH`; \
	case "$$DEB_HOST_ARCH" in \
		mips) \
			$(MAKE) -C src/exec/libdx \
				CFLAGS="$$DEB_OVERRIDE_CFLAGS" \
				displayx.lo; \
			$(MAKE); \
			;; \
		m68k) \
			$(MAKE) CFLAGS="$$DEB_OVERRIDE_CFLAGS"; \
			;; \
		*) \
			$(MAKE); \
			;; \
	esac

	touch build-stamp

clean: clean-me-first
clean-me-first:
	dh_testdir
	dh_testroot
	rm -f configure-stamp build-stamp install-stamp

	test ! -f Makefile || $(MAKE) distclean
	test ! -L depcomp || rm -f depcomp

	dh_autoreconf_clean
	dh_clean

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Install everything into single directory first...
	$(MAKE) prefix=$(CURDIR)/debian/tmp/usr/share install
	# ... move icon so we can be lazy and use --sourcedir...
	cp debian/dxicon.xpm debian/tmp/usr/share/dx/
	# ... setup any symlinks we might need...
	export DEB_DX_ARCH=$(DEB_DX_ARCH); \
	dh_link -A
	# ... then move around to per-package dirs...
	export DEB_DX_ARCH=$(DEB_DX_ARCH); \
	dh_install --sourcedir=debian/tmp
	# ... and setup further symlinks we create by globbing.
	for i in $(CURDIR)/debian/libdx4/usr/lib/lib*.so*; do \
		i="`basename $$i`"; \
		dh_link -plibdx4 "usr/lib/$$i" "usr/lib/dx/lib_$(DEB_DX_ARCH)/$$i"; \
	done
	for i in $(CURDIR)/debian/libdx4-dev/usr/lib/lib*a; do \
		i="`basename $$i`"; \
		dh_link -plibdx4-dev "usr/lib/$$i" "usr/lib/dx/lib_$(DEB_DX_ARCH)/$$i"; \
	done
	dh_link -plibdx4 "usr/lib/dx/lib_$(DEB_DX_ARCH)" "usr/share/dx/lib_$(DEB_DX_ARCH)"

	# No clue where this symlink is coming from.
	rm -f $(CURDIR)/debian/libdx4-dev/usr/include/include

	# Install icon and desktop file
	install -d debian/dx/usr/share/pixmaps
	install -d debian/dx/usr/share/applications
	install -m644 debian/dxicon.xpm debian/dx/usr/share/pixmaps
	install -m644 debian/dx.desktop debian/dx/usr/share/applications

	touch install-stamp

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir -i
	dh_testroot -i
	dh_installdocs -pdx-doc
	dh_installchangelogs -pdx-doc ChangeLog
	dh_installexamples -pdx-doc
	dh_installdirs -i
	dh_lintian -i
	dh_compress -i -Xhtml -Xhelp
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install
#	dh_testversion
	dh_testdir -a
	dh_testroot -a
	dh_installdocs -pdx -plibdx4
	dh_installexamples -pdx
	dh_installmenu -pdx
	dh_installman -pdx
	dh_installchangelogs -pdx -plibdx4 ChangeLog
	dh_lintian -a
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	dh_makeshlibs -a
	dh_shlibdeps -a -L libdx4 -l debian/libdx4/usr/lib
	dh_installdeb -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

source diff:                                                                  
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary clean-me-first
