#!/usr/bin/make -f
# -*- makefile -*-

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

# This has to be exported to make some magic below work.
export DH_OPTIONS

# Standard compiler flags
CFLAGS += -Wall

PYVERS = $(shell pyversions -r -v)


binary: binary-arch binary-indep
build: build-arch build-indep
install: install-arch install-indep


configure: configure-stamp
configure-stamp:
	dh_testdir
	dh_autotools-dev_updateconfig
	dh_auto_configure


build-arch: build-arch-stamp
build-arch-stamp: configure-stamp
	# Perform regular build process
	dh_auto_build -a
	
	# Build python extensions in python/
	cd python; \
	for py in $(PYVERS); do \
		python$$py setup.py build; \
	done


build-indep: build-indep-stamp
build-indep-stamp:
	dh_testdir
	
	# Build documentation
	mkdir -p doc/html doc/proj
	naturaldocs -i src/include -o HTML doc/html -p doc/proj


install-arch:
	dh_testdir
	dh_testroot
	dh_prep -a
	dh_installdirs -a
	dh_auto_install -a
	
	# Clear .la dependency_libs as required by Policy 10.2
	sed -i -e "s/dependency_libs='.*'/dependency_libs=''/" \
		debian/tmp/usr/lib/*.la
	
	# Install python extensions from python/, so dh_pysupport can pick them up
	cd python; \
	for py in $(PYVERS); do \
		python$$py setup.py install -f --root $(CURDIR)/debian/python-pyfann \
			--install-layout=deb; \
	done
	
	dh_install -a


install-indep:
	dh_testdir
	dh_testroot
	dh_prep -i
	dh_installdirs -i
	dh_install -i


binary-arch: build-arch install-arch
	dh_installdocs -a
	dh_installchangelogs -a
	dh_pysupport -a
	
	# Point doc of -dbg packages to their regular counterparts
	rm -rf debian/libfann-dbg/usr/share/doc/libfann-dbg
	rm -rf debian/python-pyfann-dbg/usr/share/doc/python-pyfann-dbg
	dh_link -a
	dh_compress -a
	dh_fixperms -a
	
	# Can't use --dbg-package because we have multiple debug packages
	dh_strip -k -a
	mv debian/libfann2/usr/lib/debug debian/libfann-dbg/usr/lib
	mv debian/python-pyfann/usr/lib/debug debian/python-pyfann-dbg/usr/lib
	cd debian/python-pyfann-dbg/usr/lib/debug/usr/lib && mv pyshared pymodules
	
	dh_makeshlibs -a
	dh_shlibdeps -a
	dh_installdeb -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a


binary-indep: build-indep install-indep
	dh_installdocs -i 
	dh_installchangelogs -i
	dh_installexamples -i
	
	# Copy Python examples to a subdir in examples/
	cp -r python/examples \
		debian/libfann-doc/usr/share/doc/libfann-doc/examples/python
	
	# Modify dataset paths in examples to point to libfann-doc datasets. This
	# was not implemented as a patch to upstream to preserve the ability to
	# run upstream's own tests within the source dir.
	sed -i -r -f debian/example-paths.sed \
		debian/libfann-doc/usr/share/doc/libfann-doc/examples/*.c \
		debian/libfann-doc/usr/share/doc/libfann-doc/examples/python/*.py
	
	# Add Makefile & compile/run instructions for the examples
	cp debian/Makefile.examples \
		debian/libfann-doc/usr/share/doc/libfann-doc/examples/Makefile
	cp debian/README-libfann2-examples \
		debian/libfann-doc/usr/share/doc/libfann-doc/examples/README
	
	# Don't compress example files and datasets; documentation .js
	dh_compress -i -Xexamples -Xjavascript
	
	dh_fixperms -i
	# Remove unnecessary executable bits from training data sets
	chmod 644 debian/libfann-doc/usr/share/doc/libfann-doc/examples/datasets/*
	
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i


clean:
	dh_testdir
	dh_autotools-dev_restoreconfig
	
	# Perform regular clean process
	dh_auto_clean
	dh_clean
	
	# Clean up Python stuff
	rm -rf python/build python/pyfann/*.cxx
	
	# Remove output generated by naturaldocs
	rm -rf doc/proj doc/html
	
	# Finalize
	rm -f configure-stamp build-arch-stamp build-indep-stamp


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