| 1 | #!/bin/sh |
| 2 | |
| 3 | # Build a Unix source distribution from the Puzzles SVN area. |
| 4 | # |
| 5 | # Pass a numeric argument to have the archive tagged as that SVN |
| 6 | # revision. Otherwise, the script will work it out itself by |
| 7 | # calling `svnversion', or failing that it will not version-tag the |
| 8 | # archive at all. |
| 9 | |
| 10 | case "$#" in |
| 11 | 0) |
| 12 | # Ignore errors; if we can't get a version, we'll have a blank |
| 13 | # string. |
| 14 | rev=`svnversion . 2>/dev/null` |
| 15 | if test "x$rev" = "xexported"; then rev=; fi |
| 16 | ;; |
| 17 | *) |
| 18 | case "$1" in *[!0-9M]*) echo "Malformed revision number '$1'">&2;exit 1;;esac |
| 19 | rev="$1" |
| 20 | ;; |
| 21 | esac |
| 22 | |
| 23 | if test "x$rev" != "x"; then |
| 24 | arcsuffix="-r$rev" |
| 25 | ver="-DREVISION=$rev" |
| 26 | else |
| 27 | arcsuffix= |
| 28 | ver= |
| 29 | fi |
| 30 | |
| 31 | perl mkfiles.pl |
| 32 | |
| 33 | mkdir tmp.$$ |
| 34 | mkdir tmp.$$/puzzles$arcsuffix |
| 35 | mkdir tmp.$$/puzzles$arcsuffix/icons |
| 36 | |
| 37 | # Build Windows Help and text versions of the manual for convenience. |
| 38 | halibut --winhelp=puzzles.hlp --text=puzzles.txt puzzles.but |
| 39 | |
| 40 | # Build a text version of the HACKING document. |
| 41 | halibut --text=HACKING devel.but |
| 42 | |
| 43 | for i in *.c *.m *.h *.R *.rc *.but *.plist *.icns LICENCE README Recipe \ |
| 44 | *.rc2 mkfiles.pl Makefile Makefile.* \ |
| 45 | HACKING puzzles.txt puzzles.hlp puzzles.cnt puzzles.chm \ |
| 46 | icons/Makefile icons/*.{sav,pl,sh} icons/win16pal.xpm \ |
| 47 | icons/*.png icons/*.ico icons/*.rc icons/*.c; do |
| 48 | case $i in |
| 49 | */*) ln -s ../../../$i tmp.$$/puzzles$arcsuffix/$i;; |
| 50 | *) ln -s ../../$i tmp.$$/puzzles$arcsuffix/$i;; |
| 51 | esac |
| 52 | if test "x$ver" != "x"; then |
| 53 | md5sum $i >> tmp.$$/puzzles$arcsuffix/manifest |
| 54 | fi |
| 55 | done |
| 56 | |
| 57 | if test "x$ver" != "x"; then |
| 58 | echo "$ver" >> tmp.$$/puzzles$arcsuffix/version.def |
| 59 | fi |
| 60 | |
| 61 | tar -C tmp.$$ -chzf - puzzles$arcsuffix > ../puzzles$arcsuffix.tar.gz |
| 62 | |
| 63 | rm -rf tmp.$$ |