#!/usr/bin/make -f
# Made with the aid of debmake, by Christoph Lameter,
# based on the sample debian/rules file for GNU hello by Ian Jackson.

# 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

# Enable hardening build flags, except:
#  pie: causes build failure
export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie

DEB_HOST_MULTIARCH?=$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
CFLAGS:=$(shell dpkg-buildflags --get CFLAGS)
LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS)

CFLAGS+=$(CPPFLAGS)
CFLAGS+=$(LDFLAGS)

RUBYVERSIONS=$(shell dh_ruby --print-supported)
PHP5API=$(shell php-config5 --phpapi)
MANPAGES:=$(wildcard debian/man/*.*.xml)

MS_VERSION=$(shell dpkg-parsechangelog | sed -ne 's/^Version: \(.*\)-.*/\1/p')

CMAKE_OPTS:= \
		-DCMAKE_EXE_LINKER_FLAGS="$(LDFLAGS)" \
		-DCMAKE_MODULE_LINKER_FLAGS="$(LDFLAGS)" \
		-DCMAKE_SHARED_LINKER_FLAGS="$(LDFLAGS)" \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_VERBOSE_MAKEFILE=1 \
		-DWITH_PROJ=1 \
		-DWITH_KML=1 \
		-DWITH_SOS=1 \
		-DWITH_WMS=1 \
		-DWITH_GD=1 \
		-DWITH_FRIBIDI=1 \
		-DWITH_ICONV=1 \
		-DWITH_CAIRO=1 \
		-DWITH_SVGCAIRO=0 \
		-DWITH_RSVG=1 \
		-DWITH_MYSQL=0 \
		-DWITH_FCGI=1 \
		-DWITH_GEOS=1 \
		-DWITH_POSTGIS=1 \
		-DWITH_GDAL=1 \
		-DWITH_OGR=1 \
		-DWITH_CURL=1 \
		-DWITH_CLIENT_WMS=1 \
		-DWITH_CLIENT_WFS=1 \
		-DWITH_WFS=1 \
		-DWITH_WCS=1 \
		-DWITH_LIBXML2=1 \
		-DWITH_THREAD_SAFETY=1 \
		-DWITH_GIF=1 \
		-DWITH_ORACLESPATIAL=0 \
		-DWITH_ORACLE_PLUGIN=0 \
		-DWITH_MSSQL2008=0 \
		-DWITH_SDE_PLUGIN=0 \
		-DWITH_SDE=0 \
		-DWITH_EXEMPI=0 \
		-DWITH_XMLMAPFILE=0

%:
	dh $@ --with python2,pkgkde_symbolshelper \
	      --parallel \
	      --buildsystem cmake

override_dh_auto_clean:
	dh_clean

	-$(RM) -f $(CURDIR)/debian/man/*.1
	-$(RM) -rf obj-*/
	-$(RM) -rf build-ruby*/ debian/tmp-ruby*/

override_dh_auto_configure:
	dh_auto_configure -- $(CMAKE_OPTS) \
			     -DWITH_PYTHON=1 \
			     -DWITH_PHP=1 \
			     -DWITH_PERL=1 \
			     -DWITH_RUBY=0 \
			     -DWITH_JAVA=0 \
			     -DWITH_CSHARP=0

	for RUBY in $(RUBYVERSIONS); do \
		dh_auto_configure --builddirectory=build-$$RUBY -- $(CMAKE_OPTS) \
								   -DWITH_PYTHON=0 \
								   -DWITH_PHP=0 \
								   -DWITH_PERL=0 \
								   -DWITH_RUBY=1 \
								   -DWITH_JAVA=0 \
								   -DWITH_CSHARP=0 \
								   -DRUBY_EXECUTABLE=/usr/bin/$$RUBY \
		; \
	done
	

override_dh_auto_build:
	# Create man pages from DocBook XML
	for x in $(MANPAGES) ; do \
	  docbook2x-man $$x ; \
	  mv `basename $$x | sed 's/.xml$$//'` `dirname $$x` ; \
	done

	dh_auto_build

	for RUBY in $(RUBYVERSIONS); do \
		dh_auto_build --builddirectory=build-$$RUBY ; \
	done

override_dh_auto_test:
	# msautotest submodule is not used

override_dh_auto_install:
	dh_auto_install

	for RUBY in $(RUBYVERSIONS); do \
		dh_auto_install --builddirectory=build-$$RUBY --destdir=debian/tmp-$$RUBY ; \
		mkdir -p debian/tmp/`$$RUBY -r rbconfig -e "print RbConfig::CONFIG['vendorarchdir']"` ; \
		mv -v debian/tmp-$$RUBY`$$RUBY -r rbconfig -e "print RbConfig::CONFIG['vendorarchdir']"`/mapscript.so \
		      debian/tmp`$$RUBY -r rbconfig -e "print RbConfig::CONFIG['vendorarchdir']"`/ ; \
	done

	-mkdir -p $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/
	-mv -v $(CURDIR)/debian/tmp/usr/lib/libmapserver*.so* $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/
	-sed -i "s/lib\/libmapserver/lib\/$(DEB_HOST_MULTIARCH)\/libmapserver/g" $(CURDIR)/debian/tmp/usr/share/*/cmake/*.cmake

	# removing embedded rpath in binaries
	-find $(CURDIR)/debian/tmp/usr/bin -type f -exec chrpath --delete {} \;

	# removing embedded rpath in libraries
	-find $(CURDIR)/debian/tmp/usr/lib -name "*.so*" -type f -exec chrpath --delete {} \;

	# CGI mapserver
	-mkdir -p debian/tmp/usr/lib/cgi-bin
	install -m755 debian/tmp/usr/bin/mapserv debian/tmp/usr/lib/cgi-bin/mapserv

	# PHP mapscript
	echo 'misc:Depends=phpapi-'$(PHP5API) >> debian/php5-mapscript.substvars

	-mkdir -p debian/tmp/etc/php5/mods-available/
	install -m644 debian/mapscript.ini debian/tmp/etc/php5/mods-available/

override_dh_installchangelogs:
	dh_installchangelogs HISTORY.TXT

override_dh_installexamples:
	dh_installexamples

	chmod a-x $(CURDIR)/debian/php*-mapscript/usr/share/doc/php*-mapscript/examples/*.phtml

override_dh_install:
	dh_install --autodest --list-missing

override_dh_compress:
	dh_compress -X.xml -X.xsd -X.xsl

override_dh_makeshlibs:
	dh_makeshlibs -Xphp_mapscript -- -c0 -v$(MS_VERSION)

override_dh_python2:
	dh_python2 -ppython-mapscript

override_dh_perl:
	dh_perl -plibmapscript-perl

