#!/usr/bin/make -f

# Copyright (C) 1998 Richard Braakman
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, you can find it on the World Wide
# Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
# MA 02110-1301, USA.

clean:
	mkdir -p .svn CVS "{arch}" .arch-ids .bzr
	touch files/.cvsignore files/svn-commit.tmp files/svk-commitsEr9P.tmp
	touch files/.arch-inventory
	touch 'files/.#Maelstrom Sound.1.1.1' 'files/Maelstrom Sounce.r121'
	touch 'files/Maelstrom Sound.mine'
	touch "files/'\\ "
	touch filenames.c~

build-arch:

build-indep:

build: build-arch build-indep


binary-arch:

binary-indep:
	install -d debian/tmp/DEBIAN
	cp -a files debian/tmp
	chmod -R go=rX debian/tmp/files

	install -d debian/tmp/usr/lib/filenames
	install -m 555 -d debian/tmp/usr/lib/filenames/readonly
	touch debian/tmp/usr/lib/filenames/readonly/test

	install -d debian/tmp/usr/lib/menu
	install -d debian/tmp/usr/share/menu
	touch debian/tmp/usr/lib/menu/README
	touch debian/tmp/usr/share/menu/README
	touch debian/tmp/usr/lib/menu/menu
	touch debian/tmp/usr/share/menu/menu
	chmod 644 debian/tmp/usr/lib/menu/*

	install -d debian/tmp/usr/lib/perl5/foo
	mkdir debian/tmp/usr/lib/perl5/.svn
	mkdir debian/tmp/usr/lib/perl5/CVS
	mkdir "debian/tmp/usr/lib/perl5/{arch}"
	mkdir debian/tmp/usr/lib/perl5/.arch-ids
	mkdir debian/tmp/usr/lib/perl5/.bzr
	mkdir debian/tmp/usr/lib/perl5/.be
	mkdir debian/tmp/usr/lib/perl5/.ditrack
	install -d debian/tmp/usr/share/perl5
	echo foo > debian/tmp/usr/lib/perl5/foo/.gitignore
	echo foo > debian/tmp/usr/lib/perl5/foo/.hgignore
	echo foo > debian/tmp/usr/lib/perl5/foo/.hgtags
	echo foo > debian/tmp/usr/lib/perl5/foo/.hg_archival.txt

	touch debian/tmp/usr/lib/perl5/foo/.packlist
	chmod 644 debian/tmp/usr/lib/perl5/foo/.packlist
	touch debian/tmp/usr/lib/perl5/foo/bar.pm
	touch -t 197501010101 debian/tmp/usr/lib/perl5/foo/ancient.pm
	chmod 644 debian/tmp/usr/lib/perl5/foo/bar.pm

	install -d debian/tmp/usr/share/pixmaps
	install -d debian/tmp/usr/share/pixmaps/foo
	touch debian/tmp/usr/share/pixmaps/license.jpeg
	touch debian/tmp/usr/share/pixmaps/licence.jpg
	touch debian/tmp/usr/share/pixmaps/copying.xpm
	touch debian/tmp/usr/share/pixmaps/foo/COPYING.svg
	touch debian/tmp/usr/share/pixmaps/foo/copying.png
	touch debian/tmp/usr/share/pixmaps/license.txt
	touch debian/tmp/usr/share/pixmaps/license.foo
	touch debian/tmp/usr/share/pixmaps/COPYING

	install -d debian/tmp/usr/share/python-support/filenames

	install -d debian/tmp/usr/share/linda/overrides
	echo 'foo' > debian/tmp/usr/share/linda/overrides/filenames

	install -d debian/tmp/usr/share/doc/filenames
	touch debian/tmp/usr/share/doc/filenames/README.macosx

	echo foo > debian/tmp/usr/share/doc/filenames/bokmål
	echo foo > debian/tmp/usr/share/doc/filenames/bokm\\ål
	echo foo > debian/tmp/usr/share/doc/filenames/bokml
	echo foo > debian/tmp/usr/share/doc/filenames/bokm\\l

	echo foo > debian/tmp/usr/share/doc/filenames/Thumbs.db
	echo foo > debian/tmp/usr/share/doc/filenames/.DS_Store
	echo foo > debian/tmp/usr/share/doc/filenames/._NEWS.Debian

	touch debian/tmp/usr/share/doc/filenames/news.debian
	gzip debian/tmp/usr/share/doc/filenames/news.debian
	touch debian/tmp/usr/share/doc/filenames/NEWS.Debian

	echo foo > debian/tmp/usr/share/doc/filenames/link-one
	ln debian/tmp/usr/share/doc/filenames/link-one \
	    debian/tmp/usr/share/doc/filenames/link-two

	install -d debian/tmp/usr/share/doc/filenames/examples
	touch debian/tmp/usr/share/doc/filenames/examples/__init__.py
	touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example
	touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2
	gzip debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2

	install -d debian/tmp/usr/lib/ada/adalib/
	touch debian/tmp/usr/lib/ada/adalib/test.ali debian/tmp/usr/lib/ada/adalib/test2.ali
	chmod 0644 debian/tmp/usr/lib/ada/adalib/test.ali
	chmod 0444 debian/tmp/usr/lib/ada/adalib/test2.ali

	install -d debian/tmp/usr/bin/X11/
	touch debian/tmp/usr/bin/X11/testxbin
	install -d debian/tmp/usr/X11R6/bin
	touch debian/tmp/usr/X11R6/bin/testxbin2
	install -d debian/tmp/usr/include/X11
	touch debian/tmp/usr/include/X11/foo.h

	install -d debian/tmp/usr/bin/mh
	touch debian/tmp/usr/bin/mh/read
	chmod 755 debian/tmp/usr/bin/mh/read
	install -d debian/tmp/usr/bin/bin
	touch debian/tmp/usr/bin/bin/bad
	chmod 755 debian/tmp/usr/bin/bin/bad

	# Create some files with invalid ownership.
	set -e; for owner in 100:0 0:2001 30001:65535 65535:65001; do \
	      touch debian/tmp/usr/lib/filenames/wrong-owner-$$owner ; \
	      chmod 644 debian/tmp/usr/lib/filenames/wrong-owner-$$owner ; \
	      chown "$$owner" debian/tmp/usr/lib/filenames/wrong-owner-$$owner ; \
	done

	install -m 644 debian/changelog debian/tmp/usr/share/doc/filenames/Changes
	gzip -9 debian/tmp/usr/share/doc/filenames/Changes
	ln -s Changes.gz debian/tmp/usr/share/doc/filenames/changelog.gz

	install -d debian/tmp/var/www
	echo foo > debian/tmp/var/www/foo

	install -d debian/tmp/srv/foo
	touch debian/tmp/srv/foo/bar
	install -d debian/tmp/opt/foo
	touch debian/tmp/opt/foo/bar

	install -d debian/tmp/etc/gconf/schemas
	touch debian/tmp/etc/gconf/schemas/test.schema

	install -d debian/tmp/usr/lib/sgml
	touch debian/tmp/usr/lib/sgml/package

	install -d debian/tmp/usr/share/gnome/apps/System
	touch debian/tmp/usr/share/gnome/apps/System/foo.desktop

	install -d debian/tmp/usr/share/filenames
	touch debian/tmp/usr/share/filenames/jquery.js
	touch debian/tmp/usr/share/filenames/jquery.lite.js
	touch debian/tmp/usr/share/filenames/jquery.min.js
	touch debian/tmp/usr/share/filenames/jquery.pack.js
	touch debian/tmp/usr/share/filenames/mochikit.js
	touch debian/tmp/usr/share/filenames/prototype-1.2.3.4.js
	touch debian/tmp/usr/share/filenames/prototype.js
	touch debian/tmp/usr/share/filenames/prototype.js.gz
	touch debian/tmp/usr/share/filenames/scriptaculous.js
	touch debian/tmp/usr/share/filenames/yahoo-dom-event.js
	touch debian/tmp/usr/share/filenames/yahoo-min.js

	ln -s '../filenames/doc/version6.txt.gz' debian/tmp/usr/share/doc/filenames/version.txt.gz
	ln -s ../../share/symlink debian/tmp/usr/lib/filenames/symlink1ok
	ln -s ../../../etc/symlink debian/tmp/usr/lib/filenames/symlink1wrong
	ln -s ../../../../etc/symlink debian/tmp/usr/lib/filenames/symlink2wrong
	ln -s /etc/symlink debian/tmp/usr/lib/filenames/symlink2ok
	ln -s /usr/lib/filenames/symlink2 debian/tmp/usr/lib/filenames/symlink3wrong
	ln -s test debian/tmp/usr/lib/filenames/symlink3ok
	ln -s ../filenames/symlink2 debian/tmp/usr/lib/filenames/symlink4wrong
	ln -s ../menu/../somethingelse debian/tmp/usr/lib/filenames/symlink5wrong
	ln -s ../menu/somethingelse debian/tmp/usr/lib/filenames/symlink4ok
	ln -s ./file4 debian/tmp/usr/lib/filenames/symlink6wrong
	ln -s ../menu/./something debian/tmp/usr/lib/filenames/symlink7wrong
	ln -s ../menu//something debian/tmp/usr/lib/filenames/symlink8wrong
	ln -s ../menu/something/ debian/tmp/usr/lib/filenames/symlink9wrong
	ln -s .. debian/tmp/usr/lib/filenames/symlink5ok+warn
	ln -s . debian/tmp/usr/lib/filenames/symlink6ok+warn
	ln -s / debian/tmp/usr/lib/filenames/symlink7ok+warn
	ln -s ../../.. debian/tmp/usr/lib/filenames/symlink10wrong

# devhelp tests.  Files in /usr/share/gtk-doc/html or /usr/share/devhelp/books
# are okay.  Files elsewhere are okay iff their parent path is symlinked into
# one of those paths.
	install -d debian/tmp/usr/share/devhelp/books/filenames
	echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/a.devhelp
	echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/.devhelp2
	gzip -9 debian/tmp/usr/share/devhelp/books/filenames/.devhelp2
	install -d debian/tmp/usr/share/gtk-doc/html/filenames
	echo 'Not really XML' > debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp
	gzip -9 debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp
	install -d debian/tmp/usr/share/doc/filenames/good-devhelp
	echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/good-devhelp/.devhelp2
	install -d debian/tmp/usr/share/doc/filenames/bad-devhelp
	echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp
	gzip -9 debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp
	ln -s ../../doc/filenames/good-devhelp debian/tmp/usr/share/gtk-doc/html/good
	ln -s ../doc/filenames/bad-devhelp debian/tmp/usr/share/gtk-doc/html/bad

	install -d debian/tmp/usr/share/doc-base
	install -m 644 debian/doc-base debian/tmp/usr/share/doc-base/filenames

	dpkg-gencontrol -pfilenames -Pdebian/tmp
	dpkg --build debian/tmp ..

	install -d debian/filename-games debian/filename-games/DEBIAN
	install -d debian/filename-games/usr debian/filename-games/usr/games debian/filename-games/usr/bin
	echo '#! /bin/sh' > debian/filename-games/usr/bin/test-game
	chmod 755 debian/filename-games/usr/bin/test-game
	dpkg-gencontrol -pfilename-games -Pdebian/filename-games
	dpkg --build debian/filename-games ..

	install -d debian/more-filename-games debian/more-filename-games/DEBIAN
	install -d debian/more-filename-games/usr debian/more-filename-games/usr/games debian/more-filename-games/usr/bin
	echo '#! /bin/sh' > debian/more-filename-games/usr/bin/another-test-game
	echo '#! /bin/sh' > debian/more-filename-games/usr/games/yet-another-test-game
	chmod 755 debian/more-filename-games/usr/bin/another-test-game debian/more-filename-games/usr/games/yet-another-test-game
	dpkg-gencontrol -pmore-filename-games -Pdebian/more-filename-games
	dpkg --build debian/more-filename-games ..

binary: binary-arch binary-indep

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