libtool/bootstrap.conf

414 lines
11 KiB
Plaintext
Raw Normal View History

# bootstrap.conf (GNU Libtool) version 2011-11-24
#
maint: update copyright notices to include 2013. * gnulib/: Update to latest upstream. * AUTHORS, ChangeLog.old, HACKING, Makefile.am, NEWS, README, THANKS, TODO, bootstrap, bootstrap.conf, build-aux/edit-readme-alpha, build-aux/ltmain.in, cfg.mk, configure.ac, doc/libtool.texi, gl/build-aux/bootstrap.in, gl/build-aux/extract-trace, gl/build-aux/funclib.sh, gl/build-aux/inline-source, gl/build-aux/options-parser, libltdl/README, libltdl/argz.c, libltdl/argz_.h, libltdl/configure.ac, libltdl/libltdl/lt__alloc.h, libltdl/libltdl/lt__dirent.h, libltdl/libltdl/lt__glibc.h, libltdl/libltdl/lt__private.h, libltdl/libltdl/lt__strl.h, libltdl/libltdl/lt_dlloader.h, libltdl/libltdl/lt_error.h, libltdl/libltdl/lt_system.h, libltdl/libltdl/slist.h, libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c, libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c, libltdl/loaders/loadlibrary.c, libltdl/loaders/preopen.c, libltdl/loaders/shl_load.c, libltdl/lt__alloc.c, libltdl/lt__dirent.c, libltdl/lt__strl.c, libltdl/lt_dlloader.c, libltdl/lt_error.c, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/ltdl.mk, libltdl/slist.c, libtoolize.in, m4/argz.m4, m4/autobuild.m4, m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.in, m4/lt~obsolete.m4, tests/am-subdir.at, tests/archive-in-archive.at, tests/bindir.at, tests/cdemo.at, tests/cmdline_wrap.at, tests/configure-iface.at, tests/convenience.at, tests/ctor.at, tests/cwrapper.at, tests/darwin.at, tests/demo.at, tests/depdemo.at, tests/deplib-in-subdir.at, tests/deplibs-ident.at, tests/deplibs-mingw.at, tests/destdir.at, tests/dlloader-api.at, tests/dumpbin-symbols.at, tests/duplicate_conv.at, tests/duplicate_deps.at, tests/duplicate_members.at, tests/early-libtool.at, tests/exceptions.at, tests/execute-mode.at, tests/exeext.at, tests/export.at, tests/f77demo.at, tests/fail.at, tests/fcdemo.at, tests/flags.at, tests/help.at, tests/indirect_deps.at, tests/infer-tag.at, tests/inherited_flags.at, tests/install.at, tests/lalib-syntax.at, tests/libtool.at, tests/libtoolize.at, tests/link-order.at, tests/link-order2.at, tests/loadlibrary.at, tests/localization.at, tests/lt_dladvise.at, tests/lt_dlexit.at, tests/lt_dlopen.at, tests/lt_dlopen_a.at, tests/lt_dlopenext.at, tests/ltdl-api.at, tests/ltdl-libdir.at, tests/mdemo.at, tests/need_lib_prefix.at, tests/no-executables.at, tests/nocase.at, tests/nonrecursive.at, tests/old-ltdl-iface.at, tests/old-m4-iface.at, tests/pic_flag.at, tests/recursive.at, tests/resident.at, tests/runpath-in-lalib.at, tests/search-path.at, tests/shlibpath.at, tests/slist.at, tests/standalone.at, tests/static.at, tests/stresstest.at, tests/subproject.at, tests/sysroot.at, tests/tagdemo.at, tests/template.at, tests/testsuite.at, tests/versioning.at, tests/with-pic.at: Bump copyright year. Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2013-01-02 01:17:24 +08:00
# Copyright (C) 2010-2013 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. ##
## -------------- ##
# File that should exist in the top directory of a checked out hierarchy,
# but not in a distribution tarball.
checkout_only_file=HACKING
# List of programs (and minimum versions) required to bootstrap, maintain
# and release Libtool.
buildreq="
help2man 1.29 http://www.gnu.org/s/help2man
make 3.81 http://www.gnu.org/s/make
makeinfo 4.8 http://www.gnu.org/s/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
# Additional gnulib-tool options to use.
gnulib_tool_options=$gnulib_tool_options"
--avoid=dummy
--libtool
--macro-prefix=GL
"
# gnulib modules used by this package.
gnulib_modules='
announce-gen
bootstrap
do-release-commit-and-tag
extract-trace
gendocs
git-version-gen
gitlog-to-changelog
gnu-web-doc-update
gnupload
inline-source
maintainer-makefile
options-parser
readme-release
update-copyright
'
# Extra gnulib files that are not in modules, which override files of
# the same name installed by other bootstrap tools.
gnulib_non_module_files=$gnulib_non_module_files'
doc/COPYINGv2
doc/fdl.texi
'
# 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
"
## ------------------- ##
## Override functions. ##
## ------------------- ##
# func_reconfigure
# ------------------
# In addition to needing to autoreconf two directories, Libtool provides
# 'libtoolize' and doesn't use 'autopoint', so we can use a somewhat
# simpler 'func_reconfigure' implementation than bootstrap's version.
func_reconfigure ()
{
$debug_cmd
$require_autoheader
$require_build_aux
$require_ltdl_dir
$require_macro_dir
# Only need this from the top level directory
func_gnulib_tool
export LIBTOOLIZE
func_verbose "export LIBTOOLIZE='$LIBTOOLIZE'"
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 ." \
'exit $?'
# Also bootstrap libltdl ready for installation.
func_show_eval "$AUTORECONF$my_autoreconf_options --install $ltdl_dir" \
'exit $?'
}
## ---------------------------- ##
## 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_add_libltdl_copying
# ---------------------------
# Use the canonical COPYING.LESSERv2 from gnulib.
libtool_add_libltdl_copying ()
{
$debug_cmd
func_gnulib_tool_copy_file doc/COPYING.LESSERv2 libltdl/COPYING.LIB
}
func_add_hook func_gnulib_tool libtool_add_libltdl_copying
# 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_ltdl_dir
$require_macro_dir
$require_package
$require_package_bugreport
$require_package_name
$require_package_url
$require_package_version
# Whip up a dirty Makefile:
makes='Makefile.am libltdl/ltdl.mk'
rm -f Makefile
{
echo "aux_dir = $build_aux"
echo "ltdl_dir = $ltdl_dir"
echo "macro_dir = $macro_dir"
# The following allow us to tie bootstrap-deps output verbosity
# into the bootstrap --verbose option:
echo 'AM_V_GEN = $(am__v_GEN_$(V))'
echo 'am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))'
echo 'am__v_GEN_0 = @echo " GEN " $@;'
echo 'AM_V_at = $(am__v_at_$(V))'
echo 'am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))'
echo 'am__v_at_0 = @'
$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_show_eval "$MAKE bootstrap-deps \
AM_DEFAULT_VERBOSITY=0 `$opt_verbose && echo V=1` \
PACKAGE='$package' PACKAGE_BUGREPORT='$package_bugreport' \
PACKAGE_NAME='$package_name' PACKAGE_URL='$package_url' \
SED='$SED' srcdir=. VERSION='$package_version'"
status=$?
rm -f Makefile
test 0 -eq "$status" ||exit $EXIT_FAILURE
}
func_add_hook func_gnulib_tool libtool_build_prerequisites
# libtool_force_changelog
# -----------------------
# Automake requires that ChangeLog exist.
libtool_force_changelog ()
{
$debug_cmd
echo "Autogenerated by 'make dist'" > ChangeLog || exit 1
}
func_add_hook func_gnulib_tool libtool_force_changelog
# libtool_readme_release_package_substitutions
# --------------------------------------------
# Show our own package details instead of generic strings.
libtool_readme_release_package_substitutions ()
{
$debug_cmd
$require_build_aux
$require_package
my_readme=README-release
test -f "$my_readme" \
|| func_fatal_error "error: '$my_readme' does not exist"
# Perform substitutions to a temporary file
$SED -e "\
s|\@PACKAGE\@|$package|g
" "$my_readme" > "${my_readme}T" \
&& mv "${my_readme}T" "$my_readme"
}
func_add_hook func_fini libtool_readme_release_package_substitutions
# 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
my_gnulib_source=${source_base-'lib'}
if test -d "$my_gnulib_source"; then
rm -f "$my_gnulib_source/.gitignore" "$my_gnulib_source/Makefile.am" || exit 1
rmdir "$my_gnulib_source" || exit 1
fi
}
func_add_hook func_fini libtool_cleanup_empty_dirs
## -------------------- ##
## Resource management. ##
## -------------------- ##
# require_ltdl_dir
# ----------------
# Extract libtool's ltdl directory from configure.ac.
require_ltdl_dir=func_require_ltdl_dir
func_require_ltdl_dir ()
{
$require_configure_ac
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'"
require_ltdl_dir=:
}
# 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: