| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 | #! /bin/sh# Bootstrap this package from checked-out sources.# Copyright (C) 2003-2022 Free Software Foundation, Inc.## 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# the Free Software Foundation, either version 3 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program.  If not, see <https://www.gnu.org/licenses/>.# Originally written by Paul Eggert.  The canonical version of this# script is maintained as build-aux/bootstrap in gnulib. However,# to be useful to your package, you should place a copy of it under# version control in the top-level directory of your package.  The# intent is that all customization can be done with a bootstrap.conf# file also maintained in your version control; gnulib comes with a# template build-aux/bootstrap.conf to get you started.# Please report bugs or propose patches to bug-gnulib@gnu.org.scriptversion=2022-07-24.15; # UTCme="$0"medir=`dirname "$me"`# Read the function library and the configuration.. "$medir"/bootstrap-funclib.shusage() {  cat <<EOFUsage: $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                           do not want to waste your bandwidth downloading                           them again.  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.                           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  --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  --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  --copy                   copy files instead of creating symbolic links  --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 filesEOF  bootstrap_print_option_usage_hook  cat <<EOFIf the file bootstrap.conf exists in the same directory as this script, itscontents are read as shell variables to configure the bootstrap.For build prerequisites, environment variables like \$AUTOCONF and \$AMTARare 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 theGnulib sources that has been tested with your package, then there aretwo possible approaches: either configure a 'gnulib' submodule with theappropriate revision, or set GNULIB_REVISION (and if necessaryGNULIB_URL) in bootstrap.conf.Running without arguments will suffice in most cases.EOF}# Parse options.# Whether to use copies instead of symlinks.copy=false# Use git to update gnulib sourcesuse_git=truefor optiondo  case $option in  --help)    usage    exit;;  --version)    set -e    echo "bootstrap $scriptversion"    echo "$copyright"    exit 0    ;;  --gnulib-srcdir=*)    GNULIB_SRCDIR=${option#--gnulib-srcdir=};;  --gnulib-refdir=*)    GNULIB_REFDIR=${option#--gnulib-refdir=};;  --skip-po)    SKIP_PO=t;;  --force)    checkout_only_file=;;  --copy)    copy=true;;  --bootstrap-sync)    bootstrap_sync=true;;  --no-bootstrap-sync)    if test -f "$medir"/bootstrap-funclib.sh; then      bootstrap_sync=false    else      # 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    ;;  --no-git)    use_git=false;;  *)    bootstrap_option_hook $option || die "$option: unknown option";;  esacdone$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 "Bootstrapping from a non-checked-out distribution is risky."ficheck_build_prerequisites $use_gitif $bootstrap_sync; then  prepare_GNULIB_SRCDIR  upgrade_bootstrap  # Since we have now upgraded if needed, no need to try it a second time below.  bootstrap_sync=falsefiecho "$0: Bootstrapping from checked-out $package sources..."# Pass GNULIB_SRCDIR to autopull.sh and autogen.sh.export GNULIB_SRCDIR# Pass GNULIB_REFDIR to autopull.sh.export GNULIB_REFDIRif $use_git || test -z "$SKIP_PO"; then  "$medir"/autopull.sh \      `if $bootstrap_sync; then echo ' --bootstrap-sync'; else echo ' --no-bootstrap-sync'; fi` \      `if test -z "$checkout_only_file"; then echo ' --force'; fi` \      `if ! $use_git; then echo ' --no-git'; fi` \      `if test -n "$SKIP_PO"; then echo ' --skip-po'; fi` \    || die "autopull.sh failed."fi"$medir"/autogen.sh \    `if $copy; then echo ' --copy'; fi` \    `if test -z "$checkout_only_file"; then echo ' --force'; fi` \  || die "autogen.sh failed."# ----------------------------------------------------------------------------# 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:
 |