# bootstrap.conf (GNU Libtool) version 2011-11-24 # # Copyright (C) 2010-2014 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: