#!/usr/bin/make -f
# Made with the iad of dh_make, by Craig Small
# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
# Also some stuff taken from debmake scripts, by Cristopt Lameter.

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

include /usr/share/quilt/quilt.make

PACKAGE=freeciv

INSTALL = install
INSTALL_DIR = $(INSTALL) -p -d -o root -g root  -m  755

DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

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

# Use soft-float and thumb mode if it enabled.
#ifneq (,$(findstring thumb,$(DEB_BUILD_OPTIONS)))
#  CFLAGS += -mthumb
#endif

# Use hardware floating point
ifneq (,$(findstring vfp,$(DEB_BUILD_OPTIONS)))
  CFLAGS += -mfpu=vfp -mfloat-abi=softfp
endif


# Work around upstream creating tarballs with *ancient* autotools
# which don't know about $datarootdir.
export datarootdir=/opt/freeciv/share

COMMON_CONFIG := --cache-file=$(CURDIR)/config.cache \
		 --sysconfdir=/etc --prefix=/opt/freeciv \
		 --datadir=\$${prefix}/share/games \
		 --bindir=\$${prefix}/bin --mandir=\$${prefix}/share/man \
		 --host $(DEB_BUILD_GNU_TYPE) --build $(DEB_HOST_GNU_TYPE) \
		 --enable-debug=no

#build: patch build-xaw3d build-gtk build-sdl build-server
build: patch build-sdl build-server

build-server:
	dh_testdir

	-rm -f config.sub config.guess
	ln -sf /usr/share/misc/config.sub bootstrap/config.sub
	ln -sf /usr/share/misc/config.guess bootstrap/config.guess

	mkdir build-server
	(cd build-server && ../configure $(COMMON_CONFIG) --disable-client  \
		--without-ggz-client && \
	$(MAKE) CFLAGS="$(CFLAGS)")

	touch build-server-stamp

build-xaw3d:
	dh_testdir

	-rm -f config.sub config.guess
	ln -sf /usr/share/misc/config.sub bootstrap/config.sub
	ln -sf /usr/share/misc/config.guess bootstrap/config.guess

	mkdir build-xaw3d
	(cd build-xaw3d && 	\
	 ../configure $(COMMON_CONFIG) --disable-server --enable-client=xaw \
	 	--with-xaw3d  \
		--without-ggz-client --without-ggz-server && \
	$(MAKE) CFLAGS="$(CFLAGS)")

	touch build-xaw3d-stamp

build-gtk:
	dh_testdir

	-rm -f config.sub config.guess
	ln -sf /usr/share/misc/config.sub bootstrap/config.sub
	ln -sf /usr/share/misc/config.guess bootstrap/config.guess

	mkdir build-gtk
	(cd build-gtk && \
	../configure $(COMMON_CONFIG) --disable-server --enable-client=gtk-2.0 \
		 --without-ggz-server --enable-noregistry && \
	$(MAKE) CFLAGS="$(CFLAGS)")
	
	touch build-gtk-stamp

build-sdl:
	dh_testdir

	-rm -f config.sub config.guess
	ln -sf /usr/share/misc/config.sub bootstrap/config.sub
	ln -sf /usr/share/misc/config.guess bootstrap/config.guess

	mkdir build-sdl
	(cd build-sdl && \
	../configure $(COMMON_CONFIG) --disable-server --enable-client=sdl  \
		 --without-ggz-client --without-ggz-server && \
	$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="-lX11")
	
	touch build-sdl-stamp

clean: unpatch
	dh_testdir
	dh_testroot
	
	-rm -rf build-stamp build-xaw3d build-gtk build-sdl build-server 
	-rm -f install-stamp build-server-stamp build-xaw3d-stamp build-gtk-stamp build-sdl-stamp
	-rm -f config.cache
	-rm -f config.sub config.guess
	-rm -f bootstrap/config.sub bootstrap/config.guess

	dh_clean

	-rm -f debian/*~ Makefile Makefile.bak core */Makefile

install: install-stamp
#install-stamp: build-server-stamp build-gtk-stamp build-xaw3d-stamp build-sdl-stamp
install-stamp: build-server-stamp build-sdl-stamp
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	(cd build-server; $(MAKE) DESTDIR=$(CURDIR)/debian/tmp \
		localedir=$(DESTDIR)/usr/share/locale install)
	mkdir -p debian/tmp/usr/bin
	ln -s /opt/freeciv/bin/freeciv-server debian/tmp/usr/bin/

#	(cd build-xaw3d; $(MAKE) DESTDIR=$(CURDIR)/debian/tmp \
#		localedir=$(DESTDIR)/usr/share/locale install)
#	mv debian/tmp/usr/games/civclient debian/tmp/usr/games/civclient-xaw3d

#	(cd build-gtk; $(MAKE) DESTDIR=$(CURDIR)/debian/tmp \
#		localedir=$(DESTDIR)/usr/share/locale install)
#	mv debian/tmp/usr/games/civclient debian/tmp/usr/games/civclient-gtk
#	$(INSTALL_DIR) $(CURDIR)/debian/tmp/usr/share/ggz/modules/freeciv
#	cp build-gtk/data/civclient.dsc debian/tmp/usr/share/ggz/modules/freeciv

	(cd build-sdl; $(MAKE) DESTDIR=$(CURDIR)/debian/tmp \
		localedir=$(DESTDIR)/usr/share/locale install)
