1: #!/bin/sh
2: #
3: # Distribution generator for git
4: #
5: # Usage: makedist version
6: # Example: makedist 5.4.1
7: # Example: makedist 5.3.5RC1
8: #
9: # To work, this script needs a consistent tagging of all releases.
10: # Each release of a package should have a tag of the form
11: #
12: # php-X.Y.Z[sub]
13: #
14: # The distribution ends up in a .tar.gz file that contains the distribution
15: # in a directory called php-<version>.
16: # A .tar.bz2 file is also created.
17: #
18: # Written by Stig Bakken <ssb@guardian.no> 1997-05-28.
19: # Adapted to git by Stanislav Malyshev <stas@php.net>
20:
21:
22: if test "$#" != "1"; then
23: echo "Usage: makedist <version>" >&2
24: exit 1
25: fi
26:
27: VER=$1 ; shift
28:
29: old_IFS="$IFS"
30: IFS=.
31: eval set `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | sed -e 's/\./ /'`
32: if test "${1}" = "1" -a "${2}" -lt "28"; then
33: echo "You will need bison 1.28 if you want to regenerate the Zend parser (found ${1}.${2}).)"
34: exit 2
35: fi
36: IFS="$old_IFS"
37:
38: PHPROOT=git@git.php.net:php-src.git
39: LT_TARGETS='ltconfig ltmain.sh config.guess config.sub'
40:
41: if echo '\c' | grep -s c >/dev/null 2>&1
42: then
43: ECHO_N="echo -n"
44: ECHO_C=""
45: else
46: ECHO_N="echo"
47: ECHO_C='\c'
48: fi
49:
50: MY_OLDPWD=`pwd`
51:
52: # the destination .tar.gz file
53: ARCHIVE=$MY_OLDPWD/php-$VER.tar
54:
55: # temporary directory used to check out files from SVN
56: DIR=php-$VER
57: DIRPATH=$MY_OLDPWD/$DIR
58:
59: if test -d "$DIRPATH"; then
60: echo "The directory $DIR"
61: echo "already exists, rename or remove it and run makedist again."
62: exit 1
63: fi
64:
65: # Export PHP
66: $ECHO_N "makedist: exporting tag 'php-$VER' from '$PHPROOT'...$ECHO_C"
67: git archive --format=tar --remote=$PHPROOT refs/tags/php-$VER --prefix=php-$VER/ | (cd $MY_OLDPWD; tar xvf -) || exit 4
68: echo ""
69:
70: cd $DIR || exit 5
71:
72: # hide away our own versions of libtool-generated files
73: for i in $LT_TARGETS; do
74: if test -f "$i"; then
75: mv $i $i.bak
76: cp $i.bak $i
77: fi
78: done
79:
80: # generate some files so people don't need bison, flex and autoconf
81: # to install
82: set -x
83: ./buildconf --copy --force
84:
85: # remove buildmk.stamp. Otherwise, buildcheck.sh might not be run,
86: # when a user runs buildconf in the distribution.
87: rm -f buildmk.stamp
88:
89: ./genfiles
90:
91: # now restore our versions of libtool-generated files
92: for i in $LT_TARGETS; do
93: test -f "$i" && mv $i.bak $i
94: done
95:
96: # removing junk files
97: find . -name \*.orig -print0 | xargs -0 rm
98: rm -fr autom4te.cache/
99:
100: # download pear
101: $ECHO_N "makedist: Attempting to download PEAR's phar archive"
102: if test ! -x wget; then
103: wget http://pear.php.net/install-pear-nozlib.phar -nd -P pear/
104: else
105: $ECHO_N "Missing wget binary needed for pear download";
106: exit 7
107: fi
108:
109: cd $MY_OLDPWD
110: $ECHO_N "makedist: making gzipped tar archive...$ECHO_C"
111: rm -f $ARCHIVE.gz
112: tar cf $ARCHIVE php-$VER || exit 8
113: gzip -9 $ARCHIVE || exit 9
114: echo ""
115:
116: $ECHO_N "makedist: making bz2zipped tar archive...$ECHO_C"
117: rm -f $ARCHIVE.bz2
118: tar cf $ARCHIVE php-$VER || exit 10
119: bzip2 -9 $ARCHIVE || exit 11
120: echo ""
121:
122: $ECHO_N "makedist: cleaning up...$ECHO_C"
123: rm -rf $DIRPATH || exit 12
124: echo ""
125:
126: exit 0
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>