#!/usr/bin/make -f export DH_GOLANG_EXCLUDES := scripts/fork_go_templates tpl/tplimpl/embedded/generate # Prevent TestImageResize8BitPNG from failing due to pkgbinarymangler # recompressing our test PNG image on Ubuntu export NO_PNG_PKG_MANGLE := 1 # Prepare -ldflags arguments for Hugo version information include /etc/os-release PACKAGE := $(shell sed -n "s/^XS-Go-Import-Path: \(.*\)/\1/p" debian/control) DATE_FMT = %Y-%m-%dT%H:%M:%SZ ifdef SOURCE_DATE_EPOCH BUILD_DATE ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u "+$(DATE_FMT)") else BUILD_DATE ?= $(shell date -u "+$(DATE_FMT)") endif VENDOR_INFO := $(ID) $(shell dpkg-parsechangelog --show-field Version) LDFLAGS := -ldflags \ '-X "$(PACKAGE)/common/hugo.buildDate=$(BUILD_DATE)" \ -X "$(PACKAGE)/common/hugo.vendorInfo=$(VENDOR_INFO)"' # TODO: Revisit this when go1.16 (golang-1.16) is released, see "all: add # cgo support to the riscv port" https://github.com/golang/go/issues/36641 DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) ifneq ($(DEB_HOST_ARCH),riscv64) TAGS := -tags 'dev extended' endif HUGO := _build/bin/hugo %: dh $@ --builddirectory=_build --buildsystem=golang --with bash-completion,golang execute_after_dh_auto_configure: # github.com/gohugoio/testmodBuilder is for testing only # and will not be packaged separately for Debian cp -a debian/go/src/github.com/gohugoio/testmodBuilder \ _build/src/github.com/gohugoio/ # Convert symlinks to real directories to prepare for further tweaking cd _build/src/github.com && \ for i in tdewolff; do \ if [ -L "$$i" ]; then \ $(RM) $$i && \ mkdir $$i && \ for j in /usr/share/gocode/src/github.com/$$i/*; do \ cp -a $$j $$i/; \ done; \ fi; \ done # Downgrade github.com/tdewolff/minify to v2.6.2 cd _build/src/github.com && \ $(RM) -r tdewolff/minify && \ cp -a ../../../debian/go/src/github.com/tdewolff/minify tdewolff/ override_dh_auto_build: dh_auto_build -O--buildsystem=golang -- $(LDFLAGS) $(TAGS) $(HUGO) version mkdir -p debian/completion/bash debian/completion/zsh $(HUGO) gen autocomplete --type=bash > debian/completion/bash/hugo $(HUGO) gen autocomplete --type=zsh > debian/completion/zsh/_hugo $(HUGO) gen man --dir=debian/man # TODO: Add "hugo-docs" package in the future? #$(HUGO) -s docs -d public/html --uglyURLs # Disable network access during testing by using -test.short flag override_dh_auto_test: CI=true dh_auto_test -- -test.short -timeout 120m override_dh_auto_install: dh_auto_install -- --no-source