#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#export DH_VERBOSE = 1

# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed


# main packaging script based on dh7 syntax

DH_BUILDDIR = obj-$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DH_INSTALLDIR = debian/pond
GOFLAGS = -tags 'nogtk'
# have to disable GTK because of https://github.com/agl/pond/issues/143

POND_BIN_RENAME = client server editstate

export DH_GOPKG := github.com/agl/pond
export DH_GOPKG_SUBDIRS := $(shell find . \
  -path "./$(DH_BUILDDIR)" -prune -o \
  -path './.*' -prune -o \
  -type f -a -name '*_test.go' -print | \
  xargs -n1 dirname | sort -u | sed -e 's,^\./,,g' | \
  grep -v bn256cgo)
# https://cryptojedi.org/crypto/#dclxvi not yet in Debian, so disable bn256cgo
export DH_GOPKG_TESTDATA := client editstate

MKMAN = H2M_VERSION=$(DEB_VERSION_UPSTREAM) GOPATH=$(DH_BUILDDIR) debian/mk-manpage

%:
	dh $@ --buildsystem=golang --with=golang

override_dh_auto_build:
	cd $(DH_BUILDDIR) && GOPATH=$$PWD go install $(GOFLAGS) -v $(DH_GOPKG_SUBDIRS:%=$(DH_GOPKG)/%)
	# docs
	jekyll build -s doc -d html
	for i in $(POND_BIN_RENAME); do ln -s $$i $(DH_BUILDDIR)/bin/pond-$$i; done
	rm -f debian/manpages
	$(MKMAN) pond-client "run a pond client"
	$(MKMAN) pond-editstate "edit a pond state file"
	$(MKMAN) pond-server "run a pond server"
	for i in $(POND_BIN_RENAME); do rm $(DH_BUILDDIR)/bin/pond-$$i; done

override_dh_auto_test:
	cp -R --parents -t $(DH_BUILDDIR)/src/$(DH_GOPKG) $(DH_GOPKG_TESTDATA:%=%/testdata)
	cd $(DH_BUILDDIR) && GOPATH=$$PWD go test $(GOFLAGS) -v $(DH_GOPKG_SUBDIRS:%=$(DH_GOPKG)/%)

override_dh_auto_install:
	dh_auto_install
	rm -rf $(DH_INSTALLDIR)/usr/share/gocode
	for i in $(POND_BIN_RENAME); do mv $(DH_INSTALLDIR)/usr/bin/$$i $(DH_INSTALLDIR)/usr/bin/pond-$$i; done

override_dh_auto_clean:
	dh_auto_clean
	rm -rf html
	rm -f debian/*.1 debian/manpages
