mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-19 17:23:02 +00:00
maint: ./bootstrap
This commit is contained in:
451
autogen.sh
451
autogen.sh
@@ -4,7 +4,7 @@
|
|||||||
# also regenerates all aclocal.m4, config.h.in, Makefile.in, configure files
|
# also regenerates all aclocal.m4, config.h.in, Makefile.in, configure files
|
||||||
# with new versions of autoconf or automake.
|
# with new versions of autoconf or automake.
|
||||||
|
|
||||||
# Copyright (C) 2003-2022 Free Software Foundation, Inc.
|
# Copyright (C) 2003-2025 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -30,457 +30,10 @@
|
|||||||
# Alternatively, you can use an autogen.sh script that is specific
|
# Alternatively, you can use an autogen.sh script that is specific
|
||||||
# to your package.
|
# to your package.
|
||||||
|
|
||||||
scriptversion=2022-07-24.15; # UTC
|
|
||||||
|
|
||||||
me="$0"
|
me="$0"
|
||||||
medir=`dirname "$me"`
|
medir=`dirname "$me"`
|
||||||
|
|
||||||
# Read the function library and the configuration.
|
# Read the function library and the configuration.
|
||||||
. "$medir"/bootstrap-funclib.sh
|
. "$medir"/bootstrap-funclib.sh
|
||||||
|
|
||||||
# Ensure that CDPATH is not set. Otherwise, the output from cd
|
autogen "$@"
|
||||||
# would cause trouble in at least one use below.
|
|
||||||
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
|
||||||
|
|
||||||
# Environment variables that may be set by the user.
|
|
||||||
: "${AUTOPOINT=autopoint}"
|
|
||||||
: "${AUTORECONF=autoreconf}"
|
|
||||||
|
|
||||||
if test "$vc_ignore" = auto; then
|
|
||||||
vc_ignore=
|
|
||||||
test -d .git && vc_ignore=.gitignore
|
|
||||||
test -d CVS && vc_ignore="$vc_ignore .cvsignore"
|
|
||||||
fi
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
cat <<EOF
|
|
||||||
Usage: $me [OPTION]...
|
|
||||||
Bootstrap this package from the checked-out sources.
|
|
||||||
|
|
||||||
Optional environment variables:
|
|
||||||
GNULIB_SRCDIR Specifies the local directory where gnulib
|
|
||||||
sources reside. Use this if you already
|
|
||||||
have gnulib sources on your machine, and
|
|
||||||
you want to use these sources.
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--copy copy files instead of creating symbolic links
|
|
||||||
--force attempt to bootstrap even if the sources seem
|
|
||||||
not to have been checked out
|
|
||||||
EOF
|
|
||||||
bootstrap_print_option_usage_hook
|
|
||||||
cat <<EOF
|
|
||||||
If the file bootstrap.conf exists in the same directory as this script, its
|
|
||||||
contents are read as shell variables to configure the bootstrap.
|
|
||||||
|
|
||||||
For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
|
|
||||||
are honored.
|
|
||||||
|
|
||||||
Gnulib sources are assumed to be present:
|
|
||||||
* in \$GNULIB_SRCDIR, if that environment variable is set,
|
|
||||||
* otherwise, in the 'gnulib' submodule, if such a submodule is configured,
|
|
||||||
* otherwise, in the 'gnulib' subdirectory.
|
|
||||||
|
|
||||||
Running without arguments will suffice in most cases.
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
# Parse options.
|
|
||||||
|
|
||||||
# Whether to use copies instead of symlinks.
|
|
||||||
copy=false
|
|
||||||
|
|
||||||
for option
|
|
||||||
do
|
|
||||||
case $option in
|
|
||||||
--help)
|
|
||||||
usage
|
|
||||||
exit;;
|
|
||||||
--version)
|
|
||||||
set -e
|
|
||||||
echo "autogen.sh $scriptversion"
|
|
||||||
echo "$copyright"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
--force)
|
|
||||||
checkout_only_file=;;
|
|
||||||
--copy)
|
|
||||||
copy=true;;
|
|
||||||
*)
|
|
||||||
bootstrap_option_hook $option || die "$option: unknown option";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|
|
||||||
|| die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
|
|
||||||
|
|
||||||
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
|
|
||||||
die "Running this script from a non-checked-out distribution is risky."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if $use_gnulib; then
|
|
||||||
if test -z "$GNULIB_SRCDIR"; then
|
|
||||||
gnulib_path=$(test -f .gitmodules && git config --file .gitmodules submodule.gnulib.path)
|
|
||||||
test -z "$gnulib_path" && gnulib_path=gnulib
|
|
||||||
GNULIB_SRCDIR=$gnulib_path
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
version_controlled_file() {
|
|
||||||
parent=$1
|
|
||||||
file=$2
|
|
||||||
if test -d .git; then
|
|
||||||
git rm -n "$file" > /dev/null 2>&1
|
|
||||||
elif test -d .svn; then
|
|
||||||
svn log -r HEAD "$file" > /dev/null 2>&1
|
|
||||||
elif test -d CVS; then
|
|
||||||
grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null |
|
|
||||||
grep '^/[^/]*/[0-9]' > /dev/null
|
|
||||||
else
|
|
||||||
warn_ "no version control for $file?"
|
|
||||||
false
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Strip blank and comment lines to leave significant entries.
|
|
||||||
gitignore_entries() {
|
|
||||||
sed '/^#/d; /^$/d' "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
# If $STR is not already on a line by itself in $FILE, insert it at the start.
|
|
||||||
# Entries are inserted at the start of the ignore list to ensure existing
|
|
||||||
# entries starting with ! are not overridden. Such entries support
|
|
||||||
# whitelisting exceptions after a more generic blacklist pattern.
|
|
||||||
insert_if_absent() {
|
|
||||||
file=$1
|
|
||||||
str=$2
|
|
||||||
test -f $file || touch $file
|
|
||||||
test -r $file || die "Error: failed to read ignore file: $file"
|
|
||||||
duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
|
|
||||||
if [ "$duplicate_entries" ] ; then
|
|
||||||
die "Error: Duplicate entries in $file: " $duplicate_entries
|
|
||||||
fi
|
|
||||||
linesold=$(gitignore_entries $file | wc -l)
|
|
||||||
linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l)
|
|
||||||
if [ $linesold != $linesnew ] ; then
|
|
||||||
{ echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
|
|
||||||
|| die "insert_if_absent $file $str: failed"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
|
|
||||||
# insert_if_absent.
|
|
||||||
insert_vc_ignore() {
|
|
||||||
vc_ignore_file="$1"
|
|
||||||
pattern="$2"
|
|
||||||
case $vc_ignore_file in
|
|
||||||
*.gitignore)
|
|
||||||
# A .gitignore entry that does not start with '/' applies
|
|
||||||
# recursively to subdirectories, so prepend '/' to every
|
|
||||||
# .gitignore entry.
|
|
||||||
pattern=$(echo "$pattern" | sed s,^,/,);;
|
|
||||||
esac
|
|
||||||
insert_if_absent "$vc_ignore_file" "$pattern"
|
|
||||||
}
|
|
||||||
|
|
||||||
symlink_to_dir()
|
|
||||||
{
|
|
||||||
src=$1/$2
|
|
||||||
dst=${3-$2}
|
|
||||||
|
|
||||||
test -f "$src" && {
|
|
||||||
|
|
||||||
# If the destination directory doesn't exist, create it.
|
|
||||||
# This is required at least for "lib/uniwidth/cjk.h".
|
|
||||||
dst_dir=$(dirname "$dst")
|
|
||||||
if ! test -d "$dst_dir"; then
|
|
||||||
mkdir -p "$dst_dir"
|
|
||||||
|
|
||||||
# If we've just created a directory like lib/uniwidth,
|
|
||||||
# tell version control system(s) it's ignorable.
|
|
||||||
# FIXME: for now, this does only one level
|
|
||||||
parent=$(dirname "$dst_dir")
|
|
||||||
for dot_ig in x $vc_ignore; do
|
|
||||||
test $dot_ig = x && continue
|
|
||||||
ig=$parent/$dot_ig
|
|
||||||
insert_vc_ignore $ig "${dst_dir##*/}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if $copy; then
|
|
||||||
{
|
|
||||||
test ! -h "$dst" || {
|
|
||||||
echo "$me: rm -f $dst" &&
|
|
||||||
rm -f "$dst"
|
|
||||||
}
|
|
||||||
} &&
|
|
||||||
test -f "$dst" &&
|
|
||||||
cmp -s "$src" "$dst" || {
|
|
||||||
echo "$me: cp -fp $src $dst" &&
|
|
||||||
cp -fp "$src" "$dst"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
# Leave any existing symlink alone, if it already points to the source,
|
|
||||||
# so that broken build tools that care about symlink times
|
|
||||||
# aren't confused into doing unnecessary builds. Conversely, if the
|
|
||||||
# existing symlink's timestamp is older than the source, make it afresh,
|
|
||||||
# so that broken tools aren't confused into skipping needed builds. See
|
|
||||||
# <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00326.html>.
|
|
||||||
test -h "$dst" &&
|
|
||||||
src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
|
|
||||||
dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
|
|
||||||
test "$src_i" = "$dst_i" &&
|
|
||||||
both_ls=$(ls -dt "$src" "$dst") &&
|
|
||||||
test "X$both_ls" = "X$dst$nl$src" || {
|
|
||||||
dot_dots=
|
|
||||||
case $src in
|
|
||||||
/*) ;;
|
|
||||||
*)
|
|
||||||
case /$dst/ in
|
|
||||||
*//* | */../* | */./* | /*/*/*/*/*/)
|
|
||||||
die "invalid symlink calculation: $src -> $dst";;
|
|
||||||
/*/*/*/*/) dot_dots=../../../;;
|
|
||||||
/*/*/*/) dot_dots=../../;;
|
|
||||||
/*/*/) dot_dots=../;;
|
|
||||||
esac;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo "$me: ln -fs $dot_dots$src $dst" &&
|
|
||||||
ln -fs "$dot_dots$src" "$dst"
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
|
|
||||||
found_aux_dir=no
|
|
||||||
grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'])' configure.ac \
|
|
||||||
>/dev/null && found_aux_dir=yes
|
|
||||||
grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
|
|
||||||
>/dev/null && found_aux_dir=yes
|
|
||||||
test $found_aux_dir = yes \
|
|
||||||
|| die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it"
|
|
||||||
|
|
||||||
# If $build_aux doesn't exist, create it now, otherwise some bits
|
|
||||||
# below will malfunction. If creating it, also mark it as ignored.
|
|
||||||
if test ! -d $build_aux; then
|
|
||||||
mkdir $build_aux
|
|
||||||
for dot_ig in x $vc_ignore; do
|
|
||||||
test $dot_ig = x && continue
|
|
||||||
insert_vc_ignore $dot_ig $build_aux
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
check_build_prerequisites false
|
|
||||||
|
|
||||||
use_libtool=0
|
|
||||||
# We'd like to use grep -E, to see if any of LT_INIT,
|
|
||||||
# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
|
|
||||||
# but that's not portable enough (e.g., for Solaris).
|
|
||||||
grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
|
|
||||||
&& use_libtool=1
|
|
||||||
grep '^[ ]*LT_INIT' configure.ac >/dev/null \
|
|
||||||
&& use_libtool=1
|
|
||||||
if test $use_libtool = 1; then
|
|
||||||
find_tool LIBTOOLIZE glibtoolize libtoolize
|
|
||||||
fi
|
|
||||||
|
|
||||||
if $use_gnulib; then
|
|
||||||
gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
|
|
||||||
<$gnulib_tool || exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NOTE: we have to be careful to run both autopoint and libtoolize
|
|
||||||
# before gnulib-tool, since gnulib-tool is likely to provide newer
|
|
||||||
# versions of files "installed" by these two programs.
|
|
||||||
# Then, *after* gnulib-tool (see below), we have to be careful to
|
|
||||||
# run autoreconf in such a way that it does not run either of these
|
|
||||||
# two just-pre-run programs.
|
|
||||||
|
|
||||||
# Import from gettext.
|
|
||||||
with_gettext=yes
|
|
||||||
grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
|
|
||||||
with_gettext=no
|
|
||||||
|
|
||||||
if test $with_gettext = yes || test $use_libtool = 1; then
|
|
||||||
|
|
||||||
tempbase=.bootstrap$$
|
|
||||||
trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15
|
|
||||||
|
|
||||||
> $tempbase.0 > $tempbase.1 &&
|
|
||||||
find . ! -type d -print | sort > $tempbase.0 || exit
|
|
||||||
|
|
||||||
if test $with_gettext = yes; then
|
|
||||||
# Released autopoint has the tendency to install macros that have been
|
|
||||||
# obsoleted in current gnulib, so run this before gnulib-tool.
|
|
||||||
echo "$0: $AUTOPOINT --force"
|
|
||||||
$AUTOPOINT --force || exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Autoreconf runs aclocal before libtoolize, which causes spurious
|
|
||||||
# warnings if the initial aclocal is confused by the libtoolized
|
|
||||||
# (or worse out-of-date) macro directory.
|
|
||||||
# libtoolize 1.9b added the --install option; but we support back
|
|
||||||
# to libtoolize 1.5.22, where the install action was default.
|
|
||||||
if test $use_libtool = 1; then
|
|
||||||
install=
|
|
||||||
case $($LIBTOOLIZE --help) in
|
|
||||||
*--install*) install=--install ;;
|
|
||||||
esac
|
|
||||||
echo "running: $LIBTOOLIZE $install --copy"
|
|
||||||
$LIBTOOLIZE $install --copy
|
|
||||||
fi
|
|
||||||
|
|
||||||
find . ! -type d -print | sort >$tempbase.1
|
|
||||||
old_IFS=$IFS
|
|
||||||
IFS=$nl
|
|
||||||
for file in $(comm -13 $tempbase.0 $tempbase.1); do
|
|
||||||
IFS=$old_IFS
|
|
||||||
parent=${file%/*}
|
|
||||||
version_controlled_file "$parent" "$file" || {
|
|
||||||
for dot_ig in x $vc_ignore; do
|
|
||||||
test $dot_ig = x && continue
|
|
||||||
ig=$parent/$dot_ig
|
|
||||||
insert_vc_ignore "$ig" "${file##*/}"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
done
|
|
||||||
IFS=$old_IFS
|
|
||||||
|
|
||||||
rm -f $tempbase.0 $tempbase.1
|
|
||||||
trap - 1 2 13 15
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Import from gnulib.
|
|
||||||
|
|
||||||
if $use_gnulib; then
|
|
||||||
gnulib_tool_options="\
|
|
||||||
--no-changelog\
|
|
||||||
--aux-dir=$build_aux\
|
|
||||||
--doc-base=$doc_base\
|
|
||||||
--lib=$gnulib_name\
|
|
||||||
--m4-base=$m4_base/\
|
|
||||||
--source-base=$source_base/\
|
|
||||||
--tests-base=$tests_base\
|
|
||||||
--local-dir=$local_gl_dir\
|
|
||||||
$gnulib_tool_option_extras\
|
|
||||||
"
|
|
||||||
if test $use_libtool = 1; then
|
|
||||||
case "$gnulib_tool_options " in
|
|
||||||
*' --libtool '*) ;;
|
|
||||||
*) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
|
|
||||||
$gnulib_tool $gnulib_tool_options --import $gnulib_modules \
|
|
||||||
|| die "gnulib-tool failed"
|
|
||||||
|
|
||||||
for file in $gnulib_files; do
|
|
||||||
symlink_to_dir "$GNULIB_SRCDIR" $file \
|
|
||||||
|| die "failed to symlink $file"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
bootstrap_post_import_hook \
|
|
||||||
|| die "bootstrap_post_import_hook failed"
|
|
||||||
|
|
||||||
# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
|
|
||||||
# gnulib-populated directories. Such .m4 files would cause aclocal to fail.
|
|
||||||
# The following requires GNU find 4.2.3 or newer. Considering the usual
|
|
||||||
# portability constraints of this script, that may seem a very demanding
|
|
||||||
# requirement, but it should be ok. Ignore any failure, which is fine,
|
|
||||||
# since this is only a convenience to help developers avoid the relatively
|
|
||||||
# unusual case in which a symlinked-to .m4 file is git-removed from gnulib
|
|
||||||
# between successive runs of this script.
|
|
||||||
find "$m4_base" "$source_base" \
|
|
||||||
-depth \( -name '*.m4' -o -name '*.[ch]' \) \
|
|
||||||
-type l -xtype l -delete > /dev/null 2>&1
|
|
||||||
|
|
||||||
# Invoke autoreconf with --force --install to ensure upgrades of tools
|
|
||||||
# such as ylwrap.
|
|
||||||
AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS"
|
|
||||||
|
|
||||||
# Some systems (RHEL 5) are using ancient autotools, for which the
|
|
||||||
# --no-recursive option had not been invented. Detect that lack and
|
|
||||||
# omit the option when it's not supported. FIXME in 2017: remove this
|
|
||||||
# hack when RHEL 5 autotools are updated, or when they become irrelevant.
|
|
||||||
case $($AUTORECONF --help) in
|
|
||||||
*--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Tell autoreconf not to invoke autopoint or libtoolize; they were run above.
|
|
||||||
echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS"
|
|
||||||
AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \
|
|
||||||
|| die "autoreconf failed"
|
|
||||||
|
|
||||||
# Get some extra files from gnulib, overriding existing files.
|
|
||||||
for file in $gnulib_extra_files; do
|
|
||||||
case $file in
|
|
||||||
*/INSTALL) dst=INSTALL;;
|
|
||||||
build-aux/*) dst=$build_aux/${file#build-aux/};;
|
|
||||||
*) dst=$file;;
|
|
||||||
esac
|
|
||||||
symlink_to_dir "$GNULIB_SRCDIR" $file $dst \
|
|
||||||
|| die "failed to symlink $file"
|
|
||||||
done
|
|
||||||
|
|
||||||
if test $with_gettext = yes; then
|
|
||||||
# Create gettext configuration.
|
|
||||||
echo "$0: Creating po/Makevars from po/Makevars.template ..."
|
|
||||||
rm -f po/Makevars
|
|
||||||
sed '
|
|
||||||
/^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
|
|
||||||
/^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
|
|
||||||
/^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
|
|
||||||
/^XGETTEXT_OPTIONS *=/{
|
|
||||||
s/$/ \\/
|
|
||||||
a\
|
|
||||||
'"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
|
|
||||||
}
|
|
||||||
' po/Makevars.template >po/Makevars \
|
|
||||||
|| die 'cannot generate po/Makevars'
|
|
||||||
|
|
||||||
# If the 'gettext' module is in use, grab the latest Makefile.in.in.
|
|
||||||
# If only the 'gettext-h' module is in use, assume autopoint already
|
|
||||||
# put the correct version of this file into place.
|
|
||||||
case $gnulib_modules in
|
|
||||||
*gettext-h*) ;;
|
|
||||||
*gettext*)
|
|
||||||
cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \
|
|
||||||
|| die "cannot create po/Makefile.in.in"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test -d runtime-po; then
|
|
||||||
# Similarly for runtime-po/Makevars, but not quite the same.
|
|
||||||
rm -f runtime-po/Makevars
|
|
||||||
sed '
|
|
||||||
/^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 \
|
|
||||||
|| die 'cannot generate runtime-po/Makevars'
|
|
||||||
|
|
||||||
# Copy identical files from po to runtime-po.
|
|
||||||
(cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
bootstrap_epilogue
|
|
||||||
|
|
||||||
echo "$0: done. Now you can run './configure'."
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC0"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
|
|||||||
240
autopull.sh
240
autopull.sh
@@ -2,7 +2,7 @@
|
|||||||
# Convenience script for fetching auxiliary files that are omitted from
|
# Convenience script for fetching auxiliary files that are omitted from
|
||||||
# the version control repository of this package.
|
# the version control repository of this package.
|
||||||
|
|
||||||
# Copyright (C) 2003-2022 Free Software Foundation, Inc.
|
# Copyright (C) 2003-2025 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -28,246 +28,10 @@
|
|||||||
# Alternatively, you can use an autopull.sh script that is specific
|
# Alternatively, you can use an autopull.sh script that is specific
|
||||||
# to your package.
|
# to your package.
|
||||||
|
|
||||||
scriptversion=2022-07-24.15; # UTC
|
|
||||||
|
|
||||||
me="$0"
|
me="$0"
|
||||||
medir=`dirname "$me"`
|
medir=`dirname "$me"`
|
||||||
|
|
||||||
# Read the function library and the configuration.
|
# Read the function library and the configuration.
|
||||||
. "$medir"/bootstrap-funclib.sh
|
. "$medir"/bootstrap-funclib.sh
|
||||||
|
|
||||||
# Ensure that CDPATH is not set. Otherwise, the output from cd
|
autopull "$@"
|
||||||
# would cause trouble in at least one use below.
|
|
||||||
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
cat <<EOF
|
|
||||||
Usage: $me [OPTION]...
|
|
||||||
Bootstrap this package from the checked-out sources.
|
|
||||||
|
|
||||||
Optional environment variables:
|
|
||||||
GNULIB_SRCDIR Specifies the local directory where gnulib
|
|
||||||
sources reside. Use this if you already
|
|
||||||
have gnulib sources on your machine, and
|
|
||||||
you want to use these sources.
|
|
||||||
GNULIB_REFDIR Specifies the local directory where a gnulib
|
|
||||||
repository (with a .git subdirectory) resides.
|
|
||||||
Use this if you already have gnulib sources
|
|
||||||
and history on your machine, and do not want
|
|
||||||
to waste your bandwidth downloading them again.
|
|
||||||
GNULIB_URL Cloneable URL of the gnulib repository.
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--bootstrap-sync if this bootstrap script is not identical to
|
|
||||||
the version in the local gnulib sources,
|
|
||||||
update this script, and then restart it with
|
|
||||||
/bin/sh or the shell \$CONFIG_SHELL
|
|
||||||
--no-bootstrap-sync do not check whether bootstrap is out of sync
|
|
||||||
--force attempt to bootstrap even if the sources seem
|
|
||||||
not to have been checked out
|
|
||||||
--no-git do not use git to update gnulib. Requires that
|
|
||||||
\$GNULIB_SRCDIR or the --gnulib-srcdir option
|
|
||||||
points to a gnulib repository with the correct
|
|
||||||
revision
|
|
||||||
--skip-po do not download po files
|
|
||||||
EOF
|
|
||||||
bootstrap_print_option_usage_hook
|
|
||||||
cat <<EOF
|
|
||||||
If the file bootstrap.conf exists in the same directory as this script, its
|
|
||||||
contents are read as shell variables to configure the bootstrap.
|
|
||||||
|
|
||||||
For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
|
|
||||||
are honored.
|
|
||||||
|
|
||||||
Gnulib sources can be fetched in various ways:
|
|
||||||
|
|
||||||
* If the environment variable GNULIB_SRCDIR is set (either as an
|
|
||||||
environment variable or via the --gnulib-srcdir option), then sources
|
|
||||||
are fetched from that local directory. If it is a git repository and
|
|
||||||
the configuration variable GNULIB_REVISION is set in bootstrap.conf,
|
|
||||||
then that revision is checked out.
|
|
||||||
|
|
||||||
* Otherwise, if this package is in a git repository with a 'gnulib'
|
|
||||||
submodule configured, then that submodule is initialized and updated
|
|
||||||
and sources are fetched from there. If GNULIB_REFDIR is set (either
|
|
||||||
as an environment variable or via the --gnulib-refdir option) and is
|
|
||||||
a git repository, then it is used as a reference.
|
|
||||||
|
|
||||||
* Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
|
|
||||||
are cloned into that directory using git from \$GNULIB_URL, defaulting
|
|
||||||
to $default_gnulib_url.
|
|
||||||
If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
|
|
||||||
then that revision is checked out.
|
|
||||||
|
|
||||||
* Otherwise, the existing Gnulib sources in the 'gnulib' directory are
|
|
||||||
used. If it is a git repository and the configuration variable
|
|
||||||
GNULIB_REVISION is set in bootstrap.conf, then that revision is
|
|
||||||
checked out.
|
|
||||||
|
|
||||||
If you maintain a package and want to pin a particular revision of the
|
|
||||||
Gnulib sources that has been tested with your package, then there are
|
|
||||||
two possible approaches: either configure a 'gnulib' submodule with the
|
|
||||||
appropriate revision, or set GNULIB_REVISION (and if necessary
|
|
||||||
GNULIB_URL) in bootstrap.conf.
|
|
||||||
|
|
||||||
Running without arguments will suffice in most cases.
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
# Parse options.
|
|
||||||
|
|
||||||
# Use git to update gnulib sources
|
|
||||||
use_git=true
|
|
||||||
|
|
||||||
for option
|
|
||||||
do
|
|
||||||
case $option in
|
|
||||||
--help)
|
|
||||||
usage
|
|
||||||
exit;;
|
|
||||||
--version)
|
|
||||||
set -e
|
|
||||||
echo "autopull.sh $scriptversion"
|
|
||||||
echo "$copyright"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
--skip-po)
|
|
||||||
SKIP_PO=t;;
|
|
||||||
--force)
|
|
||||||
checkout_only_file=;;
|
|
||||||
--bootstrap-sync)
|
|
||||||
bootstrap_sync=true;;
|
|
||||||
--no-bootstrap-sync)
|
|
||||||
bootstrap_sync=false;;
|
|
||||||
--no-git)
|
|
||||||
use_git=false;;
|
|
||||||
*)
|
|
||||||
bootstrap_option_hook $option || die "$option: unknown option";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
$use_git || test -n "$GNULIB_SRCDIR" \
|
|
||||||
|| die "Error: --no-git requires \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option"
|
|
||||||
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|
|
||||||
|| die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
|
|
||||||
|
|
||||||
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
|
|
||||||
die "Running this script from a non-checked-out distribution is risky."
|
|
||||||
fi
|
|
||||||
|
|
||||||
check_build_prerequisites $use_git
|
|
||||||
|
|
||||||
if $use_gnulib || $bootstrap_sync; then
|
|
||||||
prepare_GNULIB_SRCDIR
|
|
||||||
if $bootstrap_sync; then
|
|
||||||
upgrade_bootstrap
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6.
|
|
||||||
# Also find the compatible sha1 utility on the BSDs
|
|
||||||
if test x"$SKIP_PO" = x; then
|
|
||||||
find_tool SHA1SUM sha1sum gsha1sum shasum sha1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# See if we can use gnulib's git-merge-changelog merge driver.
|
|
||||||
if $use_git && test -d .git && check_exists git; then
|
|
||||||
if git config merge.merge-changelog.driver >/dev/null ; then
|
|
||||||
:
|
|
||||||
elif check_exists git-merge-changelog; then
|
|
||||||
echo "$0: initializing git-merge-changelog driver"
|
|
||||||
git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
|
|
||||||
git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
|
|
||||||
else
|
|
||||||
echo "$0: consider installing git-merge-changelog from gnulib"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ----------------------------- Get translations. -----------------------------
|
|
||||||
|
|
||||||
download_po_files() {
|
|
||||||
subdir=$1
|
|
||||||
domain=$2
|
|
||||||
echo "$me: getting translations into $subdir for $domain..."
|
|
||||||
cmd=$(printf "$po_download_command_format" "$subdir" "$domain")
|
|
||||||
eval "$cmd"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Mirror .po files to $po_dir/.reference and copy only the new
|
|
||||||
# or modified ones into $po_dir. Also update $po_dir/LINGUAS.
|
|
||||||
# Note po files that exist locally only are left in $po_dir but will
|
|
||||||
# not be included in LINGUAS and hence will not be distributed.
|
|
||||||
update_po_files() {
|
|
||||||
# Directory containing primary .po files.
|
|
||||||
# Overwrite them only when we're sure a .po file is new.
|
|
||||||
po_dir=$1
|
|
||||||
domain=$2
|
|
||||||
|
|
||||||
# Mirror *.po files into this dir.
|
|
||||||
# Usually contains *.s1 checksum files.
|
|
||||||
ref_po_dir="$po_dir/.reference"
|
|
||||||
|
|
||||||
test -d $ref_po_dir || mkdir $ref_po_dir || return
|
|
||||||
download_po_files $ref_po_dir $domain \
|
|
||||||
&& ls "$ref_po_dir"/*.po 2>/dev/null |
|
|
||||||
sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
|
|
||||||
|
|
||||||
langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g')
|
|
||||||
test "$langs" = '*' && langs=x
|
|
||||||
for po in $langs; do
|
|
||||||
case $po in x) continue;; esac
|
|
||||||
new_po="$ref_po_dir/$po.po"
|
|
||||||
cksum_file="$ref_po_dir/$po.s1"
|
|
||||||
if ! test -f "$cksum_file" ||
|
|
||||||
! test -f "$po_dir/$po.po" ||
|
|
||||||
! $SHA1SUM -c "$cksum_file" < "$new_po" > /dev/null 2>&1; then
|
|
||||||
echo "$me: updated $po_dir/$po.po..."
|
|
||||||
cp "$new_po" "$po_dir/$po.po" \
|
|
||||||
&& $SHA1SUM < "$new_po" > "$cksum_file" || return
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
case $SKIP_PO in
|
|
||||||
'')
|
|
||||||
if test -d po; then
|
|
||||||
update_po_files po $package || exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -d runtime-po; then
|
|
||||||
update_po_files runtime-po $package-runtime || exit
|
|
||||||
fi;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bootstrap_post_pull_hook \
|
|
||||||
|| die "bootstrap_post_pull_hook failed"
|
|
||||||
|
|
||||||
# Don't proceed if there are uninitialized submodules. In particular,
|
|
||||||
# autogen.sh will remove dangling links, which might be links into
|
|
||||||
# uninitialized submodules.
|
|
||||||
# But it's OK if the 'gnulib' submodule is uninitialized, as long as
|
|
||||||
# GNULIB_SRCDIR is set.
|
|
||||||
if $use_git; then
|
|
||||||
# Uninitialized submodules are listed with an initial dash.
|
|
||||||
uninitialized=`git submodule | grep '^-' | awk '{ print $2 }'`
|
|
||||||
if test -n "$GNULIB_SRCDIR"; then
|
|
||||||
uninitialized=`echo "$uninitialized" | grep -v '^gnulib$'`
|
|
||||||
fi
|
|
||||||
if test -n "$uninitialized"; then
|
|
||||||
die "Some git submodules are not initialized: "`echo "$uninitialized" | tr '\n' ',' | sed -e 's|,$|.|'`" Either use option '--no-git', or run 'git submodule update --init' and bootstrap again."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$0: done. Now you can run './autogen.sh'."
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC0"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
|
|||||||
136
bootstrap
136
bootstrap
@@ -1,7 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Bootstrap this package from checked-out sources.
|
# Bootstrap this package from checked-out sources.
|
||||||
|
|
||||||
# Copyright (C) 2003-2022 Free Software Foundation, Inc.
|
scriptversion=2024-07-04.10; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 2003-2025 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -26,8 +28,6 @@
|
|||||||
|
|
||||||
# Please report bugs or propose patches to bug-gnulib@gnu.org.
|
# Please report bugs or propose patches to bug-gnulib@gnu.org.
|
||||||
|
|
||||||
scriptversion=2022-07-29.23; # UTC
|
|
||||||
|
|
||||||
me="$0"
|
me="$0"
|
||||||
medir=`dirname "$me"`
|
medir=`dirname "$me"`
|
||||||
|
|
||||||
@@ -43,35 +43,55 @@ Optional environment variables:
|
|||||||
GNULIB_SRCDIR Specifies the local directory where gnulib
|
GNULIB_SRCDIR Specifies the local directory where gnulib
|
||||||
sources reside. Use this if you already
|
sources reside. Use this if you already
|
||||||
have gnulib sources on your machine, and
|
have gnulib sources on your machine, and
|
||||||
do not want to waste your bandwidth downloading
|
you want to use these sources.
|
||||||
them again.
|
GNULIB_REFDIR Specifies the local directory where a gnulib
|
||||||
GNULIB_URL Cloneable URL of the gnulib repository.
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--gnulib-srcdir=DIRNAME specify the local directory where gnulib
|
|
||||||
sources reside. Use this if you already
|
|
||||||
have gnulib sources on your machine, and
|
|
||||||
you want to use these sources. Defaults
|
|
||||||
to \$GNULIB_SRCDIR
|
|
||||||
--gnulib-refdir=DIRNAME specify the local directory where a gnulib
|
|
||||||
repository (with a .git subdirectory) resides.
|
repository (with a .git subdirectory) resides.
|
||||||
Use this if you already have gnulib sources
|
Use this if you already have gnulib sources
|
||||||
and history on your machine, and do not want
|
and history on your machine, and do not want
|
||||||
to waste your bandwidth downloading them again.
|
to waste your bandwidth downloading them again.
|
||||||
Defaults to \$GNULIB_REFDIR
|
Only used for phase 1 (--pull).
|
||||||
--bootstrap-sync if this bootstrap script is not identical to
|
GNULIB_URL URL of the gnulib repository. The default is
|
||||||
|
$default_gnulib_url,
|
||||||
|
which is Gnulib's upstream repository.
|
||||||
|
Only used for phase 1 (--pull).
|
||||||
|
|
||||||
|
Options:
|
||||||
|
|
||||||
|
--pull Do phase 1: Pull files from the network.
|
||||||
|
--gen Do phase 2: Generate files from local files
|
||||||
|
(no network access).
|
||||||
|
(The default is to do both phases.)
|
||||||
|
|
||||||
|
--gnulib-srcdir=DIRNAME Specifies the local directory where gnulib
|
||||||
|
sources reside. Use this if you already
|
||||||
|
have gnulib sources on your machine, and
|
||||||
|
you want to use these sources. Defaults
|
||||||
|
to \$GNULIB_SRCDIR.
|
||||||
|
--gnulib-refdir=DIRNAME Specifies the local directory where a gnulib
|
||||||
|
repository (with a .git subdirectory) resides.
|
||||||
|
Use this if you already have gnulib sources
|
||||||
|
and history on your machine, and do not want
|
||||||
|
to waste your bandwidth downloading them again.
|
||||||
|
Defaults to \$GNULIB_REFDIR.
|
||||||
|
Only used for phase 1 (--pull).
|
||||||
|
|
||||||
|
--bootstrap-sync If this bootstrap script is not identical to
|
||||||
the version in the local gnulib sources,
|
the version in the local gnulib sources,
|
||||||
update this script, and then restart it with
|
update this script, and then restart it with
|
||||||
/bin/sh or the shell \$CONFIG_SHELL
|
/bin/sh or the shell \$CONFIG_SHELL.
|
||||||
--no-bootstrap-sync do not check whether bootstrap is out of sync
|
--no-bootstrap-sync Do not check whether bootstrap is out of sync.
|
||||||
--copy copy files instead of creating symbolic links
|
|
||||||
--force attempt to bootstrap even if the sources seem
|
--copy Copy files instead of creating symbolic links.
|
||||||
not to have been checked out
|
Only used for phase 2 (--gen).
|
||||||
--no-git do not use git to update gnulib. Requires that
|
--force Attempt to bootstrap even if the sources seem
|
||||||
|
not to have been checked out.
|
||||||
|
--no-git Do not use git to update gnulib. Requires that
|
||||||
\$GNULIB_SRCDIR or the --gnulib-srcdir option
|
\$GNULIB_SRCDIR or the --gnulib-srcdir option
|
||||||
points to a gnulib repository with the correct
|
points to a gnulib repository with the correct
|
||||||
revision
|
revision.
|
||||||
--skip-po do not download po files
|
Only used for phase 1 (--pull).
|
||||||
|
--skip-po Do not download *.po files.
|
||||||
|
Only used for phase 1 (--pull).
|
||||||
EOF
|
EOF
|
||||||
bootstrap_print_option_usage_hook
|
bootstrap_print_option_usage_hook
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
@@ -83,11 +103,11 @@ are honored.
|
|||||||
|
|
||||||
Gnulib sources can be fetched in various ways:
|
Gnulib sources can be fetched in various ways:
|
||||||
|
|
||||||
* If the environment variable GNULIB_SRCDIR is set (either as an
|
* If GNULIB_SRCDIR is set (either as an environment variable or via the
|
||||||
environment variable or via the --gnulib-srcdir option), then sources
|
--gnulib-srcdir option), then sources are fetched from that local
|
||||||
are fetched from that local directory. If it is a git repository and
|
directory. If it is a git repository and the configuration variable
|
||||||
the configuration variable GNULIB_REVISION is set in bootstrap.conf,
|
GNULIB_REVISION is set in bootstrap.conf, then that revision is
|
||||||
then that revision is checked out.
|
checked out.
|
||||||
|
|
||||||
* Otherwise, if this package is in a git repository with a 'gnulib'
|
* Otherwise, if this package is in a git repository with a 'gnulib'
|
||||||
submodule configured, then that submodule is initialized and updated
|
submodule configured, then that submodule is initialized and updated
|
||||||
@@ -97,7 +117,8 @@ Gnulib sources can be fetched in various ways:
|
|||||||
|
|
||||||
* Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
|
* Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
|
||||||
are cloned into that directory using git from \$GNULIB_URL, defaulting
|
are cloned into that directory using git from \$GNULIB_URL, defaulting
|
||||||
to $default_gnulib_url.
|
to $default_gnulib_url; if GNULIB_REFDIR is set and is a git repository
|
||||||
|
its contents may be used to accelerate the process.
|
||||||
If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
|
If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
|
||||||
then that revision is checked out.
|
then that revision is checked out.
|
||||||
|
|
||||||
@@ -118,6 +139,10 @@ EOF
|
|||||||
|
|
||||||
# Parse options.
|
# Parse options.
|
||||||
|
|
||||||
|
# Whether to pull and generate.
|
||||||
|
pull=false
|
||||||
|
gen=false
|
||||||
|
|
||||||
# Whether to use copies instead of symlinks.
|
# Whether to use copies instead of symlinks.
|
||||||
copy=false
|
copy=false
|
||||||
|
|
||||||
@@ -132,10 +157,14 @@ do
|
|||||||
exit;;
|
exit;;
|
||||||
--version)
|
--version)
|
||||||
set -e
|
set -e
|
||||||
echo "bootstrap $scriptversion"
|
echo "bootstrap $scriptversion lib $scriptlibversion"
|
||||||
echo "$copyright"
|
echo "$copyright"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
--pull)
|
||||||
|
pull=true;;
|
||||||
|
--gen)
|
||||||
|
gen=true;;
|
||||||
--gnulib-srcdir=*)
|
--gnulib-srcdir=*)
|
||||||
GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
|
GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
|
||||||
--gnulib-refdir=*)
|
--gnulib-refdir=*)
|
||||||
@@ -157,10 +186,15 @@ do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Default is to do both.
|
||||||
|
$pull || $gen || pull=true gen=true
|
||||||
|
|
||||||
$use_git || test -n "$GNULIB_SRCDIR" \
|
$use_git || test -n "$GNULIB_SRCDIR" \
|
||||||
|| die "Error: --no-git requires \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option"
|
|| die "Error: --no-git requires \$GNULIB_SRCDIR environment variable" \
|
||||||
|
"or --gnulib-srcdir option"
|
||||||
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|
||||||
|| die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
|
|| die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir" \
|
||||||
|
"option is specified, but does not denote a directory"
|
||||||
|
|
||||||
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
|
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
|
||||||
die "Bootstrapping from a non-checked-out distribution is risky."
|
die "Bootstrapping from a non-checked-out distribution is risky."
|
||||||
@@ -168,45 +202,43 @@ fi
|
|||||||
|
|
||||||
check_build_prerequisites $use_git
|
check_build_prerequisites $use_git
|
||||||
|
|
||||||
if ! test -f "$medir"/bootstrap-funclib.sh; then
|
|
||||||
# We have only completed the first phase of an upgrade from a bootstrap
|
|
||||||
# version < 2022-07-24. Need to do the second phase now.
|
|
||||||
bootstrap_sync=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if $bootstrap_sync; then
|
if $bootstrap_sync; then
|
||||||
prepare_GNULIB_SRCDIR
|
prepare_GNULIB_SRCDIR
|
||||||
upgrade_bootstrap
|
upgrade_bootstrap "$@"
|
||||||
# Since we have now upgraded if needed, no need to try it a second time below.
|
# Since we have now upgraded if needed, no need to try it a second time below.
|
||||||
bootstrap_sync=false
|
bootstrap_sync=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$0: Bootstrapping from checked-out $package sources..."
|
echo "$0: Bootstrapping from checked-out $package sources..."
|
||||||
|
|
||||||
# Pass GNULIB_SRCDIR to autopull.sh and autogen.sh.
|
# Pass GNULIB_SRCDIR and GNULIB_REFDIR to any subsidiary commands that care.
|
||||||
export GNULIB_SRCDIR
|
export GNULIB_SRCDIR
|
||||||
|
|
||||||
# Pass GNULIB_REFDIR to autopull.sh.
|
|
||||||
export GNULIB_REFDIR
|
export GNULIB_REFDIR
|
||||||
|
|
||||||
if $use_git || test -z "$SKIP_PO"; then
|
if $pull && { $use_git || test -z "$SKIP_PO"; }; then
|
||||||
"$medir"/autopull.sh \
|
autopull \
|
||||||
`if $bootstrap_sync; then echo ' --bootstrap-sync'; else echo ' --no-bootstrap-sync'; fi` \
|
`if $bootstrap_sync; then
|
||||||
|
echo ' --bootstrap-sync'
|
||||||
|
else
|
||||||
|
echo ' --no-bootstrap-sync'
|
||||||
|
fi` \
|
||||||
`if test -z "$checkout_only_file"; then echo ' --force'; fi` \
|
`if test -z "$checkout_only_file"; then echo ' --force'; fi` \
|
||||||
`if ! $use_git; then echo ' --no-git'; fi` \
|
`if ! $use_git; then echo ' --no-git'; fi` \
|
||||||
`if test -n "$SKIP_PO"; then echo ' --skip-po'; fi` \
|
`if test -n "$SKIP_PO"; then echo ' --skip-po'; fi` \
|
||||||
|| die "autopull.sh failed."
|
|| die "could not fetch auxiliary files"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
"$medir"/autogen.sh \
|
if $gen; then
|
||||||
`if $copy; then echo ' --copy'; fi` \
|
autogen \
|
||||||
`if test -z "$checkout_only_file"; then echo ' --force'; fi` \
|
`if $copy; then echo ' --copy'; fi` \
|
||||||
|| die "autogen.sh failed."
|
`if test -z "$checkout_only_file"; then echo ' --force'; fi` \
|
||||||
|
|| die "could not generate auxiliary files"
|
||||||
|
fi
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
|
||||||
# time-stamp-start: "scriptversion="
|
# time-stamp-start: "scriptversion="
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
# time-stamp-time-zone: "UTC0"
|
# time-stamp-time-zone: "UTC0"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
39
lib/.gitignore
vendored
39
lib/.gitignore
vendored
@@ -18,6 +18,7 @@
|
|||||||
/argmatch.h
|
/argmatch.h
|
||||||
/asnprintf.c
|
/asnprintf.c
|
||||||
/asprintf.c
|
/asprintf.c
|
||||||
|
/assert.in.h
|
||||||
/assure.h
|
/assure.h
|
||||||
/at-func.c
|
/at-func.c
|
||||||
/attribute.h
|
/attribute.h
|
||||||
@@ -42,6 +43,22 @@
|
|||||||
/c-strncasecmp.c
|
/c-strncasecmp.c
|
||||||
/c-strtod.c
|
/c-strtod.c
|
||||||
/c-strtod.h
|
/c-strtod.h
|
||||||
|
/c32is-impl.h
|
||||||
|
/c32isalnum.c
|
||||||
|
/c32isalpha.c
|
||||||
|
/c32isblank.c
|
||||||
|
/c32iscntrl.c
|
||||||
|
/c32isdigit.c
|
||||||
|
/c32isgraph.c
|
||||||
|
/c32islower.c
|
||||||
|
/c32isprint.c
|
||||||
|
/c32ispunct.c
|
||||||
|
/c32isspace.c
|
||||||
|
/c32isupper.c
|
||||||
|
/c32isxdigit.c
|
||||||
|
/c32to-impl.h
|
||||||
|
/c32tolower.c
|
||||||
|
/c32width.c
|
||||||
/calloc.c
|
/calloc.c
|
||||||
/canonicalize-lgpl.c
|
/canonicalize-lgpl.c
|
||||||
/canonicalize.c
|
/canonicalize.c
|
||||||
@@ -81,6 +98,7 @@
|
|||||||
/errno.in.h
|
/errno.in.h
|
||||||
/error.c
|
/error.c
|
||||||
/error.h
|
/error.h
|
||||||
|
/error.in.h
|
||||||
/execute.c
|
/execute.c
|
||||||
/execute.h
|
/execute.h
|
||||||
/exitfail.c
|
/exitfail.c
|
||||||
@@ -228,10 +246,12 @@
|
|||||||
/isnanl.c
|
/isnanl.c
|
||||||
/iswblank.c
|
/iswblank.c
|
||||||
/iswdigit.c
|
/iswdigit.c
|
||||||
|
/iswpunct.c
|
||||||
/iswxdigit.c
|
/iswxdigit.c
|
||||||
/itold.c
|
/itold.c
|
||||||
/lc-charset-dispatch.c
|
/lc-charset-dispatch.c
|
||||||
/lc-charset-dispatch.h
|
/lc-charset-dispatch.h
|
||||||
|
/ldexp.c
|
||||||
/ldexpl.c
|
/ldexpl.c
|
||||||
/libc-config.h
|
/libc-config.h
|
||||||
/limits.h
|
/limits.h
|
||||||
@@ -251,12 +271,14 @@
|
|||||||
/mbchar.h
|
/mbchar.h
|
||||||
/mbfile.c
|
/mbfile.c
|
||||||
/mbfile.h
|
/mbfile.h
|
||||||
|
/mbrtoc32.c
|
||||||
/mbrtowc-impl-utf8.h
|
/mbrtowc-impl-utf8.h
|
||||||
/mbrtowc-impl.h
|
/mbrtowc-impl.h
|
||||||
/mbrtowc.c
|
/mbrtowc.c
|
||||||
/mbsinit.c
|
/mbsinit.c
|
||||||
/mbswidth.c
|
/mbswidth.c
|
||||||
/mbswidth.h
|
/mbswidth.h
|
||||||
|
/mbszero.c
|
||||||
/mbtowc-lock.c
|
/mbtowc-lock.c
|
||||||
/mbtowc-lock.h
|
/mbtowc-lock.h
|
||||||
/memchr.c
|
/memchr.c
|
||||||
@@ -270,6 +292,7 @@
|
|||||||
/msvc-nothrow.h
|
/msvc-nothrow.h
|
||||||
/obstack.c
|
/obstack.c
|
||||||
/obstack.h
|
/obstack.h
|
||||||
|
/obstack.in.h
|
||||||
/obstack_printf.c
|
/obstack_printf.c
|
||||||
/open.c
|
/open.c
|
||||||
/openat-die.c
|
/openat-die.c
|
||||||
@@ -298,6 +321,8 @@
|
|||||||
/progname.c
|
/progname.c
|
||||||
/progname.h
|
/progname.h
|
||||||
/progreloc.c
|
/progreloc.c
|
||||||
|
/pthread-once.c
|
||||||
|
/pthread.in.h
|
||||||
/quote.h
|
/quote.h
|
||||||
/quotearg.c
|
/quotearg.c
|
||||||
/quotearg.h
|
/quotearg.h
|
||||||
@@ -318,6 +343,7 @@
|
|||||||
/rename.c
|
/rename.c
|
||||||
/rewinddir.c
|
/rewinddir.c
|
||||||
/rmdir.c
|
/rmdir.c
|
||||||
|
/same-inode.c
|
||||||
/same-inode.h
|
/same-inode.h
|
||||||
/save-cwd.c
|
/save-cwd.c
|
||||||
/save-cwd.h
|
/save-cwd.h
|
||||||
@@ -326,6 +352,7 @@
|
|||||||
/scratch_buffer.h
|
/scratch_buffer.h
|
||||||
/setenv.c
|
/setenv.c
|
||||||
/setlocale-lock.c
|
/setlocale-lock.c
|
||||||
|
/setlocale_null-unlocked.c
|
||||||
/setlocale_null.c
|
/setlocale_null.c
|
||||||
/setlocale_null.h
|
/setlocale_null.h
|
||||||
/sig-handler.c
|
/sig-handler.c
|
||||||
@@ -365,9 +392,7 @@
|
|||||||
/stat-w32.c
|
/stat-w32.c
|
||||||
/stat-w32.h
|
/stat-w32.h
|
||||||
/stat.c
|
/stat.c
|
||||||
/stdalign.in.h
|
|
||||||
/stdbool.h
|
/stdbool.h
|
||||||
/stdbool.in.h
|
|
||||||
/stdckdint.in.h
|
/stdckdint.in.h
|
||||||
/stddef.h
|
/stddef.h
|
||||||
/stddef.in.h
|
/stddef.in.h
|
||||||
@@ -380,6 +405,7 @@
|
|||||||
/stdio-write.c
|
/stdio-write.c
|
||||||
/stdio.h
|
/stdio.h
|
||||||
/stdio.in.h
|
/stdio.in.h
|
||||||
|
/stdlib.c
|
||||||
/stdlib.h
|
/stdlib.h
|
||||||
/stdlib.in.h
|
/stdlib.in.h
|
||||||
/stpcpy.c
|
/stpcpy.c
|
||||||
@@ -421,9 +447,13 @@
|
|||||||
/timespec.h
|
/timespec.h
|
||||||
/timevar.c
|
/timevar.c
|
||||||
/timevar.h
|
/timevar.h
|
||||||
|
/uchar.in.h
|
||||||
|
/unicase.in.h
|
||||||
/unicodeio.c
|
/unicodeio.c
|
||||||
/unicodeio.h
|
/unicodeio.h
|
||||||
|
/unictype.in.h
|
||||||
/unictype/
|
/unictype/
|
||||||
|
/uninorm.in.h
|
||||||
/unistd--.h
|
/unistd--.h
|
||||||
/unistd-safer.h
|
/unistd-safer.h
|
||||||
/unistd.c
|
/unistd.c
|
||||||
@@ -445,8 +475,11 @@
|
|||||||
/vasprintf.c
|
/vasprintf.c
|
||||||
/verify.h
|
/verify.h
|
||||||
/vfprintf.c
|
/vfprintf.c
|
||||||
|
/vfzprintf.c
|
||||||
/vsnprintf.c
|
/vsnprintf.c
|
||||||
|
/vsnzprintf.c
|
||||||
/vsprintf.c
|
/vsprintf.c
|
||||||
|
/vszprintf.c
|
||||||
/wait-process.c
|
/wait-process.c
|
||||||
/wait-process.h
|
/wait-process.h
|
||||||
/waitpid.c
|
/waitpid.c
|
||||||
@@ -462,6 +495,8 @@
|
|||||||
/windows-mutex.h
|
/windows-mutex.h
|
||||||
/windows-once.c
|
/windows-once.c
|
||||||
/windows-once.h
|
/windows-once.h
|
||||||
|
/windows-path.c
|
||||||
|
/windows-path.h
|
||||||
/windows-recmutex.c
|
/windows-recmutex.c
|
||||||
/windows-recmutex.h
|
/windows-recmutex.h
|
||||||
/windows-rwlock.c
|
/windows-rwlock.c
|
||||||
|
|||||||
2
lib/glthread/.gitignore
vendored
2
lib/glthread/.gitignore
vendored
@@ -1,5 +1,7 @@
|
|||||||
/lock.c
|
/lock.c
|
||||||
/lock.h
|
/lock.h
|
||||||
|
/once.c
|
||||||
|
/once.h
|
||||||
/threadlib.c
|
/threadlib.c
|
||||||
/tls.c
|
/tls.c
|
||||||
/tls.h
|
/tls.h
|
||||||
|
|||||||
1
lib/malloc/.gitignore
vendored
1
lib/malloc/.gitignore
vendored
@@ -1,6 +1,5 @@
|
|||||||
/scratch_buffer.gl.h
|
/scratch_buffer.gl.h
|
||||||
/scratch_buffer.h
|
/scratch_buffer.h
|
||||||
/scratch_buffer_dupfree.c
|
|
||||||
/scratch_buffer_grow.c
|
/scratch_buffer_grow.c
|
||||||
/scratch_buffer_grow_preserve.c
|
/scratch_buffer_grow_preserve.c
|
||||||
/scratch_buffer_set_array_size.c
|
/scratch_buffer_set_array_size.c
|
||||||
|
|||||||
29
m4/.gitignore
vendored
29
m4/.gitignore
vendored
@@ -6,8 +6,12 @@
|
|||||||
/alloca.m4
|
/alloca.m4
|
||||||
/asm-underscore.m4
|
/asm-underscore.m4
|
||||||
/assert.m4
|
/assert.m4
|
||||||
|
/assert_h.m4
|
||||||
|
/build-to-host.m4
|
||||||
/builtin-expect.m4
|
/builtin-expect.m4
|
||||||
|
/c-bool.m4
|
||||||
/c-strtod.m4
|
/c-strtod.m4
|
||||||
|
/c32rtomb.m4
|
||||||
/calloc.m4
|
/calloc.m4
|
||||||
/canonicalize.m4
|
/canonicalize.m4
|
||||||
/chdir-long.m4
|
/chdir-long.m4
|
||||||
@@ -24,23 +28,26 @@
|
|||||||
/dup.m4
|
/dup.m4
|
||||||
/dup2.m4
|
/dup2.m4
|
||||||
/eaccess.m4
|
/eaccess.m4
|
||||||
/eealloc.m4
|
|
||||||
/environ.m4
|
/environ.m4
|
||||||
/errno_h.m4
|
/errno_h.m4
|
||||||
/error.m4
|
/error.m4
|
||||||
|
/error_h.m4
|
||||||
/execute.m4
|
/execute.m4
|
||||||
/exponentd.m4
|
/exponentd.m4
|
||||||
/exponentf.m4
|
/exponentf.m4
|
||||||
/exponentl.m4
|
/exponentl.m4
|
||||||
|
/extensions-aix.m4
|
||||||
/extensions.m4
|
/extensions.m4
|
||||||
/extern-inline.m4
|
/extern-inline.m4
|
||||||
/extern-inline.m4~
|
/extern-inline.m4~
|
||||||
/fatal-signal.m4
|
/fatal-signal.m4
|
||||||
/fchdir.m4
|
/fchdir.m4
|
||||||
|
/fclose.m4
|
||||||
/fcntl-o.m4
|
/fcntl-o.m4
|
||||||
/fcntl.m4
|
/fcntl.m4
|
||||||
/fcntl_h.m4
|
/fcntl_h.m4
|
||||||
/fdopendir.m4
|
/fdopendir.m4
|
||||||
|
/fflush.m4
|
||||||
/ffs.m4
|
/ffs.m4
|
||||||
/ffsl.m4
|
/ffsl.m4
|
||||||
/filenamecat.m4
|
/filenamecat.m4
|
||||||
@@ -65,7 +72,6 @@
|
|||||||
/gethrxtime.m4
|
/gethrxtime.m4
|
||||||
/getline.m4
|
/getline.m4
|
||||||
/getopt.m4
|
/getopt.m4
|
||||||
/getpagesize.m4
|
|
||||||
/getprogname.m4
|
/getprogname.m4
|
||||||
/getrusage.m4
|
/getrusage.m4
|
||||||
/gettext.m4
|
/gettext.m4
|
||||||
@@ -76,12 +82,14 @@
|
|||||||
/gnulib-cache.m4
|
/gnulib-cache.m4
|
||||||
/gnulib-common.m4
|
/gnulib-common.m4
|
||||||
/gnulib-comp.m4
|
/gnulib-comp.m4
|
||||||
|
/gnulib-i18n.m4
|
||||||
/gnulib-tool.m4
|
/gnulib-tool.m4
|
||||||
/host-cpu-c-abi.m4
|
/host-cpu-c-abi.m4
|
||||||
/iconv.m4
|
/iconv.m4
|
||||||
/iconv_h.m4
|
/iconv_h.m4
|
||||||
/iconv_open.m4
|
/iconv_open.m4
|
||||||
/include_next.m4
|
/include_next.m4
|
||||||
|
/init-package-version.m4
|
||||||
/inline.m4
|
/inline.m4
|
||||||
/intdiv0.m4
|
/intdiv0.m4
|
||||||
/intl-thread-locale.m4
|
/intl-thread-locale.m4
|
||||||
@@ -99,6 +107,7 @@
|
|||||||
/isnanl.m4
|
/isnanl.m4
|
||||||
/iswblank.m4
|
/iswblank.m4
|
||||||
/iswdigit.m4
|
/iswdigit.m4
|
||||||
|
/iswpunct.m4
|
||||||
/iswxdigit.m4
|
/iswxdigit.m4
|
||||||
/javacomp.m4
|
/javacomp.m4
|
||||||
/javaexec.m4
|
/javaexec.m4
|
||||||
@@ -116,6 +125,7 @@
|
|||||||
/libunistring-base.m4
|
/libunistring-base.m4
|
||||||
/limits-h.m4
|
/limits-h.m4
|
||||||
/localcharset.m4
|
/localcharset.m4
|
||||||
|
/locale-en.m4
|
||||||
/locale-fr.m4
|
/locale-fr.m4
|
||||||
/locale-ja.m4
|
/locale-ja.m4
|
||||||
/locale-zh.m4
|
/locale-zh.m4
|
||||||
@@ -128,6 +138,7 @@
|
|||||||
/math_h.m4
|
/math_h.m4
|
||||||
/mbchar.m4
|
/mbchar.m4
|
||||||
/mbfile.m4
|
/mbfile.m4
|
||||||
|
/mbrtoc32.m4
|
||||||
/mbrtowc.m4
|
/mbrtowc.m4
|
||||||
/mbsinit.m4
|
/mbsinit.m4
|
||||||
/mbstate_t.m4
|
/mbstate_t.m4
|
||||||
@@ -146,7 +157,9 @@
|
|||||||
/nocrash.m4
|
/nocrash.m4
|
||||||
/obstack-printf.m4
|
/obstack-printf.m4
|
||||||
/obstack.m4
|
/obstack.m4
|
||||||
|
/off64_t.m4
|
||||||
/off_t.m4
|
/off_t.m4
|
||||||
|
/once.m4
|
||||||
/open-cloexec.m4
|
/open-cloexec.m4
|
||||||
/open-slash.m4
|
/open-slash.m4
|
||||||
/open.m4
|
/open.m4
|
||||||
@@ -162,10 +175,12 @@
|
|||||||
/posix_spawn_faction_addchdir.m4
|
/posix_spawn_faction_addchdir.m4
|
||||||
/printf-frexp.m4
|
/printf-frexp.m4
|
||||||
/printf-frexpl.m4
|
/printf-frexpl.m4
|
||||||
/printf-posix-rpl.m4
|
|
||||||
/printf-posix.m4
|
/printf-posix.m4
|
||||||
/printf.m4
|
/printf.m4
|
||||||
/progtest.m4
|
/progtest.m4
|
||||||
|
/pthread-once.m4
|
||||||
|
/pthread-spin.m4
|
||||||
|
/pthread_h.m4
|
||||||
/pthread_rwlock_rdlock.m4
|
/pthread_rwlock_rdlock.m4
|
||||||
/quote.m4
|
/quote.m4
|
||||||
/quotearg.m4
|
/quotearg.m4
|
||||||
@@ -202,7 +217,6 @@
|
|||||||
/stat.m4
|
/stat.m4
|
||||||
/std-gnu11.m4
|
/std-gnu11.m4
|
||||||
/stdalign.m4
|
/stdalign.m4
|
||||||
/stdbool.m4
|
|
||||||
/stddef_h.m4
|
/stddef_h.m4
|
||||||
/stdint.m4
|
/stdint.m4
|
||||||
/stdint_h.m4
|
/stdint_h.m4
|
||||||
@@ -220,6 +234,7 @@
|
|||||||
/strnlen.m4
|
/strnlen.m4
|
||||||
/strtod.m4
|
/strtod.m4
|
||||||
/strverscmp.m4
|
/strverscmp.m4
|
||||||
|
/sys_cdefs_h.m4
|
||||||
/sys_ioctl_h.m4
|
/sys_ioctl_h.m4
|
||||||
/sys_resource_h.m4
|
/sys_resource_h.m4
|
||||||
/sys_socket_h.m4
|
/sys_socket_h.m4
|
||||||
@@ -233,8 +248,12 @@
|
|||||||
/time_h.m4
|
/time_h.m4
|
||||||
/timespec.m4
|
/timespec.m4
|
||||||
/tls.m4
|
/tls.m4
|
||||||
|
/uchar_h.m4
|
||||||
/uintmax_t.m4
|
/uintmax_t.m4
|
||||||
|
/unicase_h.m4
|
||||||
/unicodeio.m4
|
/unicodeio.m4
|
||||||
|
/unictype_h.m4
|
||||||
|
/uninorm_h.m4
|
||||||
/unistd-safer.m4
|
/unistd-safer.m4
|
||||||
/unistd_h.m4
|
/unistd_h.m4
|
||||||
/unlink.m4
|
/unlink.m4
|
||||||
@@ -253,12 +272,10 @@
|
|||||||
/warn-on-use.m4
|
/warn-on-use.m4
|
||||||
/warnings.m4
|
/warnings.m4
|
||||||
/wchar_h.m4
|
/wchar_h.m4
|
||||||
/wchar_t.m4
|
|
||||||
/wctype_h.m4
|
/wctype_h.m4
|
||||||
/wcwidth.m4
|
/wcwidth.m4
|
||||||
/wint_t.m4
|
/wint_t.m4
|
||||||
/xalloc.m4
|
/xalloc.m4
|
||||||
/xsize.m4
|
/xsize.m4
|
||||||
/xstrndup.m4
|
/xstrndup.m4
|
||||||
/year2038.m4
|
|
||||||
/zzgnulib.m4
|
/zzgnulib.m4
|
||||||
|
|||||||
Reference in New Issue
Block a user