| # bootstrap.conf (GNU Libtool) version 2014-11-18 | |
| # | |
| # Copyright (C) 2010-2019, 2021-2025 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 <https://www.gnu.org/licenses/>. | |
| ## -------------------------------- ## | |
| ## 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: |