#!/usr/bin/make -f

export DH_VERBOSE=1

# unfortunately wine fails to build with these flags enabled
export DEB_BUILD_MAINT_OPTIONS=hardening=-relro,-pie,-bindnow

LIBDIR=usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)/wine$(VERSUFFIX)
VERSUFFIX=$(shell dpkg-parsechangelog | grep ^Source | cut -d\  -f2 | sed s/wine//g)
DATADIR=/usr/share/wine$(VERSUFFIX)

# configure options
CONFLAGS=--without-hal \
	 --prefix=$(DATADIR) \
         --datarootdir=$(DATADIR) \
	 --includedir=/usr/include \
	 --exec-prefix=/$(LIBDIR) \
         --mandir=/$(LIBDIR)/man \
         --libdir=/$(LIBDIR) \
         LDFLAGS=-Wl,-rpath,/$(LIBDIR) \

INSTALLS=$(shell ls debian/*-common | sed s/-common// | sed s/\\./$(VERSUFFIX)\\./)
INSTALLS+=$(shell ls debian/wine*.install-common | sed s/\\.install-common/$(VERSUFFIX)\\.postinst/)
INSTALLS+=debian/substvars

# 32-bit parameters
ifeq (,$(VERSUFFIX))
PRIORITY := 100
else
PRIORITY := 50
endif 

# 64-bit parameters
ifeq ($(DEB_BUILD_ARCH), amd64)
CONFLAGS+=--enable-win64 # enable wine64 on amd64
ifeq (,$(VERSUFFIX))
PRIORITY := 125
else
PRIORITY := 75
endif
endif

debian/control: debian/control.in
	sed -e 's/\(wine[a-z0-9_-]*\)/\1$(VERSUFFIX)/g' \
	    -e 's/\(gecko[a-z0-9_-]*\)$(VERSUFFIX)/\1/' \
	    -e 's/pkg-wine$(VERSUFFIX)\/wine$(VERSUFFIX)\.git/pkg-wine\/wine.git/g' \
	    -e 's/pkg-wine-party$(VERSUFFIX)/pkg-wine-party/g' \
	    -e 's/winehq$(VERSUFFIX)/winehq/g' \
	    -e 's/wine-doc$(VERSUFFIX)/wine-doc/g' $< > $@

debian/%$(VERSUFFIX).docs: debian/%.docs-common
	cp $< $@

debian/%$(VERSUFFIX).mime: debian/%.mime-common
	cp $< $@

debian/%$(VERSUFFIX).links: debian/%.links-common
	cp $< $@

debian/%$(VERSUFFIX).install: debian/%.install-common
	cp $< $@

debian/%$(VERSUFFIX).manpages: debian/%.manpages-common
	cp $< $@

debian/%$(VERSUFFIX).lintian-overrides: debian/%.lintian-overrides-common
	cp $< $@

debian/%.postinst debian/%.prerm: debian/%.install
	sh debian/generate-alternatives $(PRIORITY) /$(LIBDIR) $<

debian/substvars:
	echo "dev:Conflicts=libwine-dev-unstable" > $@

%:
	dh $@ --parallel --with autoreconf

override_dh_auto_configure:
	ln -s /usr/share/misc/config.sub tools/config.sub
	ln -s /usr/share/misc/config.guess tools/config.guess
	dh_auto_configure -- $(CONFLAGS)

override_dh_install: $(INSTALLS)
	mv debian/tmp/$(LIBDIR)/bin/wine-preloader debian/tmp/$(LIBDIR)/bin/wine32-preloader || cp debian/tmp/$(LIBDIR)/bin/wine debian/$(LIBDIR)/bin/wine32-preloader || true
	mv debian/tmp/$(LIBDIR)/bin/wine debian/tmp/$(LIBDIR)/bin/wine32 || true
	cd debian/tmp/usr/lib/*/*/bin && ln -s wine?? wine
	mkdir -p debian/tmp/usr/share/applications
	#cp debian/uninstaller.desktop debian/tmp/usr/share/applications/uninstaller$(VERSUFFIX).desktop || true
	#cp debian/winecfg.desktop debian/tmp/usr/share/applications/winecfg$(VERSUFFIX).desktop || true
	#mv debian/tmp/usr/share/applications/wine$(VERSUFFIX)/wine.desktop debian/tmp/usr/share/applications/wine$(VERSUFFIX).desktop || true
	cp tools/winedump/README debian/README.winedump
	dh_install

override_dh_auto_test:
	# disable upstream's automated testing due to various brokenness

override_dh_strip:
	dh_strip -Xwine-pthread -Xwine-kthread --dbg-package=libwine-dbg$(VERSUFFIX)
	rm -rf debian/libwine-dbg$(VERSUFFIX)/usr/lib/debug/usr/bin

override_dh_clean: debian/control
	dh_clean
	rm -rf debian/libwine-dbg$(VERSUFFIX)
	rm -f debian/*.prerm debian/README.winedump
	rm -f config.log configure tools/config.sub tools/config.guess
	rm -f dlls/*.def tools/makedep loader/wine_info.plist # random uncleaned files
	rm -f $(INSTALLS)
