#!/usr/bin/make -f

include /usr/share/dpkg/buildflags.mk
include /usr/share/cdbs/1/class/cmake.mk
include /usr/share/cdbs/1/rules/debhelper.mk

NULL  =

PKD   = $(word 1,$(abspath $(dir $(MAKEFILE_LIST))))
PKG   = $(word 2,$(shell dpkg-parsechangelog -l$(PKD)/changelog | grep ^Source))
UVER  = $(shell dpkg-parsechangelog -l$(PKD)/changelog | perl -ne 'print $$1 if m{^Version:\s+(?:\d+:)?(\d.*)(?:\-\d+.*)};')
DTYPE = +dfsg1
VER  ?= $(subst $(DTYPE),,$(UVER))

DEB_DH_INSTALL_SOURCEDIR = debian/tmp
CPPFLAGS += -I/usr/include/X11
CFLAGS += -fPIC
GNU_CPU_TYPE:=$(shell dpkg-architecture -qDEB_BUILD_GNU_CPU)
CXXFLAGS += -fPIC -D'BUILD_TYPE=$(GNU_CPU_TYPE)'
DEB_CONFIGURE_EXTRA_FLAGS = --with-linux LDFLAGS=-L/usr/lib/X11
DEB_DH_MAKESHLIBS_ARGS += -V

DEB_CMAKE_NORMAL_ARGS += -DCMAKE_SKIP_RPATH=OFF

DEB_DH_SHLIBDEPS_ARGS_italc-master = -L libItalcCore -l debian/libitalccore/usr/lib/italc
DEB_DH_SHLIBDEPS_ARGS_italc-client = -L libItalcCore -l debian/libitalccore/usr/lib/italc
DEB_DH_SHLIBDEPS_ARGS_italc-management-console = -L libItalcCore -l debian/libitalccore/usr/lib/italc
DEB_DH_SHLIBDEPS_ARGS_libitalccore = -L libItalcCore -l debian/libitalccore/usr/lib/italc

debian/italc.xpm: ima/data/italc.png
	convert -resize 32 $< $@

makebuilddir/libitalccore::
	test -d debian/qm.bak/ || ( mkdir -p debian/qm.bak/; find lib/resources/ -name *.qm | while read qm; do cp -av $$qm debian/qm.bak/; done; )

configure/libitalccore::
	cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE) finalize-locales

common-install-arch:: debian/italc.xpm
	install -D -m 644 debian/italc.xpm debian/italc-master/usr/share/pixmaps/italc.xpm
	install -D -m 644 debian/config/iTALC.conf.in debian/italc-client/etc/xdg/iTALC\ Solutions/iTALC.conf
	ln -s ../xdg/iTALC\ Solutions/iTALC.conf debian/italc-client/etc/italc/italc.conf

install/italc-client::
	mkdir -p debian/italc-client/usr/bin/
	mkdir -p debian/italc-client/usr/lib/italc/
	mv -f debian/tmp/usr/bin/ica debian/italc-client/usr/lib/italc/ica
	cp    debian/bin/ica debian/italc-client/usr/bin/ica

clean::
	find debian/qm.bak/*.qm | while read qm; do cp -av $$qm lib/resources/; done
	rm -Rf debian/qm.bak/
	rm -f debian/italc.xpm
	rm -f lupus/config.log
	rm -f lupus/config.status
	rm -f config.log
	rm -f config.status

get-orig-source: $(PKG)_$(VER)$(DTYPE).orig.tar.xz $(info I: $(PKG)_$(VER)$(DTYPE))
	@

$(PKG)_$(VER)$(DTYPE).orig.tar.xz:
	@echo "# Downloading..."
	uscan --noconf --verbose --rename --destdir=$(CURDIR) --check-dirname-level=0 --force-download --download-version $(VER) $(PKD)
	$(if $(wildcard $(PKG)-$(VER)),$(error $(PKG)-$(VER) exist, aborting..))
	@echo "# Extracting..."
	mkdir $(PKG)-$(VER) \
	    && tar -xf $(PKG)_$(VER).orig.tar.bz2 --directory $(PKG)-$(VER) --strip-components 1 \
	    || $(RM) -r $(PKG)-$(VER)
	@echo "# Cleaning-up..."
	cd $(PKG)-$(VER) \
	    && find . -depth -type d -name 'windows' -exec $(RM) -r {} \; -printf 'removed %p\n' \
	    && $(RM) -r -v \
	        ica/x11/common/sha1.* \
	        ica/win32/ \
	        $(NULL)
	$(RM) -v $(PKG)_$(VER).orig.tar.*
	@echo "# Packing..."
	find -L "$(PKG)-$(VER)" -xdev -type f -print | sort \
	    | XZ_OPT="-6v" tar -caf "$(PKG)_$(VER)$(DTYPE).orig.tar.xz" -T- --owner=root --group=root --mode=a+rX \
	    && $(RM) -r "$(PKG)-$(VER)"
