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.
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][--cvs-auth=AUTH-METHOD][--cvs-user=USERNAME][--no-po]
36 --gnulib-srcdir=DIRNAME Specify the local directory where gnulib
37 sources reside. Use this if you already
38 have gnulib sources on your machine, and
39 do not want to waste your bandwidth dowloading
41 --cvs-auth=METHOD Set the CVS access method used for downloading
42 gnulib files. METHOD is one of the keywords
43 accepted by cvs -d option (see info cvs
45 --cvs-user=USERNAME Set the CVS username to be used when accessing
46 the gnulib repository.
47 --no-po Do not download po files.
48 --update-po[=LANG] Update po file(s) and exit.
50 Running without arguments will suffice in most cases. It is equivalent
53 ./bootstrap --cvs-auth=ext --cvs-user=anoncvs
64 echo "$0: getting translation for $1..."
65 wget
-C off
$TP_URL/$POFILE
67 echo "$0: getting translations into po..."
69 rm -f dummy
`ls | sed -n '/\.gmo$/p; /\.po/p'` &&
70 wget
-nv -nd -r -l 1 -A .po
-C off
$TP_URL &&
71 ls *.po
| sed 's/\.po$//' >LINGUAS
86 GNULIB_SRCDIR
=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
88 CVS_AUTH
=`expr "$option" : '--cvs-auth=\(.*\)'`;;
90 CVS_USER
=`expr "$option" : '--cvs-user=\(.*\)'`;;
94 DOWNLOAD_PO
=`expr "$option" : '--update-po=\(.*\)'`;;
98 echo >&2 "$0: $option: unknown option"
108 *) update_po
$DOWNLOAD_PO
112 echo "$0: Bootstrapping CVS tar..."
116 if [ "${2}" != - ]; then
117 CVS_PREFIX
=${CVS_PREFIX}${2}@
119 if [ "$1" = "ext" ]; then
120 if [ -z "${CVS_RSH}" ]; then
129 case ${GNULIB_SRCDIR--} in
131 if [ ! -d gnulib
]; then
132 echo "$0: getting gnulib files..."
135 trap 'rm -fr gnulib; exit 1' 0
137 case "${CVS_AUTH--}" in
138 -) build_cvs_prefix ext anoncvs
;;
139 pserver
) build_cvs_prefix
$CVS_AUTH ${CVS_USER:-anoncvs};;
141 build_cvs_prefix
$CVS_AUTH ${CVS_USER--};;
142 ext
) build_cvs_prefix
$CVS_AUTH ${CVS_USER--};;
143 *) echo "$0: Unknown CVS access method" >&2
146 if [ "${CVS_AUTH--}" = "pserver" ]; then
147 cvs
-d ${CVS_PREFIX}subversions.gnu.org
:/cvsroot
/gnulib login
|| exit
149 cvs
-q -d ${CVS_PREFIX}subversions.gnu.org
:/cvsroot
/gnulib co gnulib
|| exit
156 <$GNULIB_SRCDIR/gnulib
-tool || exit
201 previous_gnulib_modules
=
202 while [ "$gnulib_modules" != "$previous_gnulib_modules" ]; do
203 previous_gnulib_modules
=$gnulib_modules
205 (echo "$gnulib_modules"
206 for gnulib_module in $gnulib_modules; do
207 $GNULIB_SRCDIR/gnulib-tool --extract-dependencies $gnulib_module
213 (for gnulib_module in $gnulib_modules; do
214 $GNULIB_SRCDIR/gnulib-tool --extract-filelist $gnulib_module
218 gnulib_dirs
=`echo "$gnulib_files" | sed 's,/[^/]*$,,' | sort -u`
219 mkdir -p $gnulib_dirs || exit
221 for gnulib_file
in $gnulib_files; do
225 m
4/codeset.
m4) continue;;
226 m
4/intdiv0.
m4) continue;;
227 m
4/inttypes
-pri.
m4) continue;;
228 m
4/isc
-posix.
m4) continue;;
229 m
4/lcmessage.
m4) continue;;
230 m
4/onceonly_2_57.
m4) dest
=m
4/onceonly.
m4;;
231 # These will be overwritten by autopoint, which still uses
232 # old jm_.* macro names, so we have to keep both copies.
233 m
4/gettext.
m4 | m
4/glibc21.
m4 | m
4/inttypes_h.
m4 | m
4/lib
-ld.
m4 | \
234 m
4/lib
-prefix.
m4 | m
4/po.
m4 | m
4/stdint_h.
m4 | m
4/uintmax_t.
m4 | \
236 dest
=`expr $gnulib_file : '\(.*\).m4'`_gl.
m4;;
240 echo "$0: Copying file $GNULIB_SRCDIR/$gnulib_file" &&
241 cp -p $GNULIB_SRCDIR/$gnulib_file $dest || exit
244 echo "$0: Creating m4/gnulib.m4"
245 (echo "# This file is generated automatically. Please, do not edit."
247 echo "AC_DEFUN([tar_GNULIB],["
248 for gnulib_module
in $gnulib_modules; do
249 echo "# $gnulib_module"
250 $GNULIB_SRCDIR/gnulib
-tool --extract-autoconf-snippet $gnulib_module
251 done | sed '/AM_GNU_GETTEXT/d'
252 echo "])") > .
/m
4/gnulib.
m4
254 echo "$0: Creating lib/Makefile.am"
255 (cat lib
/Makefile.tmpl
257 for gnulib_module
in $gnulib_modules; do
258 echo "# $gnulib_module"
259 $GNULIB_SRCDIR/gnulib
-tool --extract-automake-snippet $gnulib_module
260 done | sed 's/lib_SOURCES/libtar_a_SOURCES/g' ) > lib
/Makefile.am
263 if test "$DOWNLOAD_PO" = "yes"; then
267 # Reconfigure, getting other files.
269 echo "$0: autoreconf --verbose --install --force ..."
270 autoreconf
--verbose --install --force
273 echo "$0: done. Now you can run './configure'."