mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-11-27 06:09:57 +08:00
maint: use gnulib's (pending saner) bootstrap script.
* bootstrap: Replaced with gnulib script. * bootstrap.conf: New file with Libtool specific bootstrap configuration. * Makefile.am (EXTRA_DIST): Add bootstrap.conf. Signed-off-by: Gary V. Vaughan <gary@gnu.org>
This commit is contained in:
parent
b868b7c487
commit
8e756c52ee
3
.gitignore
vendored
3
.gitignore
vendored
@ -29,8 +29,8 @@
|
||||
.deps
|
||||
.dirstamp
|
||||
.gdb_history
|
||||
.gitmodules
|
||||
.libs
|
||||
\#*#
|
||||
/.pc
|
||||
/COPYING
|
||||
/INSTALL
|
||||
@ -41,6 +41,7 @@
|
||||
/release
|
||||
Makefile
|
||||
Makefile.in
|
||||
\#*#
|
||||
_inst-*demo
|
||||
_libs
|
||||
acinclude.m4
|
||||
|
@ -1,3 +1,11 @@
|
||||
2010-09-16 Gary V. Vaughan <gary@gnu.org>
|
||||
|
||||
maint: use gnulib's (pending saner) bootstrap script.
|
||||
* bootstrap: Replaced with gnulib script.
|
||||
* bootstrap.conf: New file with Libtool specific bootstrap
|
||||
configuration.
|
||||
* Makefile.am (EXTRA_DIST): Add bootstrap.conf.
|
||||
|
||||
2010-08-27 Gary V. Vaughan <gary@gnu.org>
|
||||
|
||||
maint: add gnulib submodule.
|
||||
|
11
Makefile.am
11
Makefile.am
@ -73,12 +73,11 @@ libtoolize_m4sh = $(srcdir)/libtoolize.m4sh
|
||||
ltmain_m4sh = $(m4sh_dir)/ltmain.m4sh
|
||||
|
||||
sh_files = $(general_m4sh) $(getopt_m4sh)
|
||||
EXTRA_DIST += bootstrap $(aux_dir)/mkstamp $(sh_files) \
|
||||
ChangeLog.1996 ChangeLog.1997 ChangeLog.1998 \
|
||||
ChangeLog.1999 ChangeLog.2000 ChangeLog.2001 \
|
||||
ChangeLog.2002 ChangeLog.2003 ChangeLog.2004 \
|
||||
ChangeLog.2005 ChangeLog.2006 ChangeLog.2007 \
|
||||
ChangeLog.2008 ChangeLog.2009 ChangeLog.2010
|
||||
EXTRA_DIST += bootstrap bootstrap.conf $(aux_dir)/mkstamp \
|
||||
$(sh_files) ChangeLog.1996 ChangeLog.1997 ChangeLog.1998 \
|
||||
ChangeLog.1999 ChangeLog.2000 ChangeLog.2001 ChangeLog.2002 \
|
||||
ChangeLog.2003 ChangeLog.2004 ChangeLog.2005 ChangeLog.2006 \
|
||||
ChangeLog.2007 ChangeLog.2008 ChangeLog.2009 ChangeLog.2010
|
||||
CLEANFILES += libtool libtoolize
|
||||
|
||||
## If a file is named several times below, and especially if it
|
||||
|
430
bootstrap.conf
Normal file
430
bootstrap.conf
Normal file
@ -0,0 +1,430 @@
|
||||
# bootstrap.conf (GNU Libtool) version 2011-10-19
|
||||
#
|
||||
# Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2010
|
||||
|
||||
# This is free software; see the source for copying conditions. There is NO
|
||||
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# GNU Libtool 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 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
|
||||
# can be downloaded from http://www.gnu.org/licenses/gpl.html,
|
||||
# or obtained by writing to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
|
||||
## -------------------------------- ##
|
||||
## User overrideable command paths. ##
|
||||
## -------------------------------- ##
|
||||
|
||||
: "${MAKE=make}"
|
||||
|
||||
export MAKE
|
||||
|
||||
|
||||
|
||||
## -------------- ##
|
||||
## Configuration. ##
|
||||
## -------------- ##
|
||||
|
||||
# List of programs (and minimum versions) required to bootstrap, maintain
|
||||
# and release Libtool.
|
||||
buildreq="
|
||||
help2man 1.29 http://www.gnu.org/software/help2man
|
||||
makeinfo 4.8 http://www.gnu.org/software/texinfo
|
||||
xz 4.999.8beta http://tukaani.org/xz
|
||||
"
|
||||
|
||||
# Instructions on how to install packages in $buildreq.
|
||||
buildreq_readme=HACKING
|
||||
|
||||
# Non-default gnulib directory options.
|
||||
local_gl_dir=gl
|
||||
source_base=libltdl/libgnu
|
||||
|
||||
# Additional gnulib-tool options to use.
|
||||
gnulib_tool_options=$gnulib_tool_options"
|
||||
--libtool
|
||||
--macro-prefix=GL
|
||||
"
|
||||
|
||||
# gnulib modules used by this package.
|
||||
gnulib_modules='
|
||||
dummy
|
||||
'
|
||||
|
||||
# What ignore files to maintain.
|
||||
vc_ignore=".gitignore"
|
||||
|
||||
# Running the installed `libtoolize' will trash the local (newer) libtool.m4
|
||||
# among others. Don't use `:', since autoreconf can't exec it!
|
||||
LIBTOOLIZE=true
|
||||
|
||||
# List of file droppings from old releases of Libtool.
|
||||
libtool_obsolete_files="
|
||||
acinclude.m4
|
||||
argz.c
|
||||
libltdl/config.h
|
||||
lt__dirent.c
|
||||
lt__strl.c
|
||||
"
|
||||
|
||||
# The not-synced with gnulib warning is bogus until upstream adopts
|
||||
# the saner bootstrap script.
|
||||
require_bootstrap_uptodate=:
|
||||
|
||||
|
||||
## ------------------- ##
|
||||
## Override functions. ##
|
||||
## ------------------- ##
|
||||
|
||||
# func_reconfigure
|
||||
# ----------------
|
||||
# In addition to needing to autoreconf several directories, Libtool
|
||||
# provides `libtoolize' and doesn't use `autopoint', so we can use a
|
||||
# somewhat simpler `func_reconfigure' implementation.
|
||||
func_reconfigure ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
$require_autoheader
|
||||
$require_build_aux
|
||||
$require_macro_dir
|
||||
|
||||
# Only need this from the top level directory
|
||||
func_gnulib_tool
|
||||
|
||||
export LIBTOOLIZE
|
||||
func_verbose "export LIBTOOLIZE='$LIBTOOLIZE'"
|
||||
|
||||
# Also bootstrap any additional directories that were specified with
|
||||
# `reconfdirs' in the environment.
|
||||
save_IFS="$IFS"
|
||||
IFS=,
|
||||
for sub in $opt_reconf_dirs; do
|
||||
IFS="$save_IFS"
|
||||
my_autoreconf_options=
|
||||
$opt_copy || func_append my_autoreconf_options " --symlink"
|
||||
$opt_force && func_append my_autoreconf_options " --force"
|
||||
$opt_verbose && func_append my_autoreconf_options " --verbose"
|
||||
func_show_eval "$AUTORECONF$my_autoreconf_options --install $sub" \
|
||||
'exit $?'
|
||||
done
|
||||
IFS="$save_IFS"
|
||||
}
|
||||
|
||||
|
||||
|
||||
## --------------- ##
|
||||
## Hook functions. ##
|
||||
## --------------- ##
|
||||
|
||||
# `bootstrap' itself takes care of the arguments it recognises, so we only
|
||||
# have to handle additional options here. Setting exit_cmd to anything
|
||||
# other than `:', will tell `bootstrap' to exit after printing it's own
|
||||
# option loop parser errors. Best not to use any time-consuming $require_
|
||||
# functions here, otherwise they will be run even if we only need to
|
||||
# process `--version'.
|
||||
|
||||
# libtool_options_prep [ARG...]
|
||||
# -----------------------------
|
||||
# Preparation for supporting additional options in Libtool bootstrap,
|
||||
# before the option parsing loop.
|
||||
libtool_options_prep ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
# Extend the existing usage message
|
||||
usage_message="$usage_message"'
|
||||
Libtool Specific Options:
|
||||
-r, --reconf-dirs=DIR1,DIR2,...
|
||||
limit the directories to be bootstrapped to
|
||||
the comma-delimited list of DIR1,DIR2,...
|
||||
'
|
||||
|
||||
# autoreconf all directories by default
|
||||
test -n "$reconfdirs" \
|
||||
|| reconfdirs=". libltdl `ls -1d tests/*demo tests/*demo[0-9]`"
|
||||
|
||||
# pass back the list of options we consumed
|
||||
func_quote_for_eval ${1+"$@"}
|
||||
func_run_hooks_result="$func_quote_for_eval_result"
|
||||
}
|
||||
func_add_hook func_options_prep libtool_options_prep
|
||||
|
||||
|
||||
# libtool_parse_options [ARG...]
|
||||
# ------------------------------
|
||||
# Provide handling for additional Libtool options inside the main option
|
||||
# parsing loop. Note that `bootstrap' passes in the current positional
|
||||
# parameters, and this function has to pass back whatever is left after
|
||||
# its own processing in the `func_run_hooks_result' variable.
|
||||
libtool_parse_options ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
# this inner loop lets us handle `-r.' in a single iteration
|
||||
while test $# -gt 0; do
|
||||
opt="$1"
|
||||
shift
|
||||
|
||||
case $opt in
|
||||
--reconf-dirs|--reconfdirs|-r)
|
||||
test $# = 0 && func_missing_arg $opt && break
|
||||
# squash spaces so that delimiter is just `,' and nothing else
|
||||
opt_reconf_dirs=`echo "$1" |$SED 's|, *|,|g'`
|
||||
shift
|
||||
;;
|
||||
|
||||
# Separate arguments to short options:
|
||||
-r*) func_split_short_opt "$opt"
|
||||
set dummy "$func_split_short_opt_name" "$func_split_short_opt_arg" ${1+"$@"}
|
||||
shift
|
||||
;;
|
||||
|
||||
*) set dummy "$opt" ${1+"$@"}; shift; break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# pass back the list of options we consumed
|
||||
func_quote_for_eval ${1+"$@"}
|
||||
func_run_hooks_result="$func_quote_for_eval_result"
|
||||
}
|
||||
func_add_hook func_parse_options libtool_parse_options
|
||||
|
||||
|
||||
# libtool_validate_options [ARG...]
|
||||
# ---------------------------------
|
||||
# Validation of additional Libtool bootstrap options, after the main option
|
||||
# parsing loop.
|
||||
libtool_validate_options ()
|
||||
{
|
||||
# support the old interface too: `reconfdirs='. libltdl' ./bootstrap'
|
||||
test -n "$opt_reconf_dirs" \
|
||||
|| opt_reconf_dirs=`echo $reconfdirs |$SED 's| *|,|g'`
|
||||
|
||||
# validate $opt_reconf_dirs
|
||||
save_IFS="$IFS"
|
||||
IFS=,
|
||||
for reconfdir in $opt_reconf_dirs; do
|
||||
IFS="$save_IFS"
|
||||
test -d "$reconfdir" || {
|
||||
func_error "bad reconf directory \`$reconfdir': directory does not exist"
|
||||
exit_cmd=exit
|
||||
}
|
||||
done
|
||||
IFS="$save_IFS"
|
||||
|
||||
# pass back the list of options we consumed
|
||||
func_quote_for_eval ${1+"$@"}
|
||||
func_run_hooks_result="$func_quote_for_eval_result"
|
||||
}
|
||||
func_add_hook func_validate_options libtool_validate_options
|
||||
|
||||
|
||||
## ---------------------------- ##
|
||||
## Libtool bootstrap functions. ##
|
||||
## ---------------------------- ##
|
||||
|
||||
# libtool_prep
|
||||
# ------------
|
||||
# Libtool bootstrap initialisation after successful option parse and
|
||||
# validation.
|
||||
libtool_prep ()
|
||||
{
|
||||
# initial clean-up of checked out tree
|
||||
find . -depth \( -name autom4te.cache -o -name libtool \) -print \
|
||||
| grep -v '{arch}' \
|
||||
| xargs rm -rf
|
||||
|
||||
# remove obsolete file droppings from old Libtool versions
|
||||
for file in $libtool_obsolete_files; do
|
||||
rm -f $file
|
||||
done
|
||||
}
|
||||
func_add_hook func_prep libtool_prep
|
||||
|
||||
|
||||
# libtool_build_prerequisites
|
||||
# ---------------------------
|
||||
# Libtool generates some files that are required before any autotools
|
||||
# can be run successfully.
|
||||
libtool_build_prerequisites ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
$require_build_aux
|
||||
$require_macro_dir
|
||||
$require_package
|
||||
$require_package_bugreport
|
||||
$require_package_name
|
||||
$require_package_url
|
||||
$require_package_version
|
||||
|
||||
func_extract_trace LT_CONFIG_LTDL_DIR
|
||||
|
||||
save_ifs="$IFS"
|
||||
IFS=:
|
||||
set dummy $func_extract_trace_result
|
||||
IFS="$save_ifs"
|
||||
shift
|
||||
|
||||
ltdl_dir="$1"
|
||||
func_check_configuration ltdl_dir \
|
||||
"LT_CONFIG_LTDL_DIR([name of your libltdl directory])"
|
||||
func_verbose "ltdl_dir='$ltdl_dir'"
|
||||
|
||||
# Whip up a dirty Makefile:
|
||||
makes='Makefile.am libltdl/Makefile.inc'
|
||||
rm -f Makefile
|
||||
{
|
||||
echo "aux_dir = $build_aux"
|
||||
echo "ltdl_dir = $ltdl_dir"
|
||||
echo "macro_dir = $macro_dir"
|
||||
$SED '/^if /,/^endif$/d;/^else$/,/^endif$/d;/^include /d' $makes
|
||||
} > Makefile
|
||||
|
||||
# Building distributed files from configure is bad for automake, so we
|
||||
# generate them here, and have Makefile rules to keep them up to date.
|
||||
func_echo "running: $MAKE bootstrap-deps ..."
|
||||
$opt_dry_run || {
|
||||
output=`$MAKE bootstrap-deps \
|
||||
M4SH="$AUTOM4TE --language=m4sh" PACKAGE="$package" \
|
||||
PACKAGE_BUGREPORT="$package_bugreport" PACKAGE_NAME="$package_name" \
|
||||
PACKAGE_URL="$package_url" SED="$SED" srcdir=. \
|
||||
VERSION="$package_version" 2>&1`
|
||||
}
|
||||
status=$?
|
||||
|
||||
test 0 -eq "$status" || echo "$output"
|
||||
rm -f Makefile
|
||||
test 0 -eq "$status" ||exit $EXIT_FAILURE
|
||||
}
|
||||
func_add_hook func_prep libtool_build_prerequisites
|
||||
|
||||
|
||||
# libtool_fudge_timestamps
|
||||
# ------------------------
|
||||
# Autoheader valiantly tries to prevent needless reconfigurations by
|
||||
# not changing the timestamp of config-h.in unless the file contents
|
||||
# are updated. Unfortunately config-h.in depends on aclocal.m4 which
|
||||
# *is* updated, so running 'libtoolize --ltdl=. && configure && make'
|
||||
# causes autoheader to be called... undesireable for users that do not
|
||||
# have it! Fudge the timestamp to prevent that:
|
||||
libtool_fudge_timestamps ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
sleep 2 && touch libltdl/config-h.in
|
||||
}
|
||||
func_add_hook func_fini libtool_fudge_timestamps
|
||||
|
||||
|
||||
# libtool_cleanup
|
||||
# ---------------
|
||||
libtool_cleanup ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
# These files can cause an infinite configure loop if left behind.
|
||||
rm -f Makefile libltdl/Makefile libtool vcl.tmp
|
||||
}
|
||||
func_add_hook func_fini libtool_cleanup
|
||||
|
||||
|
||||
# libtool_check_for_bogus_macros
|
||||
# ------------------------------
|
||||
# Try to catch the case where `aclocal' pulls installed libtool macro
|
||||
# file contents from another version of libtool into the current package
|
||||
# `aclocal.m4'.
|
||||
libtool_check_for_bogus_macros ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
$opt_dry_run ||
|
||||
for macro in LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL; do
|
||||
if grep $macro aclocal.m4 libltdl/aclocal.m4; then
|
||||
func_fatal_error "Bogus $macro macro contents in an aclocal.m4 file"
|
||||
else :; fi
|
||||
done
|
||||
}
|
||||
func_add_hook func_fini libtool_check_for_bogus_macros
|
||||
|
||||
|
||||
# libtool_cleanup_empty_dirs
|
||||
# --------------------------
|
||||
# Gnulib leaves behind a few files we don't need.
|
||||
libtool_cleanup_empty_dirs ()
|
||||
{
|
||||
$debug_cmd
|
||||
|
||||
rm lib/.gitignore lib/Makefile.am || exit 1
|
||||
rmdir lib || exit 1
|
||||
}
|
||||
func_add_hook func_fini libtool_cleanup_empty_dirs
|
||||
|
||||
|
||||
|
||||
## -------------------- ##
|
||||
## Resource management. ##
|
||||
## -------------------- ##
|
||||
|
||||
# require_package_url
|
||||
# -------------------
|
||||
# Ensure that package_url has a sensible default.
|
||||
require_package_url=libtool_require_package_url
|
||||
libtool_require_package_url ()
|
||||
{
|
||||
$require_configure_ac
|
||||
|
||||
func_extract_trace AC_INIT
|
||||
|
||||
save_IFS="$IFS"
|
||||
IFS=:
|
||||
set dummy $func_extract_trace_result
|
||||
IFS="$save_IFS"
|
||||
shift
|
||||
|
||||
test -n "$package_url " || package_url="$5"
|
||||
test -n "$package_url" || {
|
||||
# How to extract the parameters for `make bootstrap-deps' from
|
||||
# configure.ac. This is very specific to the way Libtool's
|
||||
# configure.ac layout.
|
||||
sed_extract_package_url='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
|
||||
/AC_SUBST([[]*PACKAGE_URL/{
|
||||
s|.*AC_SUBST([[ ]*PACKAGE_URL[] ]*,[[ ]*|package_url="|
|
||||
s|[]) ]*$|"|
|
||||
p
|
||||
}'
|
||||
|
||||
# Extract package_url setting from configure.ac.
|
||||
eval `$SED -n "$sed_extract_package_url" < configure.ac`
|
||||
}
|
||||
|
||||
test -n "$package_url" \
|
||||
|| func_fatal_error "unable to determine \`package_url' from \`$configure_ac'."
|
||||
|
||||
func_verbose "package_url='$package_url'"
|
||||
|
||||
require_package_url=:
|
||||
}
|
||||
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "# bootstrap.conf (GNU Libtool) version "
|
||||
# time-stamp-format: "%:y-%02m-%02d"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
Loading…
Reference in New Issue
Block a user