#!/usr/bin/make -f

VERSION = $(shell dpkg-parsechangelog | awk '/^Version: / { print $$2 }' | sed -e 's|^.*:||' -e 's|-.*$$||')

UPSTREAM_VERSION = $(strip $(shell grep '^TOOLS_VERSION' open-vm-tools/configure.ac | sed 's,.*=",,;s,",,'))

%:
	dh ${@} --with autotools_dev,dkms,autoreconf,systemd --sourcedirectory=open-vm-tools

override_dh_autoreconf:
	set -e; \
	    cd open-vm-tools ; \
	    cp configure.ac configure.ac.autoreconf ; \
	    cp modules/linux/dkms.sh modules/linux/dkms.sh.autoreconf ;\
	    sed -i 's,$(UPSTREAM_VERSION),$(VERSION),g' configure.ac ;\
	    sed -i 's,$(UPSTREAM_VERSION),$(VERSION),g' modules/linux/dkms.sh
	dh_autoreconf --sourcedirectory=open-vm-tools

override_dh_autoreconf_clean:
	dh_autoreconf_clean 
	set -e ;\
	    cd open-vm-tools ; \
	    if [ -f configure.ac.autoreconf ]; then \
	        mv configure.ac.autoreconf configure.ac ;\
	    fi ;\
	    if [ -f modules/linux/dkms.sh.autoreconf ]; then \
	        mv modules/linux/dkms.sh.autoreconf modules/linux/dkms.sh ;\
	    fi

override_dh_auto_configure:
	dh_auto_configure --sourcedirectory=open-vm-tools -- \
			--prefix=/usr \
			--libdir=\$${prefix}/lib \
			--without-kernel-modules \
			--with-pic \
			CFLAGS="-fPIC -Wno-deprecated-declarations $(CFLAGS)" \
			CUSTOM_PROCPS_NAME=procps \
			CXXFLAGS='-std=gnu++11'
	find . -name Makefile -exec sed -i '/.*CPPFLAGS.*/s,-std=c++11,,' '{}' \;

