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

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

ifndef UPVER
UPVER := $(shell dpkg-parsechangelog | grep ^Version | cut -d' ' -f2 | cut -d- -f1 | cut -d+ -f1)
endif

TARNAME := mapnik_$(UPVER)+ds1.orig.tar

# scons flags
# Disable parallel build - it exhausts memory on s390, mipsel, mips
SCONS_FLAGS := -j1
# -O2
SCONS_FLAGS += OPTIMIZATION=2
SCONS_FLAGS += INPUT_PLUGINS=csv,gdal,geojson,ogr,osm,postgis,python,raster,rasterlite,shape,sqlite
SCONS_FLAGS += PROJ_INCLUDES=/usr/include PROJ_LIBS=/usr/lib
SCONS_FLAGS += SYSTEM_FONTS=/usr/share/fonts
SCONS_FLAGS += XMLPARSER=libxml2
SCONS_FLAGS += DEMO=False
SCONS_FLAGS += CPP_TESTS=False
SCONS_FLAGS += PREFIX=/usr LIB_DIR_NAME=/mapnik/2.2
SCONS_FLAGS += CUSTOM_CXXFLAGS="$(shell dpkg-buildflags --get CXXFLAGS)"
SCONS_FLAGS += CUSTOM_CFLAGS="$(shell dpkg-buildflags --get CFLAGS)"
SCONS_FLAGS += CUSTOM_LDFLAGS="$(shell dpkg-buildflags --get LDFLAGS)"
SCONS_FLAGS += CUSTOM_DEFINES="$(shell dpkg-buildflags --get CPPFLAGS)"

override_dh_auto_configure:
	scons $(SCONS_FLAGS) \
		CCFLAGS="$(CFLAGS)" \
		configure

override_dh_auto_build:
	set -e; \
	for ver in $(shell pyversions -r -v); do \
		scons $(SCONS_FLAGS) \
			BOOST_PYTHON_LIB=boost_python-py$$(echo $$ver | sed 's@\.@@') \
			PYTHON=/usr/bin/python$$ver ; \
	done

override_dh_prep:
	dh_prep -Xdebian/tmp

override_dh_auto_install:
	for ver in $(shell pyversions -r -v); do \
		scons $(SCONS_FLAGS) \
			CCFLAGS="$(CFLAGS)" \
			BOOST_PYTHON_LIB=boost_python-py$$(echo $$ver | sed 's@\.@@') \
			PYTHON=/usr/bin/python$$ver \
			DESTDIR=$(CURDIR)/debian/tmp \
			install ; \
	done

override_dh_install-arch:
	dh_install
	mv $(CURDIR)/debian/mapnik-utils/usr/bin/upgrade_map_xml.py \
		$(CURDIR)/debian/mapnik-utils/usr/bin/upgrade-map-xml

override_dh_install-indep:
	# build Python API documentation
	# and trick epydoc into loading the shlib too
	LD_LIBRARY_PATH=$(CURDIR)/debian/libmapnik2.2/usr/lib/ epydoc --no-private \
		--no-frames \
		--no-sourcecode \
		--name mapnik \
		--url http://mapnik.org \
		--css $(CURDIR)/utils/epydoc_config/mapnik_epydoc.css \
		$(CURDIR)/bindings/python/mapnik \
		-o $(CURDIR)/debian/mapnik-doc/usr/share/doc/mapnik-doc/python

override_dh_auto_clean:
	scons --clean $(SCONS_FLAGS)
	find -name '*.pyc' -exec rm -f {} \;
	find -name '.sconsign*' -exec rm -f {} \;
	find -name '*.o' -exec rm -f {} \;
	find -name '*.a' -exec rm -f {} \;
	find -name '*.os' -exec rm -f {} \;
	rm -rf .sconf_temp config.log bindings/python/mapnik/paths.py \
		utils/shapeindex/shapeindex config.py config.cache \
		docs/api_docs/python/* src/libmapnik*.so* workspace/All.files \
		tests/cpp_tests/agg_blend_src_over_test-bin \
		plugins/input/*.input bindings/python/mapnik/_mapnik.so
	dh_clean

override_dh_auto_test:
	# currently nothing

%:
	dh $@ --with python2

get-orig-source:
	mkdir -p ../tarballs
	uscan \
		--verbose \
		--force-download \
		--download-version $(UPVER) \
		--rename \
		--destdir ../tarballs
	tar xvf ../tarballs/mapnik_$(UPVER).orig.tar.gz
	@echo Removing third-party sources from orig.tar.gz
	@rm -r mapnik-$(UPVER)/fonts/dejavu*
	@rm mapnik-$(UPVER)/fonts/unifont*
	@rm -r mapnik-$(UPVER)/scons/
	@rm mapnik-$(UPVER)/tests/data/fonts/DejaVuSansMono-BoldOblique.ttf
	@rm mapnik-$(UPVER)/tests/data/fonts/XB\ Zar.ttf
	@rm mapnik-$(UPVER)/tests/data/fonts/LICENCE.txt
	@rm mapnik-$(UPVER)/tests/data/csv/10m-land.csv
	@rm mapnik-$(UPVER)/tests/data/raster/*
	@rm mapnik-$(UPVER)/tests/data/shp/ne_110m*
	@rm mapnik-$(UPVER)/tests/data/shp/world_merc*
	@rm mapnik-$(UPVER)/tests/data/shp/new_zealand/ne_50m*
	tar cf $(TARNAME) mapnik-$(UPVER)/
	rm -rf mapnik-$(UPVER)/
	gzip -9 $(TARNAME)
	mv $(TARNAME).gz ../tarballs/
