#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# This is the debhelper compatability version to use.
export DH_COMPAT=2

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS=-O0 -g
else
CFLAGS=-O2 -g
endif

ifeq (,$(wildcard /usr/bin/po2debconf))
PO2DEBCONF := no
MINDEBCONFVER := 0.5
else
PO2DEBCONF := yes
MINDEBCONFVER := 1.2.0
endif

DEB_HOST_GNU_SYSTEM	?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)
DEB_HOST_GNU_CPU	?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)

configure: configure-stamp
configure-stamp:
	dh_testdir
ifneq ($(DEB_HOST_GNU_CPU), x86_64)
	CFLAGS="$(CFLAGS)" \
	ICUUC_LIB="` \
	(dpkg -s libicu36-dev >/dev/null && \
	 echo "/usr/lib/libsicuuc.a") || \
	(dpkg -s libicu34-dev >/dev/null && \
	 echo "/usr/lib/libsicuuc.a") || \
	(dpkg -s libicu28-dev >/dev/null && \
	 echo "/usr/lib/libsicuuc.a") || \
	(dpkg -s libicu21-dev >/dev/null && \
	 echo "/usr/lib/libicuuc.a") || \
	echo ""`" \
	ICUDATA_LIB="` \
	(dpkg -s libicu36-dev >/dev/null && \
	 echo "/usr/lib/libsicudata.a") || \
	(dpkg -s libicu34-dev >/dev/null && \
	 echo "/usr/lib/libsicudata.a") || \
	(dpkg -s libicu28-dev >/dev/null && \
	 echo "/usr/lib/libsicudata.a") || \
	(dpkg -s libicu21-dev >/dev/null && \
	 echo "/usr/lib/libicudata.a") || \
	echo ""`" \
	./configure --with-x --enable-opengl --prefix=/usr \
	--sysconfdir=/etc \
	--bindir=\$${prefix}/bin \
	--libdir=\$${prefix}/lib \
	--mandir=\$${prefix}/share/man \
	--infodir=\$${prefix}/share/info
endif

	touch configure-stamp

build-indep: configure-stamp build-indep-stamp
build-indep-stamp:
	dh_testdir

	touch build-indep-stamp

build-arch: configure-stamp build-arch-stamp
build-arch-stamp:
	dh_testdir

ifneq ($(DEB_HOST_GNU_CPU), x86_64)
	$(MAKE) depend
	# build wine & tools
	$(MAKE)
	# build winelib programs
	$(MAKE) -C programs
endif

	touch build-arch-stamp

build: build-arch

clean:
	dh_testdir
	dh_testroot
	rm -f build-indep-stamp build-arch-stamp configure-stamp

	-$(MAKE) distclean

ifeq ($(PO2DEBCONF),yes)
	# Hack for woody compatibility. This makes sure that the
	# debian/templates file shipped in the source package doesn't
	# specify encodings, which woody's debconf can't handle. If building
	# on a system with po-debconf installed (conveniently debhelper (>=
	# 4.1.16) depends on it), the binary-arch target will generate a
	# better version for sarge.
	echo 1 > debian/po/output
	po2debconf debian/wine.templates.master > debian/wine.templates
	po2debconf debian/libwine.templates.master > debian/libwine.templates
	rm -f debian/po/output
endif
	dh_clean

install-indep: build-indep
	dh_testdir
	dh_testroot
	dh_installdirs -i

install-arch: build-arch
	dh_testdir
	dh_testroot
	# clean up first in case the package maintainer is experimenting again
	dh_clean -s -k
	# create installation directories
	dh_installdirs -s

