3 # Bootstrap 'tar' from CVS.
5 # Copyright (C) 2003, 2004 Free Software Foundation, Inc.
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2, or (at your option)
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
22 # Written by Paul Eggert and Sergey Poznyakoff.
24 # URL of our text domain page in Translation Project
25 TP_URL
="http://www2.iro.umontreal.ca/~gnutra/po/maint/tar/"
27 # Ensure file names are sorted consistently across platforms;
28 # e.g., m4/ulonglong_gl.m4 should follow m4/ulonglong.m4.
34 usage: $0 [--gnulib-srcdir=DIR][--paxutils-srcdir=DIR][--cvs-auth=AUTH-METHOD][--cvs-user=USERNAME][--no-po]
36 --paxutils-srcdir=DIRNAME Specify the local directory where paxutils
37 sources reside. Use this if you already
38 have paxutils sources on your machine, and
39 do not want to waste your bandwidth dowloading
41 --gnulib-srcdir=DIRNAME Specify the local directory where gnulib
42 sources reside. Use this if you already
43 have gnulib sources on your machine, and
44 do not want to waste your bandwidth dowloading
46 --cvs-auth=METHOD Set the CVS access method used for downloading
47 gnulib files. METHOD is one of the keywords
48 accepted by cvs -d option (see info cvs
50 --cvs-user=USERNAME Set the CVS username to be used when accessing
51 the gnulib repository.
52 --no-po Do not download po files.
53 --update-po[=LANG] Update po file(s) and exit.
55 Running without arguments will suffice in most cases. It is equivalent
58 ./bootstrap --cvs-auth=ext --cvs-user=anoncvs
69 echo "$0: getting translation for $1..."
70 wget
-C off
$TP_URL/$POFILE
72 echo "$0: getting translations into po..."
74 rm -f dummy
`ls | sed -n '/\.gmo$/p; /\.po/p'` &&
75 wget
-nv -nd -r -l 1 -A .po
-C off
$TP_URL &&
76 ls *.po
| sed 's/\.po$//' >LINGUAS
91 GNULIB_SRCDIR
=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
93 PAXUTILS_SRCDIR
=`expr "$option" : '--paxutils-srcdir=\(.*\)'`;;
95 CVS_AUTH
=`expr "$option" : '--cvs-auth=\(.*\)'`;;
97 CVS_USER
=`expr "$option" : '--cvs-user=\(.*\)'`;;
101 DOWNLOAD_PO
=`expr "$option" : '--update-po=\(.*\)'`;;
105 echo >&2 "$0: $option: unknown option"
115 *) update_po
$DOWNLOAD_PO
119 echo "$0: Bootstrapping CVS tar..."
123 if [ "${2}" != - ]; then
124 CVS_PREFIX
=${CVS_PREFIX}${2}@
126 if [ "$1" = "ext" ]; then
127 if [ -z "${CVS_RSH}" ]; then
137 echo "$0: getting $1 files..."
140 trap 'rm -fr $1; exit 1' 0
142 case "${CVS_AUTH--}" in
143 -) build_cvs_prefix ext anoncvs
145 pserver
) build_cvs_prefix
$CVS_AUTH ${CVS_USER:-anoncvs}
148 build_cvs_prefix
$CVS_AUTH ${CVS_USER--}
150 ext
) build_cvs_prefix
$CVS_AUTH ${CVS_USER--}
152 *) echo "$0: Unknown CVS access method" >&2
155 if [ "${CVS_AUTH--}" = "pserver" ]; then
156 cvs
-d ${CVS_PREFIX}subversions.gnu.org
:/cvsroot
/$1 login
|| exit
158 cvs
-q -d ${CVS_PREFIX}subversions.gnu.org
:/cvsroot
/$1 co
$1 || exit
166 case ${GNULIB_SRCDIR--} in
171 <$GNULIB_SRCDIR/gnulib
-tool || exit
216 previous_gnulib_modules
=
217 while [ "$gnulib_modules" != "$previous_gnulib_modules" ]; do
218 previous_gnulib_modules
=$gnulib_modules
220 (echo "$gnulib_modules"
221 for gnulib_module in $gnulib_modules; do
222 $GNULIB_SRCDIR/gnulib-tool --extract-dependencies $gnulib_module
228 (for gnulib_module in $gnulib_modules; do
229 $GNULIB_SRCDIR/gnulib-tool --extract-filelist $gnulib_module
233 gnulib_dirs
=`echo "$gnulib_files" | sed 's,/[^/]*$,,' | sort -u`
234 mkdir -p $gnulib_dirs || exit
236 for gnulib_file
in $gnulib_files; do
240 m
4/codeset.
m4) continue;;
241 m
4/intdiv0.
m4) continue;;
242 m
4/inttypes
-pri.
m4) continue;;
243 m
4/isc
-posix.
m4) continue;;
244 m
4/lcmessage.
m4) continue;;
245 m
4/onceonly_2_57.
m4) dest
=m
4/onceonly.
m4;;
246 # These will be overwritten by autopoint, which still uses
247 # old jm_.* macro names, so we have to keep both copies.
248 m
4/gettext.
m4 | m
4/glibc21.
m4 | m
4/inttypes_h.
m4 | m
4/lib
-ld.
m4 | \
249 m
4/lib
-prefix.
m4 | m
4/po.
m4 | m
4/stdint_h.
m4 | m
4/uintmax_t.
m4 | \
251 dest
=`expr $gnulib_file : '\(.*\).m4'`_gl.
m4;;
255 echo "$0: Copying file $GNULIB_SRCDIR/$gnulib_file" &&
256 cp -p $GNULIB_SRCDIR/$gnulib_file $dest || exit
259 echo "$0: Creating m4/gnulib.m4"
260 (echo "# This file is generated automatically. Please, do not edit."
262 echo "AC_DEFUN([tar_GNULIB],["
263 for gnulib_module
in $gnulib_modules; do
264 echo "# $gnulib_module"
265 $GNULIB_SRCDIR/gnulib
-tool --extract-autoconf-snippet $gnulib_module
266 done | sed '/AM_GNU_GETTEXT/d'
267 echo "])") > .
/m
4/gnulib.
m4
269 echo "$0: Creating lib/Makefile.am"
270 (cat lib
/Makefile.tmpl
272 for gnulib_module
in $gnulib_modules; do
273 echo "# $gnulib_module"
274 $GNULIB_SRCDIR/gnulib
-tool --extract-automake-snippet $gnulib_module
275 done | sed 's/lib_SOURCES/libtar_a_SOURCES/g' ) > lib
/Makefile.am
278 case ${PAXUTILS_SRCDIR--} in
280 PAXUTILS_SRCDIR
=paxutils
283 # copy_files srcdir dstdir
285 for file in `cat $1/DISTFILES`
290 echo "$0: Copying file $1/$file"
291 cp -p $1/$file $2/`expr $file : '.*/\(.*\)'`
295 copy_files
${PAXUTILS_SRCDIR}/m4 m4
303 copy_files
${PAXUTILS_SRCDIR}/rmt rmt
305 copy_files
${PAXUTILS_SRCDIR}/lib lib
307 copy_files
${PAXUTILS_SRCDIR}/tests tests
310 if test "$DOWNLOAD_PO" = "yes"; then
314 # Reconfigure, getting other files.
316 echo "$0: autoreconf --verbose --install --force ..."
317 autoreconf
--verbose --install --force
320 echo "$0: done. Now you can run './configure'."