LC_ALL=C
export LC_ALL
+usage() {
+ echo >&2 "\
+Usage: $0 [OPTION]...
+Bootstrap this package from the CVS sources.
+
+Options:
+ --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.
+ --force Bootstrap even if the sources didn't come from CVS.
+ --skip-po Do not download po files.
+ --cvs-user=USERNAME Set the CVS username to be used when accessing
+ the gnulib repository.
+
+If the file .bootstrap.conf exists in the current working directory, its
+contents are read as shell variables to configure the bootstrap.
+
+Running without arguments will suffice in most cases.
+"
+}
# Configuration.
# Files we don't want to import.
excluded_files=
+# File that should exist with CVS checkout, but not with
+# the distributed version.
+CVS_only_file=CVS
+
# Override the default configuration, if necessary.
test -r bootstrap.conf && . ./bootstrap.conf
do
case $option in
--help)
- echo "$0: usage: $0 [--gnulib-srcdir=DIR] [--cvs-user=USERNAME] [--skip-po]"
+ usage
exit;;
--gnulib-srcdir=*)
GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
CVS_USER=`expr "$option" : '--cvs-user=\(.*\)'`;;
--skip-po)
SKIP_PO=t;;
+ --force)
+ CVS_only_file=;;
*)
echo >&2 "$0: $option: unknown option"
exit 1;;
esac
done
+if test -n "$CVS_only_file" && test ! -r "$CVS_only_file"; then
+ echo "$0: Bootstrapping from a non-CVS distribution is a bit risky." >&2
+ exit 1
+fi
+
echo "$0: Bootstrapping CVS $package..."
cleanup_gnulib() {
if test $file = Makefile.am; then
copied=$copied${sep}gnulib.mk; sep=$nl
remove_intl='/^[^#].*\/intl/s/^/#/'
- sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/gnulib.mk || {
+ no_dep=no-dependencies
+ remove_no_dep="/^AUTOMAKE_OPTIONS =.* $no_dep/s/ $no_dep//"
+ sed_xform="$remove_intl;$remove_no_dep"
+ sed "$sed_xform" $1/$dir/$file | cmp -s - $dir/gnulib.mk || {
echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." &&
rm -f $dir/gnulib.mk &&
- sed "$remove_intl" $1/$dir/$file >$dir/gnulib.mk
+ sed "$sed_xform" $1/$dir/$file >$dir/gnulib.mk
}
elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
--m4-base $bt/m4/\
--source-base $bt/lib/\
--tests-base $bt/tests\
+ --local-dir gl\
"
echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
$gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
' po/Makevars.template >po/Makevars
if test -d runtime-po; then
- # Likewise for runtime-po/Makevars, except also change a few other parameters.
+ # Similarly for runtime-po/Makevars, but not quite the same.
rm -f runtime-po/Makevars
sed '
- s/^\(DOMAIN\) *=.*/\1 = '"$package"'-runtime/
- s/^\(subdir\) *=.*/\1 = runtime-po/
- s/^\(XGETTEXT_OPTIONS\) *=.*/\1 = '"$XGETTEXT_OPTIONS_RUNTIME"'/
- ' <po/Makevars >runtime-po/Makevars
+ /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
+ /^subdir *=.*/s/=.*/= runtime-po/
+ /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
+ /^XGETTEXT_OPTIONS *=/{
+ s/$/ \\/
+ a\
+ '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
+ }
+ ' <po/Makevars.template >runtime-po/Makevars
# Copy identical files from po to runtime-po.
(cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)