#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
UPSTREAM=$(shell dpkg-parsechangelog |  sed -n 's/^Version: \(.*\)-[^-]*/\1/p')

# hardening flags (CPPFLAGS kludge is for CMake)
export CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
export CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) $(CPPFLAGS)
export CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) $(CPPFLAGS)
export LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS)

# avoid linking ledger binary to extra libs.
LDFLAGS += -Wl,--as-needed

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
else
CROSS= --build $(DEB_BUILD_GNU_TYPE)
endif

BUILDDIR=obj-$(DEB_BUILD_GNU_TYPE)

config-stamp:
	mkdir -p $(BUILDDIR)
	cd $(BUILDDIR) && \
	    cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON \
		-DBUILD_DOCS=1 -DBUILD_WEB_DOCS=1 -DUSE_PYTHON=ON
	touch $@

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

build-indep:
# We have nothing to do by default.

build-arch: build-arch-stamp

build-arch-stamp:  config-stamp
	dh_testdir

	# Add here commands to compile the package.
	$(MAKE) -C $(BUILDDIR) all doc

	touch $@

clean:
	dh_testdir
	dh_testroot

	# Add here commands to clean up after the build process.
	dh_auto_clean

	dh_clean

install-arch: build-arch
	dh_testdir -a
	dh_testroot -a
	dh_prep -a
	dh_installdirs -a

	$(MAKE) -C$(BUILDDIR) DESTDIR=$(CURDIR)/debian/tmp install
	dh_install -a

# Build architecture-independent files here.
binary-indep: build-indep
	dh_testroot -i
	dh_prep -i
	dh_installdirs -i
	dh_install -i
	dh_elpa
	dh_installdocs -i
	dh_installchangelogs -i
	dh_installexamples -i
	dh_installman -i
	dh_installemacsen -i
	dh_strip_nondeterminism -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i


# Build architecture-dependent files here.
binary-arch: build-arch install-arch
	dh_testdir -a
	dh_testroot -a
	dh_installchangelogs -a
	dh_installdocs -a
	dh_installexamples -a
	dh_python2 -a
	dh_installinfo $(BUILDDIR)/doc/ledger3.info*
	dh_installman -a
	dh_strip --dbg-package=ledger-dbg
	dh_strip_nondeterminism -a
	dh_compress -a -X.pdf
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a -l$(CURDIR)/debian/ledger/usr/lib/ledger
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

get-orig-source:
	bash debian/get-orig-source.sh ${UPSTREAM} upstream/${UPSTREAM}

dch-snapshot:
	dch -v "${UPSTREAM_VERSION}-1" "Updated git snapshot for experimental."

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