# bootstrap.conf (GNU Libtool) version 2014-11-18 # # Copyright (C) 2010-2019, 2021-2024 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. If not, see . ## -------------------------------- ## ## User overridable 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 https://www.gnu.org/s/help2man make 3.81 https://www.gnu.org/s/make makeinfo 4.8 https://www.gnu.org/s/texinfo xz 4.999.8beta https://tukaani.org/xz " # Instructions on how to install packages in $buildreq. buildreq_readme=HACKING # Non-default gnulib directories. local_gl_path=gl:gl-mod/bootstrap # We don't need the whole copy of gnulib. gnulib_clone_since=2019-02-19 # Additional gnulib-tool options to use. gnulib_tool_options=$gnulib_tool_options" --avoid=dummy --libtool --macro-prefix=GL --with-tests --tests-base=gnulib-tests " # 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 ' gnulib_git_submodules=' gl-mod/bootstrap ' # 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_autopoint # -------------- # Libtool does not use autopoint. func_autopoint () { $debug_cmd } # func_libtoolize # --------------- # Libtoolize is part of Libtool! func_libtoolize () { $debug_cmd } ## ---------------------------- ## ## Libtool bootstrap functions. ## ## ---------------------------- ## # libtool_prep # ------------ # Libtool bootstrap initialisation after successful option parse and # validation. libtool_prep () { $debug_cmd # 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_autoreconf_libltdl # -------------------------- # Libtldl directory needs to be autoreconfed too. libtool_autoreconf_libltdl () { $debug_cmd # Also bootstrap libltdl ready for installation. func_autoreconf libltdl } func_add_hook func_reconfigure libtool_autoreconf_libltdl # 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... undesirable for users that do not # have it! Fudge the timestamp to prevent that. But only fudge it as # much as configure since configure depends on config-h.in and we don't # want to require autoconf either. libtool_fudge_timestamps () { $debug_cmd ( cd libltdl touch -r configure 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 $require_build_aux $build_aux/no-bogus-m4-defines || exit 1 } 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 () { $debug_cmd $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 () { $debug_cmd $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: