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

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

export GOMAXPROCS=1
export DH_GOPKG := k8s.io/kubernetes
export DH_GOLANG_INSTALL_ALL := 1

export DH_GOLANG_EXCLUDES := \
    contrib \
    kubernetes/examples \
    test/component/scheduler/perf \
    test/e2e \
    test/integration \
    hack/boilerplate/test \
    pkg/runtime/serializer/recognizer/testing

%:
	dh $@ --buildsystem=golang --builddirectory=_build \
              --with golang,systemd,bash_completion \
              --parallel

override_dh_clean:
	dh_clean
	## Remove Files-Excluded (when built from checkout or non-DFSG tarball):
	$(RM) -rv `perl -0nE 'say $$1 if m{^Files\-Excluded\:\s*(.*?)(?:\n\n|Files:|Comment:)}sm;' debian/copyright`
	-find vendor -mindepth 1 -type d -empty -delete -printf 'removed %p\n'

override_dh_auto_configure:
	cp -v third_party/swagger-ui/swagger-ui.js third_party/swagger-ui/swagger-ui.min.js
	cp -v debian/missing-sources/backbone.js third_party/swagger-ui/lib/backbone-min.js
	cp -v debian/missing-sources/handlebars.runtime-v2.0.0.js third_party/swagger-ui/lib/handlebars-2.0.0.js
	cp -v debian/missing-sources/highlight.js third_party/swagger-ui/lib/highlight.7.3.pack.js
	cp -v debian/missing-sources/jquery.js third_party/swagger-ui/lib/jquery-1.8.0.min.js
	cp -v debian/missing-sources/jquery.ba-bbq.js third_party/swagger-ui/lib/jquery.ba-bbq.min.js
	cp -v debian/missing-sources/jquery.slideto.js third_party/swagger-ui/lib/jquery.slideto.min.js
	cp -v debian/missing-sources/underscore.js third_party/swagger-ui/lib/underscore-min.js
	hack/build-ui.sh
	(cd test/e2e/framework && GOPATH=$(PWD)/_build ../../../hack/generate-bindata.sh)
	mkdir -pv _build/src/k8s.io/kubernetes
	cp -rv staging/src/k8s.io _build/src
	cp -rv staging/src/k8s.io/client-go/_vendor/* _build/src
	dh_auto_configure
	# Don't compile a second copy of staged client
	rm -rf _build/src/k8s.io/kubernetes/staging

override_dh_auto_build:
	dh_auto_build
	## Build man pages:
	mkdir -p _build/docs/man/man1
	for module in kube-apiserver kube-controller-manager kube-proxy kube-scheduler kubelet kubectl; do \
	  (cd _build && bin/genman docs/man/man1 $$module); \
	done
	debian/man/md2man.sh _build

override_dh_installinit:
	dh_installinit -p kubernetes-master --name=kube-apiserver
	dh_installinit -p kubernetes-master --name=kube-controller-manager
	dh_installinit -p kubernetes-master --name=kube-scheduler
	dh_installinit -p kubernetes-node --name=kube-proxy
	dh_installinit -p kubernetes-node --name=kubelet
	dh_installinit --no-start

override_dh_systemd_start:
	dh_systemd_start --no-start

override_dh_systemd_enable:
	dh_systemd_enable --no-enable

override_dh_auto_test:
	-dh_auto_test
ifeq (,$(filter nocheck,$(DEB_output_OPTIONS)))
	## test for #825753 (github.com/imdario/mergo compatibility):
	./_build/bin/kubectl version --server="http://localhost:7777" 2>&1 >>/dev/null | grep -q 7777
endif

## http://wiki.debian.org/onlyjob/get-orig-source
PKD  = $(abspath $(dir $(MAKEFILE_LIST)))
PKG  = $(word 2,$(shell dpkg-parsechangelog -l$(PKD)/changelog | grep ^Source))
VER ?= $(shell dpkg-parsechangelog -l$(PKD)/changelog | perl -ne 'print $$1 if m{^Version:\s*([\d\.]+)}')
.PHONY: get-orig-source
get-orig-source:
	@echo "# Downloading..."
	uscan --noconf --verbose --rename --repack --compression xz --destdir=$(CURDIR) \
              --check-dirname-level=0 --force-download --download-version $(VER) $(PKD)
