#!/usr/bin/make -f

#export DH_VERBOSE = 1

# the code does not compile with -std=gnu23 which is gcc-15 default
export DEB_CFLAGS_MAINT_APPEND = -std=gnu17

ifndef PERL
PERL = /usr/bin/perl
endif

%:
	dh $@

override_dh_autoreconf:
	-dh_autoreconf

override_dh_auto_configure:
	dh_auto_configure -- --with-pgplot-link="-lpgplot"

override_dh_auto_build: build-ifeffit build-perl build-docs

build-ifeffit:
	dh_testdir
	$(MAKE)
	touch $@

# Configure and build Perl extensions.  This must be done
# AFTER the main package is built
build-perl: build-ifeffit
	dh_testdir
# Here is the kludge to avoid the rpath lintian warning
#	cp debian/Makefile.PL wrappers/perl/
	cd wrappers/perl && \
	 $(PERL) Makefile.PL INSTALLDIRS=vendor && \
	 $(MAKE)
	touch $@

build-docs:
	dh_testdir
	mkdir tmp_docs
	cp -a examples tmp_docs
	find tmp_docs/examples -executable -type f -exec chmod 0644 {} \;
	rm -rf tmp_docs/examples/scripting
# Generate PDF documentation from postscript files.  Note that the
# postcript documentation needs to be refreshed occasionally using the
# 'get-docs' rule.  This avoids the need for the buildds to download them
# at build time and risk failing if they are not available.
	mkdir tmp_docs/pdf
	ps2pdf debian/feffit.ps tmp_docs/pdf/feffit.pdf ; \
	ps2pdf debian/autobk.ps tmp_docs/pdf/autobk.pdf ; \
	ps2pdf debian/diffkk.ps tmp_docs/pdf/diffkk.pdf ; \
	ps2pdf debian/feff6.ps tmp_docs/pdf/feff6.pdf ; \
	cd doc/Tutorial && make pdf && \
	 mv tutor.pdf ../../tmp_docs/pdf/ifeffit_tutorial.pdf
	cd doc/RefMan && make pdf && \
	 mv refman.pdf ../../tmp_docs/pdf/ifeffit_reference.pdf
	touch $@

override_dh_auto_clean:
	dh_auto_clean
	rm -f build-ifeffit build-perl build-docs

	[ ! -f Makefile ] || $(MAKE) distclean

# Clean up any config leftovers in original tarball which have been
# regenerated during build so they don't appear in the diff.gz
	rm -f wrappers/perl/Makefile.PL
	rm -f wrappers/perl/Makefile
	rm -f wrappers/perl/pm_to_blib
	rm -f wrappers/python/site_install.py
	rm -f wrappers/tcl/TclSetup.in
	rm -f readline/config.log
	rm -f readline/config.status
	rm -f readline/stamp-h
	rm -f readline/config.h
	rm -f readline/Makefile
	rm -f readline/doc/Makefile
	rm -f readline/shlib/Makefile
	rm -f readline/examples/Makefile
	rm -f configure.in.save
# Restore saved configuration files if they exist to minimize diffs
ifneq "$(wildcard config.sub.save)" ""
	mv config.sub.save config.sub
endif
ifneq "$(wildcard config.guess.save)" ""
	mv config.guess.save config.guess
endif

# Clean up PDF downloaded documents
	rm -rf tmp_docs
	cd doc/Tutorial && make clean && rm -f *.bak
	cd doc/RefMan && make clean && rm -f *.bak

# Clean up Python extensions
	rm -rf wrappers/python/*.pyc
	rm -rf wrappers/python/build
	rm -rf build

# Clean up Perl extensions
	rm -rf wrappers/perl/blib
	rm -rf wrappers/perl/pm-to-blib
	rm -rf wrappers/perl/*.o
	rm -rf wrappers/perl/*.bs
	rm -rf wrappers/perl/Makefile

	dh_clean

override_dh_auto_install: install-ifeffit install-perl

install-ifeffit:
	$(MAKE) install prefix=$(CURDIR)/debian/ifeffit/usr

# Install Perl extensions into debian/libifeffit-perl.
install-perl:
# Strip RPATH from Ifeffit.so before installing
	chrpath -d wrappers/perl/blib/arch/auto/Ifeffit/Ifeffit.so
# old syntax, should be replaced as below...
#	cd wrappers/perl && $(MAKE) install \
#	 PREFIX=$(CURDIR)/debian/libifeffit-perl/usr INSTALLDIRS=vendor
	cd wrappers/perl && $(MAKE) install \
	 DESTDIR=$(CURDIR)/debian/libifeffit-perl/ INSTALLDIRS=vendor
# The Makefile in wrappers/perl seems to be malformed and does not
# install Ifeffit.pm in /usr/share/perl5.  We shall do it by hand ...
	dh_install --package=libifeffit-perl wrappers/perl/Ifeffit.pm \
	 usr/share/perl5/
# In fact, sometimes it puts them in /usr/lib/perl5 along with
# ifeffit_shell.pl and test_a.pl which we don't want for the pacakge.
# So get rid of 'em!
	rm -f $(CURDIR)/debian/libifeffit-perl/usr/lib/perl5/Ifeffit.pm
	rm -f $(CURDIR)/debian/libifeffit-perl/usr/lib/perl5/ifeffit_shell.pl
	rm -f $(CURDIR)/debian/libifeffit-perl/usr/lib/perl5/test_a.pl
# Ensure sane minimum permissions
	chmod -R u+rwX $(CURDIR)/debian/libifeffit-perl/

override_dh_compress:
	dh_compress --exclude=.pdf --exclude=.iff --exclude=.dat \
	   --exclude=.chi --exclude=.xmu --exclude=.inp --exclude=.out \
	   --exclude=.sav --exclude=.py --exclude=LIST --exclude=AA -i
