#!/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

# Enable hardening build flags
export DEB_BUILD_MAINT_OPTIONS=hardening=+all

DEB_HOST_ARCH      ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
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)

include /usr/share/dpkg/pkg-info.mk

UPSTREAM_VERSION = $(shell echo $(DEB_VERSION_UPSTREAM) | sed -e 's/\+.*//')

BUILD_DATE=$(shell LC_ALL=C date -u "+%d %B %Y" -d "@$(SOURCE_DATE_EPOCH)")

CMAKE_OPTS:= \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_VERBOSE_MAKEFILE=1 \
		-DWITH_PIXMAN=1 \
		-DWITH_SQLITE=1 \
		-DWITH_BERKELEY_DB=0 \
		-DWITH_TIFF=1 \
		-DWITH_TIFF_WRITE_SUPPORT=0 \
		-DWITH_GEOTIFF=0 \
		-DWITH_MAPSERVER=0 \
		-DWITH_PCRE=1 \
		-DWITH_APACHE=1 \
		-DWITH_VERSION_STRING=1 \
		-DWITH_CGI=1 \
		-DWITH_FCGI=1 \
		-DWITH_GEOS=1 \
		-DWITH_OGR=1

# Disable memcache support on architectures where it's not supported
ifneq (,$(findstring $(DEB_HOST_ARCH),"armel armhf i386 mips mipsel powerpc hppa hurd-i386"))
	CMAKE_OPTS += -DWITH_MEMCACHE=0
else
	CMAKE_OPTS += -DWITH_MEMCACHE=1
endif

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

override_dh_clean:
	dh_clean

	-$(RM) -rf obj-*/
	-$(RM) nginx/config
	-$(RM) debian/*.1

override_dh_auto_configure:
	dh_auto_configure -- $(CMAKE_OPTS)

override_dh_auto_build:
	# Create man page from DocBook XML
	-docbook2x-man --string-param header-3="$(BUILD_DATE)" $(CURDIR)/debian/mapcache_seed.1.xml
	-mv mapcache_seed.1 $(CURDIR)/debian/

	dh_auto_build

override_dh_auto_install:
	dh_auto_install

	-mkdir -p $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/
	-mv -v $(CURDIR)/debian/tmp/usr/lib/libmapcache*.so* $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/

	mkdir -p $(CURDIR)/debian/tmp/usr/lib/cgi-bin/
	mv $(CURDIR)/debian/tmp/usr/bin/mapcache.fcgi $(CURDIR)/debian/tmp/usr/lib/cgi-bin/mapcache

	# Strip RPATH
	-find $(CURDIR)/debian/tmp/usr/bin -type f -exec chrpath --delete {} \;
	-find $(CURDIR)/debian/tmp/usr/lib -name "*.so*" -type f -exec chrpath --delete {} \;
	-find $(CURDIR)/obj-*/apache -name "*.so*" -type f -exec chrpath --delete {} \;

	# libmapcache-dev headers
	-mkdir -p $(CURDIR)/debian/tmp/usr/include/mapcache/
	install -m 644 $(CURDIR)/include/*.h $(CURDIR)/debian/tmp/usr/include/mapcache/
	install -m 644 $(CURDIR)/obj-*/*/*.h $(CURDIR)/debian/tmp/usr/include/mapcache/

	# Install apache module
	install -d $(CURDIR)/debian/tmp/etc/apache2/mods-available
	install -m 644 $(CURDIR)/debian/mapcache.load $(CURDIR)/debian/tmp/etc/apache2/mods-available

override_dh_install:
	dh_install --autodest --list-missing

override_dh_makeshlibs:
	dh_makeshlibs -- -c0 -v$(UPSTREAM_VERSION)

