source: trunk/essentials/net-misc/wget/util/dist-wget

Last change on this file was 3440, checked in by bird, 18 years ago

wget 1.10.2

File size: 4.9 KB
Line 
1#!/bin/sh
2
3# Copyright (C) 2001 Free Software Foundation, Inc.
4
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
19# In addition, as a special exception, the Free Software Foundation
20# gives permission to link the code of its release of Wget with the
21# OpenSSL project's "OpenSSL" library (or with modified versions of it
22# that use the same license as the "OpenSSL" library), and distribute
23# the linked executables. You must obey the GNU General Public License
24# in all respects for all of the code used other than "OpenSSL". If you
25# modify this file, you may extend this exception to your version of the
26# file, but you are not obligated to do so. If you do not wish to do
27# so, delete this exception statement from your version.
28
29##
30#
31# This script creates a Wget distribution (wget-VERSION.tar.gz).
32# It uses `make dist' to do most of the work, but corrects some
33# things that `make dist' doesn't and can't do. Specifically:
34#
35# * Checks out the clean source from the Subversion repository to a
36# temporary directory.
37# * Runs autoconf, configure and `make' in the doc and po subdirs to
38# make sure that all the generated files, such as `configure',
39# `wget.info', and translated PO files, end up in the distribution.
40# * Optionally changes src/version.c and doc/version.texi to the
41# version forced by `--force-version'.
42# * Runs `make dist' to produce the archive.
43# * Removes the checkout.
44#
45# For example, to produce a Wget beta based on the latest sources on
46# the trunk, with version changed to "1.23-beta10", run `dist-wget
47# --force-version 1.23-beta10'. You can choose which sources will be
48# used by specifying `-b PATH' ("trunk" by default) in combination
49# with one of `-D DATE' or `-r REVISION' (the latest revision by
50# default).
51#
52# Use the MAKE environment variable to specify a different version of
53# make, for example MAKE=gmake dist-wget ...
54#
55##
56
57set -e
58
59SVNURL=http://svn.dotsrc.org/repo/wget/
60SUBDIR=wget.checkout.$$
61DEBUG=no
62
63EXPORT_PATH=trunk
64EXPORT_REVISION=HEAD
65VERSION=
66MAKE=${MAKE-make}
67
68if test x"$TMPDIR" = x
69then
70 TMPDIR=/tmp
71fi
72DEST_DIR=`pwd`
73
74while test x"$*" != x
75do
76 case "$1" in
77 -d)
78 DEBUG=yes
79 ;;
80 -b)
81 shift
82 EXPORT_PATH=$1
83 ;;
84 -D)
85 shift
86 # Subversion uses the -r {DATE} syntax for specifying revisions
87 # based on dates.
88 EXPORT_REVISION={$1}
89 ;;
90 -r)
91 shift
92 EXPORT_REVISION=$1
93 ;;
94 --force-version)
95 shift
96 VERSION=$1
97 ;;
98 *)
99 echo "Usage: $0 [-d] [-b BRANCH-PATH] [-r REVISION | -D DATE]" >&2
100 exit 1
101 esac
102 shift
103done
104
105# Resolve echo -n incompatibilities.
106e_n=-n
107e_c=
108if test x"`(echo -n foo; echo bar)`" != xfoobar; then
109 e_n=
110 e_c='\c'
111fi
112
113# File for output/errors redirection.
114O=$DEST_DIR/dist-output
115
116cd $TMPDIR
117
118echo "Building wget dist in $TMPDIR/$SUBDIR."
119echo "Output from commands is in $O."
120
121echo "-----------" >$O
122
123# Checkout clean sources from the repository.
124echo $e_n "Exporting $SVNURL$EXPORT_PATH/ (-r $EXPORT_REVISION) to $TMPDIR/$SUBDIR... $e_c"
125svn export -r "$EXPORT_REVISION" "$SVNURL/$EXPORT_PATH/" $SUBDIR 1>>$O 2>&1
126echo "done."
127
128cd $SUBDIR
129
130# Force the version if required.
131if test x"$VERSION" != x
132then
133 echo "Forcing version to $VERSION."
134 echo "char *version_string = \"$VERSION\";" > src/version.c
135 echo "@set VERSION $VERSION" > doc/version.texi
136fi
137
138# Create configure and friends.
139if test ! -f configure; then
140 echo $e_n "Creating \`configure' and \`src/config.h'... $e_c"
141 ./autogen.sh 1>>$O 2>&1
142 echo "done."
143fi
144
145# Remove `Makefile' if it already exists.
146if test -f Makefile; then
147 echo $e_n "Cleaning old Makefiles with \`$MAKE distclean'... $e_c"
148 $MAKE distclean 1>>$O 2>&1
149 echo "done."
150fi
151
152# Create a new `Makefile'.
153echo $e_n "Running configure... $e_c"
154CFLAGS=-g ./configure 1>>$O 2>&1
155echo "done."
156
157# Now build the MO files.
158echo $e_n "Building MO files out of PO files... $e_c"
159cd po
160$MAKE 1>>$O 2>&1
161cd ..
162echo "done."
163
164# Now build the Info documentation and the man page.
165echo $e_n "Building Info and man documentation... $e_c"
166cd doc
167$MAKE 1>>$O 2>&1
168cd ..
169echo "done."
170
171# Create the distribution file.
172echo $e_n "Creating distribution tarball... $e_c"
173$MAKE dist 1>>$O 2>&1
174archive=`echo wget-*.tar.gz`
175mv "$archive" $DEST_DIR
176echo "$archive"
177
178cd ..
179
180if test $DEBUG = no; then
181 rm -rf $SUBDIR 1>>$O 2>&1
182fi
Note: See TracBrowser for help on using the repository browser.