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

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
export GOPATH:=$(CURDIR)
export PATH:=$(GOPATH)/bin:$(PATH)

PKGDIR:=debian/juju-core
VERSION:=$(shell sed -n 's/^const version = "\(.*\)"/\1/p' $(GOPATH)/src/github.com/juju/juju/version/version.go)
ifeq ($(VERSION),)
$(error Invalid version constant in version.go)
endif

ifeq ($(shell lsb_release -cs | sed -r 's/saucy|precise/old/'),old)
	DB_DEP = -Vdist:Depends="mongodb-server (>= 2.4.6)"
else
	DB_DEP = -Vdist:Depends="juju-mongodb (>= 2.4.6)"
endif

%:
	dh $@

debian/juju-core.postinst: debian/juju-core.postinst.in
	sed -e "s/__NEW_VERSION__/$(VERSION)/g" $< > $@

debian/juju-core.prerm: debian/juju-core.prerm.in
	sed -e "s/__NEW_VERSION__/$(VERSION)/g" $< > $@

debian/juju-core.lintian-overrides: debian/juju-core.lintian-overrides.in
	sed -e "s/__NEW_VERSION__/$(VERSION)/g" $< > $@

COMMON_FLAGS:= -x -v -work
golang_archs:= amd64 i386 armhf
ifeq (,$(filter $(DEB_HOST_ARCH), $(golang_archs)))
# NOTE(james-page) statically link libgo for the jujud binary for gccgo
# this allows the binary to be re-cut for upstream tool distribution and
# mimics the behaviour of the golang gc compiler.
JUJUD_FLAGS:= -gccgoflags -static-libgo
endif

override_dh_auto_install: debian/juju-core.postinst debian/juju-core.prerm debian/juju-core.lintian-overrides
	go install $(COMMON_FLAGS) github.com/juju/juju/cmd/juju
	go install $(COMMON_FLAGS) github.com/juju/juju/cmd/plugins/juju-metadata
	go install $(COMMON_FLAGS) github.com/juju/juju/cmd/plugins/juju-restore
	go install $(COMMON_FLAGS) $(JUJUD_FLAGS) github.com/juju/juju/cmd/jujud
	mkdir -p debian/home
	HOME=debian/home $(GOPATH)/src/github.com/juju/juju/scripts/generate-docs.py man -o juju.1
	dh_install bin/juju usr/lib/juju-$(VERSION)/bin
	dh_install bin/juju-metadata usr/lib/juju-$(VERSION)/bin
	dh_install bin/juju-restore usr/lib/juju-$(VERSION)/bin
	dh_install src/github.com/juju/juju/cmd/plugins/juju-backup/juju-backup usr/lib/juju-$(VERSION)/bin
	dh_install bin/jujud usr/lib/juju-$(VERSION)/bin
	dh_install juju.1 usr/lib/juju-$(VERSION)/man/man1
	dh_install src/github.com/juju/juju/etc/bash_completion.d/juju-core etc/bash_completion.d
	dh_auto_install

override_dh_auto_clean:
	rm -rf debian/juju-core.prerm debian/juju-core.postinst debian/juju-core.lintian-overrides bin juju.1
	rm -rf pkg bin /tmp/go-build* debian/home
	find . -name "*.pyc" -delete || :
	dh_auto_clean

# Don't strip golang compiled binaries as this does
# not function correctly
override_dh_strip:
	:

override_dh_builddeb:
	dh_builddeb -- -Zxz

override_dh_gencontrol:
	dh_gencontrol -- $(DB_DEP)
