#!/usr/bin/make -f

DEBDIR=debian/tmp/DEBIAN
BINDIR=debian/tmp/usr/games
LIBDIR=debian/tmp/usr/lib/games/maelstrom
DOCDIR=debian/tmp/usr/share/doc/maelstrom
MANDIR=debian/tmp/usr/man
MENUDIR=debian/tmp/usr/lib/menu

build:
	$(checkdir)
	set -e; \
	if test `dpkg --print-architecture` = i386 ; then \
		cp debian/config-i386 Makeflags ; \
	else \
		cp debian/config-other Makeflags ; \
	fi
# hackery to get a separate Maelstrom_sound compiled for dma.
# these rules "know" that only Maelstrom_sound.cpp and mixer.cpp include
# mixer.h
	ln -sf mixer-std.h mixer.h
	ln -sf mixer-std.cpp mixer.cpp
	-rm -f mixer.o Maelstrom_sound.o Maelstrom_sound
	make Maelstrom_sound
	mv Maelstrom_sound debian/Maelstrom_sound.dma
	ln -sf mixer-dma.h mixer.h
	ln -sf mixer-dma.cpp mixer.cpp
	-rm -f mixer.o Maelstrom_sound.o
	make
	uudecode -o debian/Maelstrom-Scores.high debian/Maelstrom-Scores.high.uue
	touch build

clean:
	$(checkdir)
	-rm -f build
	-cp Makeflags.start Makeflags
	-make clean LOGIC=netlogic
	-rm -f Maelstrom Maelstrom_sound debian/Maelstrom_sound.dma
	-rm -f `find . -name "*~"`
	-rm -f mixer.h mixer.cpp
	-rm -rf debian/tmp debian/files* core debian/substvars
	-rm -f debian/Maelstrom-Scores.high

binary-indep:

binary-arch: build
	$(checkdir)
	test root = "`whoami`"
	-rm -rf debian/tmp
# install binary.  The suid and sgid bits are set in the postinst
	install -d ${BINDIR}
	install -p -s -m 755 Maelstrom ${BINDIR} 
	ln -s Maelstrom ${BINDIR}/maelstrom
# library files
	install -d ${LIBDIR}
	install -p -s -m 755 Maelstrom_sound ${LIBDIR}
	install -p -s -m 755 debian/Maelstrom_sound.dma ${LIBDIR}
	install -d ${LIBDIR}/Images
	install -p -m 644 Images/*.icon ${LIBDIR}/Images
	install -p -m 644 Images/*.cicn ${LIBDIR}/Images
	install -p -m 644 "Maelstrom Fonts" ${LIBDIR}
	install -p -m 644 "Maelstrom Sounds" ${LIBDIR}
	install -p -m 644 "Maelstrom Sprites" ${LIBDIR}
	ln -s /var/lib/games/maelstrom/Maelstrom-Scores ${LIBDIR}
# default scorefiles.
# the "high" one is a fixed version.  (it's broken upstream)
	install -p -m 644 Maelstrom-Scores ${LIBDIR}/Maelstrom-Scores.default
	install -p -m 644 debian/Maelstrom-Scores.high ${LIBDIR}/Maelstrom-Scores.high
# menu entry
	install -d ${MENUDIR}
	install -p -m 644 debian/menu ${MENUDIR}/maelstrom
# documentation
	install -d ${DOCDIR}
	install -p -m 644 Doc/*.FAQ ${DOCDIR}
	install -p -m 644 Doc/*.Paper ${DOCDIR}
	install -p -m 644 Doc/Technical_Notes* ${DOCDIR}
	install -p -m 644 Changelog ${DOCDIR}/changelog
	install -p -m 644 debian/changelog ${DOCDIR}/changelog.Debian
	gzip -9v ${DOCDIR}/*
	install -p -m 644 BUGS ${DOCDIR}
	install -p -m 644 README ${DOCDIR}
	install -p -m 644 README.Options ${DOCDIR}
	install -p -m 644 README.network ${DOCDIR}
	install -p -m 644 README.joystick ${DOCDIR}
	install -p -m 644 debian/README.Debian ${DOCDIR}
	install -p -m 644 debian/copyright ${DOCDIR}
# man pages
	install -d ${MANDIR}/man6
	install -p -m 644 debian/maelstrom.6 ${MANDIR}/man6/Maelstrom.6
	gzip -9 ${MANDIR}/man6/Maelstrom.6
	ln -s Maelstrom.6.gz ${MANDIR}/man6/maelstrom.6.gz
#
	install -d ${DEBDIR}
	install -p -m 755 debian/postinst ${DEBDIR}
	install -p -m 755 debian/postrm ${DEBDIR}
	dpkg-shlibdeps ${BINDIR}/Maelstrom ${LIBDIR}/Maelstrom_sound
# Maelstrom works just as well with svgalibg1 as with svgalib-dummyg1.
# (with the latter only in X mode, of course).  Check if the shlibs file
# provided this alternative.  If not, hack it in.
	set -e; \
	if ! grep svgalib-dummyg1 debian/substvars >/dev/null ; then \
		mv debian/substvars debian/substvars-unhacked ; \
		sed -e 's/svgalibg1\( *([^)]*)\)\{0,1\}/& | svgalib-dummyg1\1/' <debian/substvars-unhacked >debian/substvars; \
	fi
	dpkg-gencontrol -isp
	dpkg --build debian/tmp ..

define checkdir
	test -f debian/rules -a -f Maelstrom.h
endef

binary:		binary-indep binary-arch

.PHONY: binary binary-arch binary-indep clean
