#!/usr/bin/make -f

ifeq (,$(findstring terse,${DEB_BUILD_OPTIONS}))
export DH_VERBOSE=1
export V=1
export VERBOSE=1
endif

LC_ALL:=C
export LC_ALL

shellescape='$(subst ','\'',$(1))'
shellexport=$(1)=$(call shellescape,${$(1)})

# Hallo Helmut, yes, I know this causes FTCBFS, will deal with that later
DEB_HOST_GNU_TYPE?=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)

EXTRA_CPPFLAGS=	-DFREETYPEFONTDIR=\"/usr/share/fonts/truetype\"
EXTRA_CPPFLAGS+=-D_DEFAULT_SOURCE	# work around imake weirdness
EXTRA_CPPFLAGS+=-D_GNU_SOURCE		# for asprintf(3)
EXTRA_CFLAGS+=	-Wall -Wformat
#EXTRA_CFLAGS+=	-Wextra
EXTRA_LDFLAGS=	-Wl,--as-needed
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
EXTRA_CFLAGS+=	-Og -g3
endif

# cut my losses, for now
EXTRA_CFLAGS+=	-Wno-unused-variable
EXTRA_CFLAGS+=	-Wno-unused-but-set-variable
EXTRA_CFLAGS+=	-Wno-pointer-sign
EXTRA_CFLAGS+=	-Wno-unused-function
EXTRA_CFLAGS+=	-Wno-unused-result

DEB_CPPFLAGS_MAINT_APPEND=${EXTRA_CPPFLAGS}
DEB_CFLAGS_MAINT_APPEND=${EXTRA_CFLAGS}
DEB_CXXFLAGS_MAINT_APPEND=${EXTRA_CFLAGS}
DEB_LDFLAGS_MAINT_APPEND=${EXTRA_LDFLAGS}
DEB_BUILD_MAINT_OPTIONS=hardening=+all
include /usr/share/dpkg/buildflags.mk

CONFIGURE_ARGS+=	--prefix=/usr
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
CONFIGURE_ARGS+=	--enable-debug
endif
CONFIGURE_ARGS+=	--enable-locale
CONFIGURE_ARGS+=	--enable-freetype
CONFIGURE_ARGS+=	--enable-freetype-charset16
CONFIGURE_ARGS+=	--enable-xft2
CONFIGURE_ARGS+=	--disable-vflib
CONFIGURE_ARGS+=	--enable-gif
CONFIGURE_ARGS+=	--build=${DEB_HOST_GNU_TYPE}

CONFIGURE_ENV+=		ac_cv_path_mgp_cv_path_gunzip=/bin/gunzip
CONFIGURE_ENV+=		ac_cv_path_mgp_cv_path_gzip=/bin/gzip

MAKE_ARGS+=		LIBDIR=/etc
MAKE_ARGS+=		INSTPGMFLAGS= INSTALLFLAGS=-p
# work around imake weirdness
MAKE_ARGS+=		EXTRA_DEFINES=$(call shellescape,${CPPFLAGS})
MAKE_ARGS+=		CDEBUGFLAGS=$(call shellescape,${CFLAGS})
MAKE_ARGS+=		CXXDEBUGFLAGS=$(call shellescape,${CXXFLAGS})
MAKE_ARGS+=		LOCAL_LDFLAGS=$(call shellescape,${LDFLAGS})
MAKE_ARGS+=		PROJECTMANSUFFIX=

build-arch: build-stamp
build-stamp:
	dh_testdir
	ln -sf /usr/share/misc/config.sub .
	ln -sf /usr/share/misc/config.guess .
	exec env ${CONFIGURE_ENV} \
	    $(foreach i,CC CFLAGS CXXFLAGS CPPFLAGS LDFLAGS,$(call shellexport,$i)) \
	    sh configure ${CONFIGURE_ARGS}
	xmkmf
	make Makefiles
	make ${MAKE_ARGS}
	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	-rm -f build-stamp install-stamp
	[ ! -f Makefile ] || make distclean
	-rm -f `find . -name "*~"`
	-rm -rf debian/mgp debian/files* core debian/substvars
	-rm -f Makefile Imakefile *._man
	rm -f config.guess config.sub
	dh_clean

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	make ${MAKE_ARGS} \
	    DESTDIR=$(CURDIR)/debian/mgp prefix=$(CURDIR)/debian/mgp/usr \
	    install install.man
	# contrib
	install -d $(CURDIR)/debian/mgp/usr/share/doc/mgp/contrib/mgp-el
	install -m 755 contrib/eqn2eps.sh \
		contrib/mgp2html.pl contrib/mgp2latex.pl \
		contrib/tex2eps.sh \
		$(CURDIR)/debian/mgp/usr/bin/
	install -m 644 contrib/mgp-el/README \
		$(CURDIR)/debian/mgp/usr/share/doc/mgp/contrib/mgp-el
	install -m 644 contrib/mgp-el/mgp.sty \
		$(CURDIR)/debian/mgp/usr/share/doc/mgp/contrib/mgp-el
	install -m 644 contrib/mgp-el/sample.tex \
		$(CURDIR)/debian/mgp/usr/share/doc/mgp/contrib/mgp-el
	install -m 644 contrib/mgp-mode.el contrib/mgp-el/mgp.el \
		$(CURDIR)/debian/mgp/usr/share/emacs/site-lisp/mgp
	-rm $(CURDIR)/debian/mgp/etc/mgp/*
	cp debian/default.mgp $(CURDIR)/debian/mgp/etc/mgp/default.mgp

	#Rename shell scripts to remove .sh extension.
	mv $(CURDIR)/debian/mgp/usr/bin/eqn2eps.sh \
		$(CURDIR)/debian/mgp/usr/bin/eqn2eps
	mv $(CURDIR)/debian/mgp/usr/bin/tex2eps.sh \
		$(CURDIR)/debian/mgp/usr/bin/tex2eps
	mv $(CURDIR)/debian/mgp/usr/bin/mgp2html.pl \
		$(CURDIR)/debian/mgp/usr/bin/mgp2html
	mv $(CURDIR)/debian/mgp/usr/bin/mgp2latex.pl \
		$(CURDIR)/debian/mgp/usr/bin/mgp2latex

	touch install-stamp

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

# Build architecture-dependent files here.
binary-arch: build-arch install
#	dh_testversion
	dh_testdir
	dh_testroot
	dh_installdocs COPYRIGHT COPYRIGHT.jp FAQ \
		README README.fonts README.fonts.jp README.lang \
		SYNTAX TODO.jp USAGE USAGE.jp
	dh_installexamples `find sample -type f ! -name '*akefile*' ! -name .cvsignore -print` debian/mgp-print6
	dh_installmenu
	dh_installmime
	dh_installcron
#	dh_installman
	dh_installinit
	dh_installemacsen
	dh_installchangelogs RELNOTES
#	dh_movefiles
	dh_strip
	dh_compress --exclude=examples
	dh_fixperms
#	dh_suidregister
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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