3 # Bootstrap 'tar' from CVS.
5 # Copyright (C) 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor, Boston, MA
22 # Written by Paul Eggert and Sergey Poznyakoff.
24 # URL of our text domain page in Translation Project
25 TP_URL
="http://www.iro.umontreal.ca/translation/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
-r -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 rm -f index.html index.html.
[0-9]*
77 ls *.po
| sed 's/\.po$//' >LINGUAS
92 GNULIB_SRCDIR
=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
94 PAXUTILS_SRCDIR
=`expr "$option" : '--paxutils-srcdir=\(.*\)'`;;
96 CVS_AUTH
=`expr "$option" : '--cvs-auth=\(.*\)'`;;
98 CVS_USER
=`expr "$option" : '--cvs-user=\(.*\)'`;;
102 DOWNLOAD_PO
=`expr "$option" : '--update-po=\(.*\)'`;;
106 echo >&2 "$0: $option: unknown option"
116 *) update_po
$DOWNLOAD_PO
120 echo "$0: Bootstrapping CVS tar..."
124 if [ "${2}" != - ]; then
125 CVS_PREFIX
=${CVS_PREFIX}${2}@
127 if [ "$1" = "ext" ]; then
128 if [ -z "${CVS_RSH}" ]; then
138 echo "$0: getting $1 files..."
141 trap 'rm -fr $1; exit 1' 0
143 case "${CVS_AUTH--}" in
144 -) build_cvs_prefix ext anoncvs
146 pserver
) build_cvs_prefix
$CVS_AUTH ${CVS_USER:-anoncvs}
149 build_cvs_prefix
$CVS_AUTH ${CVS_USER--}
151 ext
) build_cvs_prefix
$CVS_AUTH ${CVS_USER--}
153 *) echo "$0: Unknown CVS access method" >&2
156 if [ "${CVS_AUTH--}" = "pserver" ]; then
157 cvs
-d ${CVS_PREFIX}subversions.gnu.org
:/cvsroot
/$1 login
|| exit
159 cvs
-q -d ${CVS_PREFIX}subversions.gnu.org
:/cvsroot
/$1 co
$1 || exit
170 new_gnulib_modules
=`sed '/^[ ]*#/d; /^[ ]*$/d' $*`
171 case $gnulib_modules,$new_gnulib_modules in
172 ?
*,?
*) new_gnulib_modules
=$newline$new_gnulib_modules;;
174 gnulib_modules
=$gnulib_modules$new_gnulib_modules
178 case ${PAXUTILS_SRCDIR--} in
180 PAXUTILS_SRCDIR
=paxutils
183 if [ -r $PAXUTILS_SRCDIR/gnulib.modules
]; then
184 get_modules
$PAXUTILS_SRCDIR/gnulib.modules
187 # copy_files srcdir dstdir
189 for file in `cat $1/DISTFILES`
194 dst
=`echo $file | sed 's^.*/^^'`
195 if [ $# -eq 3 ]; then
201 echo "$0: Copying file $1/$file to $2/$dst"
202 cp -p $1/$file $2/$dst
206 copy_files
${PAXUTILS_SRCDIR}/m4 m4
207 echo "$0: Creating m4/paxutils.m4"
208 (echo "# This file is generated automatically. Please, do not edit."
210 echo "AC_DEFUN([tar_PAXUTILS],["
211 cat ${PAXUTILS_SRCDIR}/m
4/DISTFILES
| sed '/^#/d;s/\(.*\)\.m4/pu_\1/' | tr a
-z A
-Z
212 echo "])") > .
/m
4/paxutils.
m4
220 for dir
in doc rmt lib tests
222 copy_files
${PAXUTILS_SRCDIR}/$dir $dir
225 copy_files
${PAXUTILS_SRCDIR}/paxlib lib pax
229 case ${GNULIB_SRCDIR--} in
234 <$GNULIB_SRCDIR/gnulib
-tool || exit
236 get_modules gnulib.modules
238 gnulib_modules
=`echo "$gnulib_modules" | sort -u`
239 previous_gnulib_modules
=
240 while [ "$gnulib_modules" != "$previous_gnulib_modules" ]; do
241 previous_gnulib_modules
=$gnulib_modules
243 (echo "$gnulib_modules"
244 for gnulib_module in $gnulib_modules; do
245 $GNULIB_SRCDIR/gnulib-tool --extract-dependencies $gnulib_module
251 (for gnulib_module in $gnulib_modules; do
252 $GNULIB_SRCDIR/gnulib-tool --extract-filelist $gnulib_module
256 gnulib_dirs
=`echo "$gnulib_files" | sed 's,/[^/]*$,,' | sort -u`
257 mkdir -p $gnulib_dirs || exit
259 for gnulib_file
in $gnulib_files; do
263 m
4/codeset.
m4) continue;;
264 m
4/intdiv0.
m4) continue;;
265 m
4/inttypes
-pri.
m4) continue;;
266 m
4/isc
-posix.
m4) continue;;
267 m
4/lcmessage.
m4) continue;;
268 m
4/onceonly_2_57.
m4) dest
=m
4/onceonly.
m4;;
269 # These will be overwritten by autopoint, which still uses
270 # old jm_.* macro names, so we have to keep both copies.
271 m
4/gettext.
m4 | m
4/glibc21.
m4 | m
4/inttypes_h.
m4 | m
4/lib
-ld.
m4 | \
272 m
4/lib
-prefix.
m4 | m
4/po.
m4 | m
4/stdint_h.
m4 | m
4/uintmax_t.
m4 | \
274 dest
=`expr $gnulib_file : '\(.*\).m4'`_gl.
m4;;
278 echo "$0: Copying file $GNULIB_SRCDIR/$gnulib_file" &&
279 cp -p $GNULIB_SRCDIR/$gnulib_file $dest || exit
282 echo "$0: Creating m4/gnulib.m4"
283 (echo "# This file is generated automatically. Please, do not edit."
285 echo "AC_DEFUN([tar_GNULIB],["
286 for gnulib_module
in $gnulib_modules; do
287 echo "# $gnulib_module"
288 $GNULIB_SRCDIR/gnulib
-tool --extract-autoconf-snippet $gnulib_module
289 done | sed '/AM_GNU_GETTEXT/d'
290 echo "])") > .
/m
4/gnulib.
m4
292 echo "$0: Creating lib/Makefile.am"
293 (echo "# This file is generated automatically from lib/Makefile.am. Do not edit!"
294 cat lib
/Makefile.tmpl
296 for gnulib_module
in $gnulib_modules; do
297 echo "# $gnulib_module"
298 $GNULIB_SRCDIR/gnulib
-tool --extract-automake-snippet $gnulib_module
299 done | sed 's/lib_SOURCES/libtar_a_SOURCES/g' ) > lib
/Makefile.am
302 if test "$DOWNLOAD_PO" = "yes"; then
306 # Reconfigure, getting other files.
308 echo "$0: autoreconf --verbose --install --force ..."
309 autoreconf
--verbose --install --force || exit 1
312 echo "$0: done. Now you can run './configure'."