ifneq ($(DEB_HOST_GNU_CPU), x86_64)
	# install wine, libwine, and tools
	$(MAKE) install prefix=`pwd`/debian/tmp/usr libdir=`pwd`/debian/tmp/usr/lib
	# move the real binaries into /usr/lib/wine,
	# wrapping them with the winelauncher
	mv debian/tmp/usr/bin/wine debian/tmp/usr/lib/wine/wine.bin
	mv debian/tmp/usr/bin/wine-kthread debian/tmp/usr/lib/wine/wine-kthread
	mv debian/tmp/usr/bin/wine-pthread debian/tmp/usr/lib/wine/wine-pthread
	mv debian/tmp/usr/bin/wine-preloader debian/tmp/usr/lib/wine/wine-preloader
	mv debian/tmp/usr/bin/wineserver debian/tmp/usr/lib/wine/wineserver
	mv debian/tmp/usr/bin/winelauncher debian/tmp/usr/bin/wine
	# install manpages
	$(MAKE) -C documentation install prefix=`pwd`/debian/tmp/usr
	mv debian/tmp/usr/share/man/man3w debian/tmp/usr/share/man/man3
	# install winelib programs
	$(MAKE) -C programs install prefix=`pwd`/debian/tmp/usr
endif

install: install-arch

# Build architecture-independent files here.
binary-indep: build-indep install-indep
	dh_testdir
	dh_testroot

	cp documentation/ChangeLog.OLD \
	 debian/wine/usr/share/doc/wine

	dh_installdocs -i
	dh_installchangelogs -i ChangeLog
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build-arch install-arch
	dh_testdir
	dh_testroot

ifneq ($(DEB_HOST_GNU_CPU), x86_64)
	# distribute the files in debian/tmp into debian/<packagename>
	# according to the <packagename>.files files
	dh_movefiles -s

	# distribute files we want that weren't in debian/tmp
	cp dlls/twain_32/README debian/libwine/usr/share/doc/libwine/README.twain
	# wine files (bugreport tool, file associations)
	install tools/bug_report.pl debian/wine/usr/share/doc/wine
	cp debian/mime-info.mime debian/wine/usr/share/mime-info/wine.mime
	cp debian/mime-info.keys debian/wine/usr/share/mime-info/wine.keys
	cp debian/wine.desktop debian/wine/usr/share/applications/wine.desktop
	cp debian/wine.binfmt debian/wine/usr/share/binfmts/wine
	cp programs/winemenubuilder/wine*.xpm debian/wine/usr/share/pixmaps
	# wine-utils
	install tools/bin2res debian/wine-utils/usr/bin
	install tools/fnt2bdf debian/wine-utils/usr/bin
	install tools/font_convert.sh debian/wine-utils/usr/bin
	cp tools/winedump/README debian/wine-utils/usr/share/doc/wine-utils/README.winedump
	cp debian/uninstaller.desktop debian/wine-utils/usr/share/applications/uninstaller.desktop
	cp debian/winecfg.desktop debian/wine-utils/usr/share/applications/winecfg.desktop

	# split up libwine
ifeq ($(DEB_HOST_GNU_SYSTEM), linux-gnu)
	mv debian/libwine/usr/lib/wine/winealsa* debian/libwine-alsa/usr/lib/wine
	mv debian/libwine/usr/lib/wine/capi*     debian/libwine-capi/usr/lib/wine
endif
	mv debian/libwine/usr/lib/wine/winearts* debian/libwine-arts/usr/lib/wine
	mv debian/libwine/usr/lib/wine/mscms*    debian/libwine-cms/usr/lib/wine
	mv debian/libwine/usr/lib/wine/wineesd*  debian/libwine-esd/usr/lib/wine
	mv debian/libwine/usr/lib/wine/d3d8*     debian/libwine-gl/usr/lib/wine
	mv debian/libwine/usr/lib/wine/d3d9*     debian/libwine-gl/usr/lib/wine
	mv debian/libwine/usr/lib/wine/d3dx8*    debian/libwine-gl/usr/lib/wine
	mv debian/libwine/usr/lib/wine/glu32*    debian/libwine-gl/usr/lib/wine
	mv debian/libwine/usr/lib/wine/opengl32* debian/libwine-gl/usr/lib/wine
	mv debian/libwine/usr/lib/wine/wined3d*  debian/libwine-gl/usr/lib/wine
	mv debian/libwine/usr/lib/wine/winejack* debian/libwine-jack/usr/lib/wine
	mv debian/libwine/usr/lib/wine/wldap32*  debian/libwine-ldap/usr/lib/wine
	mv debian/libwine/usr/lib/wine/winenas*  debian/libwine-nas/usr/lib/wine
	mv debian/libwine/usr/lib/wine/wineps*   debian/libwine-print/usr/lib/wine
