X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=util%2Fdist-wget;h=64d7baf6875f83c6d59fd94773de1104f237630a;hb=818e2ae7c051fbffaa17954b095b93170d9d6d13;hp=459e10f9ee63a366d0582ab360f42d90ee9114f5;hpb=b2be7522c745827b521a8ed535201427df32eec7;p=wget diff --git a/util/dist-wget b/util/dist-wget index 459e10f9..64d7baf6 100755 --- a/util/dist-wget +++ b/util/dist-wget @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/sh # Copyright (C) 2001 Free Software Foundation, Inc. @@ -26,67 +26,126 @@ # file, but you are not obligated to do so. If you do not wish to do # so, delete this exception statement from your version. -CVSROOT=:pserver:cvs@sunsite.dk:/pack/anoncvs -DIR=$HOME/work/tmp +## +# +# This script creates a Wget distribution (wget-VERSION.tar.gz). +# It uses `make dist' to do most of the work, but corrects some +# things that `make dist' doesn't and can't do. Specifically: +# +# * Checks out the clean source from the Subversion repository to a +# temporary directory. +# * Runs autoconf, configure and `make' in the doc and po subdirs to +# make sure that all the generated files, such as `configure', +# `wget.info', and translated PO files, end up in the distribution. +# * Optionally changes src/version.c and doc/version.texi to the +# version forced by `--force-version'. +# * Runs `make dist' to produce the archive. +# * Removes the checkout. +# +# For example, to produce a Wget beta based on the latest sources on +# the trunk, with version changed to "1.23-beta10", run `dist-wget +# --force-version 1.23-beta10'. You can choose which sources will be +# used by specifying `-b PATH' ("trunk" by default) in combination +# with one of `-D DATE' or `-r REVISION' (the latest revision by +# default). +# +# Use the MAKE environment variable to specify a different version of +# make, for example MAKE=gmake dist-wget ... +# +## + +set -e + +SVNURL=http://svn.dotsrc.org/repo/wget/ +SUBDIR=wget.checkout.$$ DEBUG=no -CHECKOUT=yes -for arg; do - case "$arg" in +EXPORT_PATH=trunk +EXPORT_REVISION=HEAD +VERSION= +MAKE=${MAKE-make} + +if test x"$TMPDIR" = x +then + TMPDIR=/tmp +fi +DEST_DIR=`pwd` + +while test x"$*" != x +do + case "$1" in -d) DEBUG=yes ;; - --no-checkout) - CHECKOUT=no + -b) + shift + EXPORT_PATH=$1 + ;; + -D) + shift + # Subversion uses the -r {DATE} syntax for specifying revisions + # based on dates. + EXPORT_REVISION={$1} + ;; + -r) + shift + EXPORT_REVISION=$1 + ;; + --force-version) + shift + VERSION=$1 ;; *) - echo "Usage: $0 [-d] [--no-checkout]" >&2 + echo "Usage: $0 [-d] [-b BRANCH] [-r TAG | -D DATE]" >&2 exit 1 esac + shift done # Resolve echo -n incompatibilities. e_n=-n e_c= -if test "`(echo foo; echo -n bar) | tr '[\012]' x`" != fooxbar; then +if test x"`(echo -n foo; echo bar)`" != xfoobar; then e_n= e_c='\c' fi # File for output/errors redirection. -O=$DIR/dist-output +O=$DEST_DIR/dist-output -cd $DIR +cd $TMPDIR -echo "Building wget dist in $DIR." -echo "Output from commands is in $DIR/dist-output." +echo "Building wget dist in $TMPDIR/$SUBDIR." +echo "Output from commands is in $O." echo "-----------" >$O -if test $CHECKOUT = yes; then - # Checkout clean sources from the repository. - echo $e_n "Checking out CVS sources from the repository... $e_c" - rm -rf wget 1>>$O 2>&1 - cvs -d $CVSROOT checkout wget 1>>$O 2>&1 - echo "done." -fi +# Checkout clean sources from the repository. +echo $e_n "Exporting $SVNURL$EXPORT_PATH/ (-r $EXPORT_REVISION) to $TMPDIR/$SUBDIR... $e_c" +svn export -r "$EXPORT_REVISION" "$SVNURL/$EXPORT_PATH/" $SUBDIR 1>>$O 2>&1 +echo "done." -cd wget +cd $SUBDIR -# Remove the dummy `Branches' directory. -rm -rf Branches 1>>$O 2>&1 +# Force the version if required. +if test x"$VERSION" != x +then + echo "Forcing version to $VERSION." + echo "char *version_string = \"$VERSION\";" > src/version.c + echo "@set VERSION $VERSION" > doc/version.texi +fi # Create configure and friends. -if ! test -f configure; then - echo $e_n "Creating \`configure' from \`configure.in'... $e_c" - make -f Makefile.cvs 1>>$O 2>&1 +if test ! -f configure; then + echo $e_n "Creating \`configure' and \`src/config.h'... $e_c" + ./autogen.sh 1>>$O 2>&1 echo "done." fi # Remove `Makefile' if it already exists. if test -f Makefile; then - echo $e_n "Cleaning old Makefiles with \`make distclean'... $e_c" - make distclean 1>>$O 2>&1 + echo $e_n "Cleaning old Makefiles with \`$MAKE distclean'... $e_c" + $MAKE distclean 1>>$O 2>&1 echo "done." fi @@ -98,25 +157,26 @@ echo "done." # Now build the MO files. echo $e_n "Building MO files out of PO files... $e_c" cd po -make 1>>$O 2>&1 +$MAKE 1>>$O 2>&1 cd .. echo "done." # Now build the Info documentation and the man page. echo $e_n "Building Info and man documentation... $e_c" cd doc -make 1>>$O 2>&1 +$MAKE 1>>$O 2>&1 cd .. echo "done." # Create the distribution file. echo $e_n "Creating distribution tarball... $e_c" -make dist 1>>$O 2>&1 -mv wget-*.tar.gz ../ -echo "done." +$MAKE dist 1>>$O 2>&1 +archive=`echo wget-*.tar.gz` +mv "$archive" $DEST_DIR +echo "$archive" cd .. -if test $DEBUG = no && test $CHECKOUT = yes; then - rm -rf wget 1>>$O 2>&1 +if test $DEBUG = no; then + rm -rf $SUBDIR 1>>$O 2>&1 fi