| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 | #! /bin/sh# Bootstrap 'tar' from CVS.# Copyright (C) 2003, 2004 Free Software Foundation, Inc.# This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.# This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.# You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA# 02111-1307, USA.# Written by Paul Eggert and Sergey Poznyakoff.# URL of our text domain page in Translation ProjectTP_URL="http://www2.iro.umontreal.ca/~gnutra/po/maint/tar/"# Ensure file names are sorted consistently across platforms;# e.g., m4/ulonglong_gl.m4 should follow m4/ulonglong.m4.LC_ALL=Cexport LC_ALLusage() { cat <<EOF usage: $0 [--gnulib-srcdir=DIR][--paxutils-srcdir=DIR][--cvs-auth=AUTH-METHOD][--cvs-user=USERNAME][--no-po] Options are: --paxutils-srcdir=DIRNAME    Specify the local directory where paxutils                              sources reside. Use this if you already                              have paxutils sources on your machine, and                              do not want to waste your bandwidth dowloading                              them again. --gnulib-srcdir=DIRNAME      Specify the local directory where gnulib                              sources reside. Use this if you already                              have gnulib sources on your machine, and                              do not want to waste your bandwidth dowloading                              them again. --cvs-auth=METHOD            Set the CVS access method used for downloading                              gnulib files. METHOD is one of the keywords                              accepted by cvs -d option (see info cvs                              repository). --cvs-user=USERNAME          Set the CVS username to be used when accessing                              the gnulib repository. --no-po                      Do not download po files. --update-po[=LANG]           Update po file(s) and exit. Running without arguments will suffice in most cases. It is equivalentto    ./bootstrap --cvs-auth=ext --cvs-user=anoncvsEOF}update_po() {  if [ $# = 1 ]; then    case $1 in    *.po)  POFILE=$1;;    *)     POFILE=${1}.po;;    esac	    echo "$0: getting translation for $1..."    wget -C off $TP_URL/$POFILE  else    echo "$0: getting translations into po..."    (cd po &&     rm -f dummy `ls | sed -n '/\.gmo$/p; /\.po/p'` &&      wget -nv -nd -r -l 1 -A .po -C off $TP_URL &&      ls *.po | sed 's/\.po$//' >LINGUAS    ) || exit  fi}# Parse options.DOWNLOAD_PO=yesfor optiondo  case $option in  --help)    usage    exit;;  --gnulib-srcdir=*)    GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;  --paxutils-srcdir=*)    PAXUTILS_SRCDIR=`expr "$option" : '--paxutils-srcdir=\(.*\)'`;;  --cvs-auth=*)    CVS_AUTH=`expr "$option" : '--cvs-auth=\(.*\)'`;;  --cvs-user=*)    CVS_USER=`expr "$option" : '--cvs-user=\(.*\)'`;;  --no-po)    DOWNLOAD_PO=no;;  --update-po=*)    DOWNLOAD_PO=`expr "$option" : '--update-po=\(.*\)'`;;  --update-po)    DOWNLOAD_PO=only;;  *)    echo >&2 "$0: $option: unknown option"    exit 1;;  esacdonecase $DOWNLOAD_PO inonly)	update_po	exit 0	;;no|yes) ;;*)	update_po $DOWNLOAD_PO 	exit 0esacecho "$0: Bootstrapping CVS tar..."build_cvs_prefix() {  CVS_PREFIX=:${1}:  if [ "${2}" != - ]; then    CVS_PREFIX=${CVS_PREFIX}${2}@  fi  if [ "$1" = "ext" ]; then    if [ -z "${CVS_RSH}" ]; then       CVS_RSH=ssh       export CVS_RSH    fi  fi}# checkout packagecheckout() {  if [ ! -d $1 ]; then    echo "$0: getting $1 files..."    trap exit 1 2 13 15    trap 'rm -fr $1; exit 1' 0    case "${CVS_AUTH--}" in    -)       build_cvs_prefix ext anoncvs             ;;    pserver) build_cvs_prefix $CVS_AUTH ${CVS_USER:-anoncvs}             ;;    gserver|server)	     build_cvs_prefix $CVS_AUTH ${CVS_USER--}	     ;;    ext)     build_cvs_prefix $CVS_AUTH ${CVS_USER--}             ;;    *)       echo "$0: Unknown CVS access method" >&2	     exit 1;;    esac    if [ "${CVS_AUTH--}" = "pserver" ]; then      cvs -d ${CVS_PREFIX}subversions.gnu.org:/cvsroot/$1 login || exit    fi    cvs -q -d ${CVS_PREFIX}subversions.gnu.org:/cvsroot/$1 co $1 || exit    trap 0  fi}# Get gnulib files.case ${GNULIB_SRCDIR--} in-) checkout gnulib   GNULIB_SRCDIR=gnulibesac<$GNULIB_SRCDIR/gnulib-tool || exitgnulib_modules='allocaargmatchargpbackupfiledirnameerrorexcludefileblocksfnmatch-gnuftruncatefull-writegetdategetlinegetoptgetpagesizegettextgettimehashhumanlchownlocalcharsetmemsetmodechangeobstackquotequoteargrmdirsafe-readsave-cwdsavedirstdboolstpcpystrtolstrtoultimespecunlocked-ioutimexallocxalloc-diexgetcwdxstrtoumax'previous_gnulib_modules=while [ "$gnulib_modules" != "$previous_gnulib_modules" ]; do  previous_gnulib_modules=$gnulib_modules  gnulib_modules=`    (echo "$gnulib_modules"     for gnulib_module in $gnulib_modules; do       $GNULIB_SRCDIR/gnulib-tool --extract-dependencies $gnulib_module     done) | sort -u  `donegnulib_files=`  (for gnulib_module in $gnulib_modules; do     $GNULIB_SRCDIR/gnulib-tool --extract-filelist $gnulib_module   done) | sort -u`gnulib_dirs=`echo "$gnulib_files" | sed 's,/[^/]*$,,' | sort -u`mkdir -p $gnulib_dirs || exitfor gnulib_file in $gnulib_files; do  dest=$gnulib_file  case $gnulib_file in  m4/codeset.m4) continue;;  m4/intdiv0.m4) continue;;  m4/inttypes-pri.m4) continue;;  m4/isc-posix.m4) continue;;  m4/lcmessage.m4) continue;;  m4/onceonly_2_57.m4) dest=m4/onceonly.m4;;  # These will be overwritten by autopoint, which still uses  # old jm_.* macro names, so we have to keep both copies.  m4/gettext.m4 | m4/glibc21.m4 | m4/inttypes_h.m4 | m4/lib-ld.m4 | \  m4/lib-prefix.m4 | m4/po.m4 | m4/stdint_h.m4 | m4/uintmax_t.m4 | \  m4/ulonglong.m4)    dest=`expr $gnulib_file : '\(.*\).m4'`_gl.m4;;  esac  rm -f $dest &&  echo "$0: Copying file $GNULIB_SRCDIR/$gnulib_file" &&  cp -p $GNULIB_SRCDIR/$gnulib_file $dest || exitdoneecho "$0: Creating m4/gnulib.m4"(echo "# This file is generated automatically. Please, do not edit." echo "#" echo "AC_DEFUN([tar_GNULIB],[" for gnulib_module in $gnulib_modules; do    echo "# $gnulib_module"    $GNULIB_SRCDIR/gnulib-tool --extract-autoconf-snippet $gnulib_module done | sed '/AM_GNU_GETTEXT/d' echo "])") > ./m4/gnulib.m4echo "$0: Creating lib/Makefile.am"(cat lib/Makefile.tmpl  for gnulib_module in $gnulib_modules; do    echo "# $gnulib_module"    $GNULIB_SRCDIR/gnulib-tool --extract-automake-snippet $gnulib_module done | sed 's/lib_SOURCES/libtar_a_SOURCES/g' ) > lib/Makefile.am# Get paxutils files case ${PAXUTILS_SRCDIR--} in-) checkout paxutils   PAXUTILS_SRCDIR=paxutilsesac# copy_files srcdir dstdircopy_files() {  for file in `cat $1/DISTFILES`  do    case $file in    "#*")  continue;;    esac    echo "$0: Copying file $1/$file"     cp -p $1/$file $2/`expr $file : '.*/\(.*\)'`  done}copy_files ${PAXUTILS_SRCDIR}/m4 m4 if [ -d rmt ]; then   :else   mkdir rmtficopy_files ${PAXUTILS_SRCDIR}/rmt rmt copy_files ${PAXUTILS_SRCDIR}/lib libcopy_files ${PAXUTILS_SRCDIR}/tests tests# Get translations.if test "$DOWNLOAD_PO" = "yes"; then  update_pofi# Reconfigure, getting other files.echo "$0: autoreconf --verbose --install --force ..."autoreconf --verbose --install --forceecho "$0: done.  Now you can run './configure'."
 |