override_dh_auto_install:
	dh_auto_install --sourcedirectory=open-vm-tools -- DESTDIR=$(CURDIR)/debian/open-vm-tools

	if [ -e debian/open-vm-tools/etc/pam.d/vmtoolsd-x64 ]; \
	then \
		sed -i -e "s|lib64|lib|g" debian/open-vm-tools/etc/pam.d/vmtoolsd-x64; \
		mv debian/open-vm-tools/etc/pam.d/vmtoolsd-x64 debian/open-vm-tools/etc/pam.d/vmtoolsd; \
	fi

	# permissions
	chmod 0644 debian/*/etc/pam.d/*
	chmod 4755 debian/*/usr/bin/vmware-user-suid-wrapper

	install -D -m 0755 debian/local/vmxnet.hook debian/open-vm-tools-dkms/usr/share/initramfs-tools/hooks/vmxnet
	install -D -m 0644 debian/local/xautostart.conf debian/open-vm-tools-desktop/etc/vmware-tools/xautostart.conf
	install -D -m 0644 debian/local/tools.conf debian/open-vm-tools/etc/vmware-tools/tools.conf

	install -D -m 0644 debian/local/run-vmblock\\x2dfuse.mount debian/open-vm-tools-desktop/lib/systemd/system/run-vmblock\\x2dfuse.mount
	install -D -m 0644 debian/local/open-vm-tools-desktop.conf debian/open-vm-tools-desktop/usr/lib/modules-load.d/open-vm-tools-desktop.conf

	# open-vm-tools-dev
	mkdir -p debian/open-vm-tools-dev/usr/share/doc/open-vm-tools
	mv debian/open-vm-tools/usr/share/doc/open-vm-tools/api debian/open-vm-tools-dev/usr/share/doc/open-vm-tools
	mkdir -p debian/open-vm-tools-dev/usr/lib
	mv \
	    debian/open-vm-tools/usr/lib/*.a \
	    debian/open-vm-tools/usr/lib/*.so \
	    debian/open-vm-tools/usr/lib/pkgconfig \
	    debian/open-vm-tools-dev/usr/lib
	mv debian/open-vm-tools/usr/include debian/open-vm-tools-dev/usr


	# open-vm-tools-dkms
	mkdir -p debian/open-vm-tools-dkms/usr/src
	cd open-vm-tools && sh modules/linux/dkms.sh . ../debian/open-vm-tools-dkms/usr/src
	find debian/open-vm-tools-dkms/usr/src -name COPYING | xargs rm -f
	find debian/open-vm-tools-dkms/usr/src -name "Makefile*" | xargs chmod 0755

	# removing useless files
	rm -f debian/open-vm-tools/usr/lib/*.la
	rm -f debian/open-vm-tools/usr/lib/open-vm-tools/plugins/*/*.la
	rm -rf debian/open-vm-tools/usr/share/open-vm-tools/tests

	# mount(8) calls the program as /sbin/mount.vmhgfs
	mv debian/open-vm-tools/usr/sbin/mount.vmhgfs debian/open-vm-tools/sbin/

	# moving open-vm-tools-desktop files
	mkdir -p debian/open-vm-tools-desktop/usr/lib/open-vm-tools/plugins
	mv debian/open-vm-tools/usr/lib/open-vm-tools/plugins/vmusr debian/open-vm-tools-desktop/usr/lib/open-vm-tools/plugins

	mkdir -p debian/open-vm-tools-desktop/usr/bin
	mv debian/open-vm-tools/usr/bin/vmware-user-suid-wrapper debian/open-vm-tools-desktop/usr/bin

	mkdir -p debian/open-vm-tools-desktop/etc/xdg/autostart
	mv debian/open-vm-tools/etc/xdg/autostart/vmware-user.desktop debian/open-vm-tools-desktop/etc/xdg/autostart
	rm -rf debian/open-vm-tools/etc/xdg

	# fix dkms folder, upstream fails on it sometimes...
	if ! test -d debian/open-vm-tools-dkms/usr/src/open-vm-tools-$(VERSION); then \
	    mv debian/open-vm-tools-dkms/usr/src/open-vm-tools-* debian/open-vm-tools-dkms/usr/src/open-vm-tools-$(VERSION) ; \
	fi

override_dh_builddeb:
	dh_builddeb -- -Zxz

override_dh_dkms:
	sed 's,DEBIAN_VERSION,$(VERSION),g' debian/open-vm-tools-dkms.dkms.in > debian/open-vm-tools-dkms.dkms
	dh_dkms -popen-vm-tools-dkms -V $(VERSION)

override_dh_fixperms:
	dh_testroot
	find debian/open-vm-tools/etc -type f -print0 | xargs -0 chmod ugo-x
	chmod ugo+x debian/open-vm-tools/etc/vmware-tools/scripts/vmware/*
	chmod ugo+x debian/open-vm-tools/etc/vmware-tools/vm-support
	chmod ugo+x debian/open-vm-tools/etc/vmware-tools/*-vm-default

	dh_fixperms -Xvmware-user-suid-wrapper

override_dh_systemd_enable:
	dh_systemd_enable -popen-vm-tools
	dh_systemd_enable -popen-vm-tools --name vgauth
	dh_systemd_enable -popen-vm-tools-desktop run-vmblock\\x2dfuse.mount

override_dh_systemd_start:
	dh_systemd_start -popen-vm-tools
	dh_systemd_start -popen-vm-tools --name vgauth
	dh_systemd_start -popen-vm-tools-desktop -r --no-restart-after-upgrade run-vmblock\\x2dfuse.mount
	sed -i 's,run-vmblock-fuse,run-vmblock\\\\x2dfuse,g' debian/*.debhelper

override_dh_installchangelogs:
	dh_installchangelogs ReleaseNotes.md

override_dh_md5sums-arch:
	dh_md5sums
	# remove broken \ escaping from md5sums
	sed -i -e 's,^\\,,' -e 's,\\\\,\\,' debian/open-vm-tools-desktop/DEBIAN/md5sums

