summaryrefslogtreecommitdiff
path: root/makedist
blob: de5ebc6d740014c3c9092244982c95b8ab24b0df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/bin/sh
#
# Distribution generator for CVS based packages.
# To work, this script needs a consistent tagging of all releases.
# Each release of a package should have a tag of the form
#
#  <package>_<version>
#
# where <package> is the package name and the CVS module
# and <version> s the version number with underscores instead of dots.
#
# For example: cvs tag php_3_0a1
#
# The distribution ends up in a .tar.gz file that contains the distribution
# in a directory called <package>-<version>.  The distribution contains all
# directories from the CVS module except the one called "nodist", but only
# the files INSTALL, README and config* are included.
#
# Since you can no longer set the CVS password via an env variable, you
# need to have previously done a cvs login for the server and user id
# this script uses so it will have an entry in your ~/.cvspasswd file.
#
# Usage: makedist <package> <version>
#
# Written by Stig Bakken <ssb@guardian.no> 1997-05-28.
#
# $Id$
#

if test "$#" != "2"; then
    echo "Usage: makedist <package> <version>" >&2
    exit 1
fi

PKG=$1 ; shift
VER=$1 ; shift

old_IFS="$IFS"
IFS=.
eval set `bison -V|sed "s/GNU Bison version //"`
if test "$1" = "1" && test "28" -gt "$2"; then
  echo "Please use Bison 1.28 or higher"
  exit 10
fi
IFS="$old_IFS"

PHPROOT=:pserver:cvsread@cvs.php.net:/repository
ZENDROOT=:pserver:cvsread@cvs.zend.com:/repository
PHPMOD=php4
ZENDMOD=Zend
TSRMMOD=TSRM
LT_TARGETS='ltconfig ltmain.sh config.guess config.sub'

if echo '\c' | grep -s c >/dev/null 2>&1
then
    ECHO_N="echo -n"
    ECHO_C=""
else
    ECHO_N="echo"
    ECHO_C='\c'
fi

MY_OLDPWD=`pwd`

# the destination .tar.gz file
ARCHIVE=$MY_OLDPWD/$PKG-$VER.tar

# temporary directory used to check out files from CVS
DIR=$PKG-$VER
DIRPATH=$MY_OLDPWD/$DIR

if test -d "$DIRPATH"; then
    echo "The directory $DIR"
    echo "already exists, rename or remove it and run makedist again."
    exit 1
fi

# version part of the CVS release tag
CVSVER=`echo $VER | sed -e 's/[\.\-]/_/g'`

# CVS release tag
CVSTAG=${PKG}_$CVSVER

if test ! -d $DIRPATH; then
    mkdir -p $DIRPATH || exit 2
fi

#cd $DIRPATH || exit 3

# Export PHP
$ECHO_N "makedist: exporting tag '$CVSTAG' from '$PHPMOD'...$ECHO_C"
cvs -z 9 -d $PHPROOT -Q export -d $DIR -r $CVSTAG $PHPMOD || exit 4
echo ""

# Export the other modules inside the PHP directory
cd $DIR || exit 5

# Export Zend
$ECHO_N "makedist: exporting tag '$CVSTAG' from '$ZENDMOD'...$ECHO_C"
cvs -z 9 -d $ZENDROOT -Q export -r $CVSTAG $ZENDMOD || exit 4
echo ""

# Export TSRM
$ECHO_N "makedist: exporting tag '$CVSTAG' from '$TSRMMOD'...$ECHO_C"
cvs -z 9 -d $ZENDROOT -Q export -r $CVSTAG $TSRMMOD || exit 4
echo ""

# remove CVS stuff...
find . \( \( -name CVS -type d \) -o -name .cvsignore \) -exec rm -rf {} \;

# The full ChangeLog is available separately from lxr.php.net
rm ChangeLog

# hide away our own versions of libtool-generated files
for i in $LT_TARGETS; do
  if test -f "$i"; then
    mv $i $i.bak
    cp $i.bak $i
  fi
done

# generate some files so people don't need bison, flex and autoconf
# to install
set -x
./buildconf --copy

# remove buildmk.stamp. Otherwise, buildcheck.sh might not be run,
# when a user runs buildconf in the distribution.
rm -f buildmk.stamp

./genfiles

# now restore our versions of libtool-generated files
for i in $LT_TARGETS; do
  test -f "$i" && mv $i.bak $i
done

cd $MY_OLDPWD
$ECHO_N "makedist: making gzipped tar archive...$ECHO_C"
tar cf $ARCHIVE $PKG-$VER || exit 8
gzip -9 $ARCHIVE || exit 9
echo ""

$ECHO_N "makedist: cleaning up...$ECHO_C"
rm -rf $DIRPATH || exit 10
echo ""

exit 0