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.5-RC1 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 22if test "$#" != "1"; then 23 echo "Usage: makedist <version>" >&2 24 exit 1 25fi 26 27VER=$1 ; shift 28 29old_IFS="$IFS" 30IFS=. 31eval set `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | sed -e 's/\./ /'` 32if 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 35fi 36IFS="$old_IFS" 37 38PHPROOT=git@git.php.net:php-src.git 39LT_TARGETS='ltconfig ltmain.sh config.guess config.sub' 40 41if echo '\c' | grep -s c >/dev/null 2>&1 42then 43 ECHO_N="echo -n" 44 ECHO_C="" 45else 46 ECHO_N="echo" 47 ECHO_C='\c' 48fi 49 50MY_OLDPWD=`pwd` 51 52# the destination .tar.gz file 53ARCHIVE=$MY_OLDPWD/php-$VER.tar 54 55# temporary directory used to check out files from SVN 56DIR=php-$VER 57DIRPATH=$MY_OLDPWD/$DIR 58 59if test -d "$DIRPATH"; then 60 echo "The directory $DIR" 61 echo "already exists, rename or remove it and run makedist again." 62 exit 1 63fi 64 65# Export PHP 66$ECHO_N "makedist: exporting tag 'PHP-$VER' from '$PHPROOT'...$ECHO_C" 67git archive --format=tar --remote=$PHPROOT refs/tags/PHP-$VER --prefix=php-$VER/ | (cd $MY_OLDPWD; tar xvf -) || exit 4 68echo "" 69 70cd $DIR || exit 5 71 72# hide away our own versions of libtool-generated files 73for i in $LT_TARGETS; do 74 if test -f "$i"; then 75 mv $i $i.bak 76 cp $i.bak $i 77 fi 78done 79 80# generate some files so people don't need bison, flex and autoconf 81# to install 82set -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. 87rm -f buildmk.stamp 88 89./genfiles 90 91# now restore our versions of libtool-generated files 92for i in $LT_TARGETS; do 93 test -f "$i" && mv $i.bak $i 94done 95 96# removing junk files 97find . -name \*.orig -print0 | xargs -0 rm 98rm -fr autom4te.cache/ 99 100# download pear 101$ECHO_N "makedist: Attempting to download PEAR's phar archive" 102if test ! -x wget; then 103 wget http://pear.php.net/install-pear-nozlib.phar -nd -P pear/ 104else 105 $ECHO_N "Missing wget binary needed for pear download"; 106 exit 7 107fi 108 109cd $MY_OLDPWD 110$ECHO_N "makedist: making gzipped tar archive...$ECHO_C" 111rm -f $ARCHIVE.gz 112tar cf $ARCHIVE php-$VER || exit 8 113gzip -9 $ARCHIVE || exit 9 114echo "" 115 116$ECHO_N "makedist: making bz2zipped tar archive...$ECHO_C" 117rm -f $ARCHIVE.bz2 118tar cf $ARCHIVE php-$VER || exit 10 119bzip2 -9 $ARCHIVE || exit 11 120echo "" 121 122$ECHO_N "makedist: cleaning up...$ECHO_C" 123rm -rf $DIRPATH || exit 12 124echo "" 125 126exit 0 127