#!/usr/bin/make -f

#export DH_VERBOSE=1
export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
export MONO_SHARED_DIR=$(CURDIR)

CFLAGS ?= -O2 -Wall -g
LDFLAGS += -Wl,-z,defs -Wl,-O1 -Wl,--as-needed

API_VERSION = 2.26.0

MAKEFILE = $(firstword $(MAKEFILE_LIST))
DEBIAN_DIR = $(dir $(MAKEFILE))
SOURCE_DIR = $(DEBIAN_DIR)/..

DEB_VERSION = $(shell dpkg-parsechangelog -l$(DEBIAN_DIR)/changelog | grep ^Version | cut -d" " -f2)
DEB_SOURCE_NAME = $(shell dpkg-parsechangelog -l$(DEBIAN_DIR)/changelog | grep ^Source | cut -d" " -f2)
VERSION = $(shell echo $(DEB_VERSION) | cut -d"-" -f1 | sed 's/+dfsg.*//')
NEXT_UPVERSION = $(shell perl -e '$$_=pop; s/(\d+)$$/$$1+1/e; print' $(VERSION))


config: config-stamp
config-stamp:
	dh_testdir
	dh_autoreconf --as-needed
	CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure \
		--prefix=/usr \
		CSC=/usr/bin/mono-csc \
		MONO_CAIRO_LIBS=-r:Mono.Cairo
	touch $@

build-indep: build-indep-stamp
build-indep-stamp: config-stamp
	dh_testdir
	$(MAKE)
	touch $@

build-arch: build-arch-stamp
build-arch-stamp: config-stamp
	dh_testdir
	$(MAKE)
	touch $@

clean:
	dh_testdir
	dh_testroot

	[ ! -f Makefile ] || $(MAKE) distclean RUNTIME=/usr/bin/cli

	rm -rf $(MONO_SHARED_DIR)/.wapi

	dh_autoreconf_clean
	dh_clean

install:
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp RUNTIME=/usr/bin/cli

binary-indep: build-indep install
	dh_testdir
	dh_testroot
	dh_installdirs -i
	dh_movefiles -i
	dh_link -i
	# HACK: we must install arch dep and indep here!
	# dh_clideps needs the clilibs files of all packages
	dh_install
	dh_installchangelogs -i ChangeLog
	dh_installdocs -i
	dh_installcligac -i
	dh_clistrip -i
	dh_compress -i
	dh_fixperms -i
	dh_clifixperms -i
	dh_installdeb -i
	# HACK: we must generate clilibs of arch:all and arch:any here!
	# else dh_clideps can't pick up inner source package dependencies
	dh_makeclilibs -m $(API_VERSION)
	dh_clideps -i -d
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: build-arch install
	dh_testdir
	dh_testroot
	dh_movefiles -a
	dh_link -a
	# HACK: we must install arch dep and indep here!
	# dh_clideps needs the clilibs files of all packages
	dh_install
	dh_installchangelogs -a ChangeLog
	dh_installdocs -a
	dh_installcligac -a
	dh_strip -a
	dh_clistrip -a
	dh_compress -a
	dh_fixperms -a
	dh_clifixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	# HACK: we must generate clilibs of arch:all and arch:any here!
	# else dh_clideps can't pick up inner source package dependencies
	dh_makeclilibs -m $(API_VERSION)
	dh_clideps -a -d
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

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

get-orig-source:
	mkdir -p ../tarballs
	uscan \
		--package $(DEB_SOURCE_NAME) \
		--watchfile $(DEBIAN_DIR)/watch \
		--upstream-version $(VERSION) \
		--download-version $(VERSION) \
		--destdir ../tarballs \
		--force-download \
		--rename

.PHONY: config build-indep build-arch clean binary-indep binary-arch build binary get-orig-source
