| # 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: |