#!/usr/bin/make -f
#
# This is a debian/rules make file. It supports the targets:
# build, clean, binary-indep, binary-arch, and binary
#
# Package name variables
#
P=atari800

ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH)

# Build the binary components and assemble the libraries
# =====================================================================
build: 
	$(checkdir)
	debian/rules bld-x11
	debian/rules bld-curses
	debian/rules bld-sdl
	touch build

bld-sdl:
	cd src ; if [ -e Makefile ]; then $(MAKE) clean; fi
	cd src ; ./configure \
		 --target=sdl
	cd src ; $(MAKE)
	cp src/atari800 atari800.sdl

bld-x11:
	cd src ; if [ -e Makefile ]; then $(MAKE) clean; fi
	cd src ; ./configure \
		 --target=x11
	cd src ; $(MAKE)
	cp src/atari800 atari800.x11

bld-curses:
	cd src ; if [ -e Makefile ]; then $(MAKE) clean; fi
	cd src ; ./configure \
		 --target=ncurses
	cd src ; $(MAKE)
	cp src/atari800 atari800.curses

# Clean up after a build and before building a source package
#======================================================================
clean:
	$(checkdir)
	-rm -f build
	cd src ; if [ -e Makefile ]; then $(MAKE) clean; fi
	mv ./atari800.spec ./tmp ; rm -f atari800.* ; mv ./tmp ./atari800.spec
	-rm -rf debian/tmp debian/*~ *~ *.orig *.log
	-rm -rf debian/files* debian/substvars*

binary: binary-arch

# No binary independent components to this package
#======================================================================
binary-indep:
#
# No independent components
#
	echo "No independent binary components."

# Install package components into debian/tmp to be built into packages
#======================================================================
binary-arch:		checkroot build

# Clean out old tmp directory
#
	-rm -rf debian/tmp
	install -d debian/tmp

# Install installation scripts
#
	install -d debian/tmp/DEBIAN
	install -m 755 debian/postinst debian/tmp/DEBIAN/.
	install -m 755 debian/postrm debian/tmp/DEBIAN/.
	install -m 755 debian/prerm debian/tmp/DEBIAN/.

# Install docs in proper directory and gzip them
#
	install -d debian/tmp/usr/share/doc/$(P)
	cp debian/changelog debian/tmp/usr/share/doc/$(P)/changelog.Debian
	cp debian/README.Debian debian/tmp/usr/share/doc/$(P)/README.Debian
	cp DOC/ChangeLog debian/tmp/usr/share/doc/$(P)/ChangeLog
	cp DOC/NEWS debian/tmp/usr/share/doc/$(P)/NEWS
	cp DOC/CREDITS debian/tmp/usr/share/doc/$(P)/CREDITS
	cp DOC/INSTALL debian/tmp/usr/share/doc/$(P)/INSTALL
	cp DOC/README debian/tmp/usr/share/doc/$(P)/README
	cp DOC/USAGE debian/tmp/usr/share/doc/$(P)/USAGE
	gzip -9v debian/tmp/usr/share/doc/$(P)/*

# These are too small to gzip
#
	cp DOC/FAQ debian/tmp/usr/share/doc/$(P)/FAQ
	cp DOC/BUGS debian/tmp/usr/share/doc/$(P)/BUGS
	cp DOC/TODO debian/tmp/usr/share/doc/$(P)/TODO


# and don't gzip the copyright statement
#
	cp debian/copyright debian/tmp/usr/share/doc/$(P)/copyright

# install and gzip man page
#
	install -d debian/tmp/usr/share/man/man1
	install -m 644 src/$(P).man debian/tmp/usr/share/man/man1/$(P).1
	gzip -9 debian/tmp/usr/share/man/man1/$(P).1

# link other executables to the main manpage
#
	ln -s $(P).1.gz debian/tmp/usr/share/man/man1/$(P).sdl.1.gz
	ln -s $(P).1.gz debian/tmp/usr/share/man/man1/$(P).x11.1.gz
	ln -s $(P).1.gz debian/tmp/usr/share/man/man1/$(P).curses.1.gz

# install menu file
#
	install -d debian/tmp/usr/lib/menu
	install -m 644 debian/menu debian/tmp/usr/lib/menu/$(P)

# install binaries
#
	install -d debian/tmp/usr/bin
	install -s $(P).curses $(P).x11 debian/tmp/usr/bin
	install -s $(P).sdl debian/tmp/usr/bin/$(P)

# Create dependency information
#
	dpkg-shlibdeps ./$(P).sdl ./$(P).x11 ./$(P).curses

# Generate control file for the package
#
	dpkg-gencontrol -p$(P) -isp

# Clean up file ownership
#
	chown -R root.root debian/tmp

# and permissions
#
	chmod -R g-ws debian/tmp

# and build the package
#
	dpkg --build debian/tmp ..	

define checkdir
	test -f ./atari800.spec
endef

# Below here is fairly generic really
checkroot:
	$(checkdir)
	test root = "`whoami`"

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