#	mv debian/tmp/opt/freeciv/bin/freeciv-sdl debian/tmp/opt/freeciv/bin/civclient-sdl 	
	mkdir -p debian/tmp/usr/bin/
	ln -s /opt/freeciv/bin/freeciv-sdl debian/tmp/usr/bin/

	cp debian/civclient-sdl.sh debian/tmp/opt/freeciv/bin
	cp debian/civclient-sdl.sh debian/tmp/usr/bin/
	#ln -s /opt/freeciv/bin/civclient-sdl.sh debian/tmp/usr/bin/
	$(INSTALL_DIR) $(CURDIR)/debian/tmp/usr/share/icons/hicolor/32x32/apps
	$(INSTALL_DIR) $(CURDIR)/debian/tmp/usr/share/icons/hicolor/16x16/apps
	$(INSTALL_DIR) $(CURDIR)/debian/tmp/usr/share/icons/hicolor/48x48/apps
	$(INSTALL_DIR) $(CURDIR)/debian/tmp/usr/share/icons/hicolor/64x64/apps
	$(INSTALL_DIR) $(CURDIR)/debian/tmp/usr/share/icons/hicolor/128x128/apps
	cp data/icons/16x16/freeciv-client.png debian/tmp/usr/share/icons/hicolor/16x16/apps
	cp data/icons/32x32/freeciv-client.png debian/tmp/usr/share/icons/hicolor/32x32/apps
	cp data/icons/48x48/freeciv-client.png debian/tmp/usr/share/icons/hicolor/48x48/apps
	cp data/icons/64x64/freeciv-client.png debian/tmp/usr/share/icons/hicolor/64x64/apps
	cp data/icons/128x128/freeciv-client.png debian/tmp/usr/share/icons/hicolor/128x128/apps
	mkdir -p debian/tmp/usr/share/games/
	ln -s /opt/freeciv/share/games/freeciv debian/tmp/usr/share/games/

	mkdir -p debian/tmp/usr/share/applications/hildon
	mkdir -p debian/tmp/usr/share/dbus-1/services
	rm -f $(CURDIR)/debian/tmp/opt/freeciv/share/applications/*.desktop
	$(INSTALL_DIR) $(CURDIR)/debian/tmp/opt/freeciv/share/applications/hildon
	$(INSTALL_DIR) $(CURDIR)/debian/tmp/opt/freeciv/share/dbus-1/services
	rm -f $(CURDIR)/debian/tmp/usr/share/applications/hildon/*.desktop
	$(INSTALL_DIR) $(CURDIR)/debian/tmp/usr/share/applications/hildon
	$(INSTALL_DIR) $(CURDIR)/debian/tmp/usr/share/dbus-1/services
	cp debian/freeciv-client-sdl.desktop debian/tmp/usr/share/applications/hildon
	cp debian/freeciv-client-sdl.service debian/tmp/usr/share/dbus-1/services

	# Move stuff that gets lost thanks to ${datadir}
	#mv debian/tmp/usr/share/games/icons debian/tmp/usr/share

	dh_install

	chown -R user.root debian/freeciv-data/opt/freeciv/share/games/freeciv/*

	# Remove sounds from -data
	#rm -rf debian/freeciv-data/usr/share/games/freeciv/stdsounds*

	# Remove ttf fonts from -data, now provided by dependencies.
	#rm -rf debian/freeciv-data/usr/share/games/freeciv/themes/gui-sdl/human/*.ttf
	#rm -rf debian/freeciv-data/usr/share/games/freeciv/themes/gui-sdl/human/COPYING.*

	touch install-stamp

binary-indep: build install
	dh_testdir -i
	dh_testroot -i
#	dh_installdocs -i
	dh_installchangelogs -i
#	dh_installmenu -i
#	dh_installman -i
	dh_compress -i
	-gzip -9 debian/freeciv-data/opt/freeciv/share/games/freeciv/scenario/*.sav
	dh_fixperms  --exclude /opt/freeciv/share/games/
	dh_installdeb -i
	dh_gencontrol -i
	#maemo-optify
	dh_md5sums -i
	dh_builddeb -i

binary-arch: build install
	dh_testdir -a
	dh_testroot -a
#	dh_installdocs -a
#	dh_installexamples -a
	dh_installchangelogs -a ChangeLog
	# Remove doc dirs for arch-dependent packages and symlink
	# to freeciv-data's.
	for i in freeciv-server freeciv-client-gtk freeciv-client-xaw3d freeciv-client-sdl; do \
		rm -rf $(CURDIR)/debian/$i/opt/freeciv/share/doc/$i; \
	done
#	dh_link -a
#	dh_installmenu -a
	dh_strip -a
	dh_compress -a
	dh_fixperms  -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	#maemo-optify
	dh_md5sums -a
	dh_builddeb -a

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary
