#!/usr/bin/make -f

# output every command that modifies files on the build system.
#DH_VERBOSE = 1

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)

CMAKE_ADDTIONAL_FLAGS ?=
ifeq ($(findstring $(DEB_BUILD_ARCH), amd64 kfreebsd-amd64),)
CMAKE_ADDITIONAL_FLAGS ?= -DUSE_INTRINSICS=OFF
endif

%:
	dh $@ --sourcedirectory=neo

# debmake generated override targets
# This is example for Cmake (See http://bugs.debian.org/641051 )
override_dh_auto_configure:
	dh_auto_configure -- -G "Unix Makefiles" \
	 -DSDL2=ON -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) \
	 -DUSE_SYSTEM_ZLIB=ON -DUSE_SYSTEM_LIBPNG=ON \
	 -DUSE_SYSTEM_LIBJPEG=ON -DUSE_SYSTEM_LIBGLEW=ON \
         -DUSE_SYSTEM_RAPIDJSON=ON \
	 -DCPU_TYPE=$(DEB_BUILD_ARCH_CPU) \
	 -DUSE_PRECOMPILED_HEADERS=OFF \
	 -DCPU_OPTIMIZATION="" \
	 $(CMAKE_ADDITIONAL_FLAGS)

override_dh_installchangelogs:
	# We won't have a ChangeLog if packaging from a released tarball.
	# In this case, use the RELEASE-NOTES.txt
	dh_installchangelogs
	if [ ! -e ChangeLog ]; then \
	dh_installchangelogs -k RELEASE-NOTES.txt ; \
	fi

# For get-orig-source
UURL =  https://github.com/RobertBeckebans/RBDOOM-3-BFG.git
PKD   = $(abspath $(dir $(MAKEFILE_LIST)))
PKG   = $(word 2,$(shell dpkg-parsechangelog -l$(PKD)/changelog | grep ^Source))
VER  ?= $(shell dpkg-parsechangelog -l$(PKD)/changelog  -SVersion | sed -e s/^.*git// | cut -d- -f1 )
DTYPE = +dfsg
UPSVER ?= $(shell dpkg-parsechangelog -l$(PKD)/changelog -SVersion | cut -d+ -f1)

## from: https://wiki.debian.org/onlyjob/get-orig-source
.PHONY: get-orig-source
get-orig-source: $(PKG)_$(UPSVER)+git$(VER)$(DTYPE).orig.tar.xz
	#$(info I: $(UPSVER$)+$(PKG)_$(VER)$(DTYPE))
	@

UDATE = $(shell date --rfc-3339=seconds --date='TZ="UTC" \
	$(shell echo +git$(VER) | perl -ne 'print "$$1-$$2-$$3" if m/\+(?:git|svn|hg)(\d{4})(\d{2})(\d{2})/')')

$(PKG)_$(UPSVER)+git$(VER)$(DTYPE).orig.tar.xz:
	@echo DEBUG: VER=$(VER) UDATE=$(UDATE) UPSVER=$(UPSVER)
	@echo "$(PKG)_$(UPSVER)+git$(VER)$(DTYPE).orig.tar.xz"
	@echo $(VER) | grep -q '^[0-9]*$$' || ( echo Cannot find timestamp in package version. Please specify VER, see README.source. Aborting.. ; exit 1 )
	#$(info I: UDATE=$(UDATE))
	$(if $(wildcard $(PKG)-$(UPSVER)+git$(VER)),$(error $(PKG)-$(UPSVER)+git$(VER) exist, aborting..))
	@echo "# Downloading..."
	git clone $(UURL) $(PKG)-$(UPSVER)+git$(VER) \
	|| $(RM) -r $(PKG)-$(UPSVER)+git$(VER)
	cd $(PKG)-$(UPSVER)+git$(VER) \
	&& git checkout v$(VER) || git checkout $$(git log -n1 --format=%h --before="$(UDATE)") \
	&& ( echo "# Generating ChangeLog..." \
	&& git log --pretty="format:%ad  %aN  <%aE>%n%n%x09* %s%n" --date=short > ChangeLog \
	&& touch -d "$$(git log -1 --format='%ci')" ChangeLog) \
	&& echo "# Setting times..." \
	&& for F in $$(git ls-tree -r --name-only HEAD); do touch --no-dereference -d "$$(git log -1 --format="%ai" -- $$F)" "$$F"; done \
	&& echo "# Cleaning-up..." \
	&& $(RM) -r -v $$(awk 'BEGIN{RS=ORS="\n\n";FS=OFS="\n"}/Files-Excluded:/' $(PKD)/copyright | sed -n -e '/^Files-Excluded:/,$${p}' | sed s/Files-Excluded://) \
	&& $(RM) -r .git .git*
	@echo "# Packing..."
	find -L "$(PKG)-$(UPSVER)+git$(VER)" -xdev -type f -print | sort \
	| XZ_OPT="-6v" tar -caf "$(PKG)_$(UPSVER)$(DTYPE)+git$(VER).orig.tar.xz" -T- --owner=root --group=root --mode=a+rX \
	&& $(RM) -r "$(PKG)-$(UPSVER)+git$(VER)"