endif

ifeq ($(PO2DEBCONF),yes)
	po2debconf -e utf8 debian/wine.templates.master > debian/wine.templates
	po2debconf -e utf8 debian/libwine.templates.master > debian/libwine.templates
endif

	dh_installdebconf -s
	dh_installdocs -s
#	dh_installmenu -s
	dh_installmime -s

	dh_undocumented -s
	dh_installchangelogs -s ChangeLog
	dh_link -s
	dh_strip -s
	dh_compress -s
	dh_fixperms -s
	dh_makeshlibs -s
	dh_installdeb -s
	dh_shlibdeps -s -ldlls:libs:

	# if the distro we're compiling for has freetype, depend on it
	(dpkg -s libfreetype6-dev >/dev/null && \
	 echo "freetype=, libfreetype6" >> debian/libwine.substvars && \
	 echo "freetype=, libfreetype6" >> debian/libwine-print.substvars) || \
	true

	# if the distro we're compiling for has cups, depend on it
	(dpkg -s libcupsys2-dev >/dev/null && \
	 echo "cupsys=, libcupsys2-gnutls10" >> debian/libwine-print.substvars) || \
	true

	# if the distro we're compiling for has jack, depend on it
	(dpkg -s libjack0.100.0-dev >/dev/null && \
	 echo "jack=, libjack0.100.0-0" >> debian/libwine-jack.substvars) || \
	(dpkg -s libjack0.80.0-dev >/dev/null && \
	 echo "jack=, libjack0.80.0-0" >> debian/libwine-jack.substvars) || \
	(dpkg -s libjack0.71.2-dev >/dev/null && \
	 echo "jack=, libjack0.71.2-0" >> debian/libwine-jack.substvars) || \
	(dpkg -s libjack0.50.0-dev >/dev/null && \
	 echo "jack=, libjack0.50.0-0" >> debian/libwine-jack.substvars) || \
	true

	# if the distro we're compiling for has ICU, suggest it
	(dpkg -s libicu36-dev >/dev/null && \
	 echo "icu=" >> debian/libwine.substvars) || \
	(dpkg -s libicu34-dev >/dev/null && \
	 echo "icu=" >> debian/libwine.substvars) || \
	(dpkg -s libicu28-dev >/dev/null && \
	 echo "icu=" >> debian/libwine.substvars) || \
	(dpkg -s libicu21-dev >/dev/null && \
	 echo "icu=, icu" >> debian/libwine.substvars) || \
	true

ifeq ($(DEB_HOST_GNU_CPU)-$(DEB_HOST_GNU_SYSTEM), x86_64-linux-gnu)
	# Using compressed 32-bit build.  Make sure it's the latest one!!
	uudecode < debian/amd64.tar.lzma.uu | lzma -d | tar -xpf -
endif
ifeq ($(DEB_HOST_GNU_CPU)-$(DEB_HOST_GNU_SYSTEM), i486-linux-gnu)
	# Generating compressed 32-bit build.  Make sure to keep your *_i386.deb in sync with this file in your *.diff.gz!!
	tar -cpf - `grep "^Package: " debian/control | sed -e "s,^Package: ,debian/,g"` | lzma -c9 | uuencode - > debian/amd64.tar.lzma.uu
endif
	dh_gencontrol -s -- -V'debconf-depends=debconf (>= $(MINDEBCONFVER)) | debconf-2.0'
	dh_md5sums -s
	dh_builddeb -s

binary: binary-arch
.PHONY: build-indep build-arch build clean binary-indep binary-arch binary \
	install-indep install-arch install configure
