Removed spurious AC_CHECK_LIB(iconv)
[debian/tar] / bootstrap
1 #! /bin/sh
2
3 # Bootstrap 'tar' from CVS.
4
5 # Copyright (C) 2003 Free Software Foundation, Inc.
6
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)
10 # any later version.
11
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.
16
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
20 # 02111-1307, USA.
21
22 # Written by Paul Eggert.
23
24 # URL of our text domain page in Translation Project
25 TP_URL="http://www2.iro.umontreal.ca/~gnutra/po/maint/tar/"
26
27 usage() {
28  cat <<EOF
29  usage: $0 [--gnulib-srcdir=DIR][--cvs-auth=AUTH-METHOD][--cvs-user=USERNAME][--no-po]
30  Options are:
31  --gnulib-srcdir=DIRNAME      Specify the local directory where gnulib
32                               sources reside. Use this if you already
33                               have gnulib sources on your machine, and
34                               do not want to waste your bandwidth dowloading
35                               them again.
36  --cvs-auth=METHOD            Set the CVS access method used for downloading
37                               gnulib files. METHOD is one of the keywords
38                               accepted by cvs -d option (see info cvs
39                               repository).
40  --cvs-user=USERNAME          Set the CVS username to be used when accessing
41                               the gnulib repository.
42  --no-po                      Do not download po files.
43
44 Running without arguments will suffice in most cases. It is equivalent
45 to 
46
47     ./bootstrap --cvs-auth=ext --cvs-user=anoncvs
48     
49 EOF
50 }
51
52 # Parse options.
53
54 DOWNLOAD_PO=yes
55 for option
56 do
57   case $option in
58   --help)
59     usage
60     exit;;
61   --gnulib-srcdir=*)
62     GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
63   --cvs-auth=*)
64     CVS_AUTH=`expr "$option" : '--cvs-auth=\(.*\)'`;;
65   --cvs-user=*)
66     CVS_USER=`expr "$option" : '--cvs-user=\(.*\)'`;;
67   --no-po)
68     DOWNLOAD_PO=no;;
69   *)
70     echo >&2 "$0: $option: unknown option"
71     exit 1;;
72   esac
73 done
74
75 echo "$0: Bootstrapping CVS tar..."
76
77 build_cvs_prefix() {
78   CVS_PREFIX=:${1}:
79   if [ "${2}" != - ]; then
80     CVS_PREFIX=${CVS_PREFIX}${2}@
81   fi
82   if [ "$1" = "ext" ]; then
83     if [ -z "${CVS_RSH}" ]; then
84        CVS_RSH=ssh
85        export CVS_RSH
86     fi
87   fi 
88 }
89
90 # Get gnulib files.
91
92 case ${GNULIB_SRCDIR--} in
93 -)
94   if [ ! -d gnulib ]; then
95     echo "$0: getting gnulib files..."
96
97     trap exit 1 2 13 15
98     trap 'rm -fr gnulib; exit 1' 0
99     
100     case "${CVS_AUTH--}" in
101     -)       build_cvs_prefix ext anoncvs;;
102     pserver) build_cvs_prefix $CVS_AUTH ${CVS_USER:-anoncvs};;
103     gserver|server)
104              build_cvs_prefix $CVS_AUTH ${CVS_USER--};;
105     ext)     build_cvs_prefix $CVS_AUTH ${CVS_USER--};;
106     *)       echo "$0: Unknown CVS access method" >&2
107              exit 1;;
108     esac
109     if [ "${CVS_AUTH--}" = "pserver" ]; then
110       cvs -d ${CVS_PREFIX}subversions.gnu.org:/cvsroot/gnulib login || exit
111     fi
112     cvs -q -d ${CVS_PREFIX}subversions.gnu.org:/cvsroot/gnulib co gnulib || exit
113
114     trap 0
115   fi
116   GNULIB_SRCDIR=gnulib
117 esac
118
119 <$GNULIB_SRCDIR/gnulib-tool || exit
120
121 gnulib_modules='
122 alloca
123 argmatch
124 backupfile
125 dirname
126 error
127 exclude
128 fileblocks
129 fnmatch-gnu
130 ftruncate
131 full-write
132 getdate
133 getline
134 getopt
135 gettext
136 hash
137 human
138 lchown
139 memset
140 modechange
141 obstack
142 quote
143 quotearg
144 rmdir
145 safe-read
146 save-cwd
147 savedir
148 stdbool
149 stpcpy
150 strtol
151 strtoul
152 unlocked-io
153 utime
154 xalloc
155 xgetcwd
156 xstrtoumax
157 '
158
159 previous_gnulib_modules=
160 while [ "$gnulib_modules" != "$previous_gnulib_modules" ]; do
161   previous_gnulib_modules=$gnulib_modules
162   gnulib_modules=`
163     (echo "$gnulib_modules"
164      for gnulib_module in $gnulib_modules; do
165        $GNULIB_SRCDIR/gnulib-tool --extract-dependencies $gnulib_module
166      done) | sort -u
167   `
168 done
169
170 gnulib_files=`
171   (for gnulib_module in $gnulib_modules; do
172      $GNULIB_SRCDIR/gnulib-tool --extract-filelist $gnulib_module
173    done) | sort -u
174 `
175
176 gnulib_dirs=`echo "$gnulib_files" | sed 's,/[^/]*$,,' | sort -u`
177 mkdir -p $gnulib_dirs || exit
178
179 for gnulib_file in $gnulib_files; do
180   dest=$gnulib_file
181
182   case $gnulib_file in
183   m4/codeset.m4) continue;;
184   m4/glibc21.m4) continue;;
185   m4/intdiv0.m4) continue;;
186   m4/inttypes_h.m4) continue;;
187   m4/inttypes.m4) continue;;
188   m4/inttypes-pri.m4) continue;;
189   m4/isc-posix.m4) continue;;
190   m4/lcmessage.m4) continue;;
191   m4/onceonly_2_57.m4) dest=m4/onceonly.m4;;
192   esac
193
194   rm -f $dest &&
195   echo "$0: Copying file $GNULIB_SRCDIR/$gnulib_file" &&
196   cp -p $GNULIB_SRCDIR/$gnulib_file $dest || exit
197 done
198
199
200 # Get translations.
201
202 if test "$DOWNLOAD_PO" = "yes"; then
203   echo "$0: getting translations into po..."
204   (cd po &&
205    rm -f dummy `ls | sed -n '/\.gmo$/p; /\.po/p'` &&
206     wget -nv -nd -r -l 1 -A .po -C off $TP_URL &&
207     ls *.po | sed 's/\.po$//' >LINGUAS
208   ) || exit
209 fi
210
211 # Reconfigure, getting other files.
212
213 echo "$0: autoreconf --verbose --install --force ..."
214 autoreconf --verbose --install --force
215
216
217 echo "$0: done.  Now you can run './configure'."