Various autotools rules will compare the timestamps of config-h.in
and configure, and if config-h.in is newer than configure, attempt
to regenerate it. This breaks `make distcheck` which we need to
produce new releases. So update config-h.in timestamp, but only
up to the configure file.
The breakage is caught because distcheck makes source dirs read-only
before running.
$ make distcheck
...
make[3]: Entering directory '.../libtool-2.4.7.62-7132f/_build/sub'
GEN ../../libltdl/configure
autom4te-2.72: error: cannot create autom4te.cache in .../libtool-2.4.7.62-7132f/libltdl: Permission denied
make[3]: *** [Makefile:2411: ../../libltdl/configure] Error 1
* bootstrap.conf (libtool_fudge_timestamps): Set config-h.in timestamp
to configure.
* gnulib: Update to the latest git version.
* gl-mod/bootstrap: Likewise.
* bootstrap: Regenerate.
* gl/top/README-release.diff: Update the patch for the latest
changes in gnulib's README-release.
.. instead of copying it all the time; gnulib-tool and bootstrap
are now ready to do this correctly.
Bootstrap upstream is now dual-licensed as MIT/GPLv2+; so the
sources are redistributed automatically under GPLv3+ license in
in libtool project.
* .gitmodules (bootstrap): New submodule.
* bootstrap.conf (local_gl_dir): Renamed to local_gl_path.
(local_gl_path): Renamed from local_gl_dir. Two sub-directories
are now mentioned as two --local-dir's are used.
(gnulib_git_submodules): New option to automatically clone the
bootstrap git submodule.
* build-aux/ltmain.in (libtool_options_prep)
(libtool_parse_options): Changing function exit status is not
needed with new options-parser.
* libtoolize.in: Don't func_quote when it is not necessary, don't
set the function return value.
* gl-mod/bootstrap: New git submodule.
* 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, gl/doc/bootstrap.texi,
gl/modules/all-shells-tests, gl/modules/bootstrap,
gl/modules/extract-trace, gl/modules/funclib.sh,
gl/modules/funclib.sh-tests, gl/modules/inline-source
gl/modules/options-parser, gl/modules/options-parser-tests,
gl/tests/test-all-shells.sh, gl/tests/test-funclib-quote.sh
gl/tests/test-option-parser-helper,
gl/tests/test-option-parser.sh: Files removed, those are
automatically pulled from upstream now.
* bootstrap: Sync with upstream.
* Makefile.am (SUBDIRS): Add gnulib-tests.
(EXTRA_DIST): Distribute also update-copyright script. This does
not happen automatically because we manually remove ./lib
directory created by gnulib-tool. Not having the file distributed
causes 'make check' failure, however.
(dotversion): Fix to point to $(top_srcdir).
* bootstrap.conf (gnulib_tool_options): Add gnulib-tool args
needed to successfully install gnulib's tests.
* configure.ac (CONFIG_STATUS_DEPENDENCIES): Look for .version in
$(top_srcdir).
* gnulib: Sync with upstream.
* build-aux/.gitignore: Ignore ar-lib coming from automake.
With gnulib commit f8fe25fab60e3, AM_PROG_AR is called
automatically from GL_EARLY macro, which brings its definition
into aclocal.m4. Sufficiently new enough AM_PROG_AR uses guarding
AC_BEFORE([AM_PROG_AR], [LT_INIT]) call.
Existence of 'LT_INIT' string inside aclocal.m4 however broke
bootstrap's self-defensive libtool_check_for_bogus_macros
function.
* build-aux/no-bogus-m4-defines: New aux helper using m4 for
aclocal.m4 pre-processing. As this is only bootstrap/dist time
assertion, we don't have to be too much careful (and the AC_BEFORE
pushdef is OK for now).
* boostrap.conf (libtool_check_for_bogus_macros): Use
no-bogus-m4-defines helper to detect bogus macros.
* Makefile.am: Likewise.
* gnulib: Sync with upstream.
* build-aux/git-log-fix: Fix typo.
* gl/build-aux/extract-trace: Fix the script timestamp.
* bootstrap: Sync with extract-trace.
* bootstrap.conf (libtool_cleanup_empty_dirs): Recent bootstrap
updates set source_base to null, so we need to use ${x:-y} to
override the null. Autoconf Shellology says that ancient BSD
/bin/sh chokes on :- defaults, but bootstrap is a developer tool,
and so we can reasonably expect a developer to have a working
/bin/sh to run the bootstrap script.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* gl/build-aux/bootstrap.in (func_autoreconf): Accept an optional
directory argument to pass to $AUTORECONF.
Update doc-comment.
* bootstrap.conf (func_reconfigure): Remove. Don't completely
overwrite bootstrap's func_reconfigure, shadowing auto-ChangeLog
management.
(func_autopoint, func_libtoolize): Overwrite these un-needed
calls instead.
(libtool_autoreconf_libltdl): New hook function to run second
autoreconf in libltdl directory.
(libtool_force_changelog): Remove. This is all handled by
bootstrap's func_reconfigure again.
* bootstrap: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap.in (func_show_eval): Use $require_term_colors to
embolden the command about to be executed in output.
* bootstrap: Regenerate.
* bootstrap.conf (libtool_build_prerequisites): Use the standard
(colorful!) bootstrap func_show_eval here too.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap.conf (libtool_build_prerequisites): Add support for
AM_V_GEN and AM_V_at to the temporary pre-configure Makefile.
Instead of eliding non-error output from bootstrap-deps, show
the results, with verbosity set according to $opt_verbose.
* Makefile.am (m4/ltversion.m4, build-aux/ltmain.sh, libtool)
(README): Fix the display rules to correctly fall-back to
AM_DEFAULT_VERBOSITY when V=1 is not passed to make invocation.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Modern GNU ASCII quoting in output and comments is done
'like this'.
* cfg.mk (sc_old_style_quoting): Try to catch most instances
of `old style quoting' so that it is not accidentally re-
introduced to the code.
* HACKING, Makefile.am, NEWS, PORTING, README, TODO, bootstrap,
bootstrap.conf, build-aux/edit-readme-alpha,
build-aux/git-hooks/commit-msg, build-aux/ltmain.in,
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/libltdl/slist.h, libltdl/loaders/loadlibrary.c,
libltdl/ltdl.c, libltdl/slist.c, libtoolize.in, m4/argz.m4,
m4/libtool.m4, m4/ltdl.m4, m4/ltoptions.m4, m4/ltsugar.m4,
tests/cmdline_wrap.at, tests/configure-iface.at, tests/demo.at,
tests/depdemo.at, tests/deplib-in-subdir.at,
tests/deplibs-mingw.at, tests/destdir.at, tests/execute-mode.at,
tests/f77demo.at, tests/fail.at, tests/inherited_flags.at,
tests/libtool.at, tests/libtoolize.at, tests/lt_dladvise.at,
tests/lt_dlexit.at, tests/mdemo.at, tests/need_lib_prefix.at,
tests/old-ltdl-iface.at, tests/old-m4-iface.at, tests/static.at,
tests/stresstest.at, tests/testsuite.at, tests/versioning.at:
Convert to upright quotes.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
In order to work as if it were already adopted by upstream
gnulib, put bootstrap and supporting scripts into the local
gnulib overrides directory.
* bootstrap, build-aux/extract-trace, build-aux/funclib.sh,
build-aux/inline-source, build-aux/options-parser: Move from
here...
* 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: ...to here.
* gl/build-aux/options-parser (func_version): Show only the
first copyright notice on files generated with inline-source.
* gl/doc/bootstrap.texi: Developer documentation for bootstrap.
* gl/modules/extract-trace, gl/modules/funclib.sh,
gl/modules/inline-source, gl/modules/options-parser: Describe
dependencies for gnulib-tool.
* bootstrap.conf (gnulib_modules): Add extract-trace,
inline-source and options-parser modules.
* bootstrap: Regenerated from gnulib overrides as a mono-
lithic script file using gl/build-aux/inline-source.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap.conf (buildreq): Use gnu.org/s/ style urls to match
the ones added automatically by the main bootstrap script.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Now that the code base has coalesced around a single option
parser, there's no need for the unused getopt.m4sh and support.
* build-aux/getopt.m4sh, build-aux/general.m4sh,
tests/getopt-m4sh.at: Remove.
* Makefile.am (m4sh_dir, LT_M4SH, general_m4sh, getopt_m4sh)
(sh_files): Remove.
(TESTSUITE_AT): Remove tests/getopt-m4sh.at.
(TESTS_ENVIRONMENT): Remove M4SH.
* bootstrap.conf (libtool_build_prerequisites): Remove M4SH.
* configure.ac (M4SH): Remove.
* HACKING (Editing `.m4sh' Files): Remove and renumber following
sections.
Make is not installed by default in some environments, such as
cygwin... which is slow enough already without having to wait
for gnulib-tool, bootstrap and half of configure to complete
before getting an error.
* bootstrap.conf (buildreq): Add recent GNU make to bootstrap
requirements. Now missing make is diagnosed in the earliest
part of bootstrap.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
With all those extra demo directories out of the way, we can
revert to a more canonical bootstrap process, and jettison the
cruft that was only there to work around the pain of
needing to autoreconf 11 directories. Bootstrap is now an order
of magnitude faster.
* bootstrap.conf (require_ltdl_dir): New function. Factored out
of `libtool_build_prerequisites'.
(libtool_build_prerequisites): Adjust.
(func_reconfigure): Use `require_ltdl_dir' to determine the name
of the other directory we need to autoreconf during bootstrap.
(libtool_options_prep, libtool_parse_options)
(libtool_validate_options): Remove.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
See maintain.texi (Copyright Notices) for rules for maintaining
the years in copyright notices.
* All Files (Copyright): Updated with missing 2011 and 2012.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
See maintain.texi (Copyright Notices) for rules for maintaining
the years in copyright notices.
* bootstrap.conf (gnulib_modules): Add update-copyright.
* cfg.mk (update-copyright-env): Set environment variables for
update-copyright script.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Automake refuses to run in GNU-mode unless there is a ChangeLog file
in the top-level directory.
* bootstrap.conf (libtool_force_changelog): Create a dummy ChangeLog.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
I like to name temporary directories that I will remove shortly
with two leading commas so that they sort lexicographically at
the top of `ls' output. Now, `./configure
--prefix=`pwd`/,,inst' works again, for the first time in
several years.
* cfg.mk (sc_prohibit_sed_s_comma): Comma is too common a
character to use routinely as the separator for sed
substitutions on file paths and other variables determined by
the user, causing bugs like the one I describe above. Make sure
we don't accidentally reintroduce any comma separators in
future.
* Makefile.am, bootstrap, bootstrap.conf, build-aux/extract-trace,
build-aux/general.m4sh, build-aux/git-hooks/commit-msg,
build-aux/git-log-fix, build-aux/ltmain.m4sh, libtoolize.m4sh,
m4/libtool.m4, m4/ltdl.m4, tests/cdemo-undef.test,
tests/cmdline_wrap.at, tests/darwin.at, tests/defs.m4sh,
tests/getopt-m4sh.at, tests/install.at, tests/libtoolize.at,
tests/mdemo/Makefile.am, tests/need_lib_prefix.at,
tests/sysroot.at, tests/tagdemo-undef.test, tests/testsuite.at:
Try to use `|' as the default separator wherever possible,
otherwise something else that doesn't occur in the substitution
expression.
* NEWS: Updated.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Contrary to popular belief, Bourne shell does not resplit RHS of
assignments after expansion, so if there are no unquoted shell
metacharacters or whitespace, the quotes are useless.
* cfg.mk (_sc_search_regexp_or_exclude): A variation of gnulib's
_sc_search_regexp that also allows individual exclusions at the
site of what would otherwise match by adding a comment.
(sc_useless_quotes_in_assignment): New syntax-check rule to
ensure we don't reintroduce useless quoted assignments.
* bootstrap, bootstrap.conf, build-aux/edit-readme-alpha,
build-aux/general.m4sh, build-aux/getopt.m4sh,
build-aux/ltmain.m4sh, build-aux/options-parser, configure.ac,
doc/libtool.texi, libtoolize.m4sh, m4/libtool.m4, m4/ltdl.m4,
m4/ltoptions.m4, tests/cwrapper.at, tests/defs.m4sh,
tests/lalib-syntax.at, tests/libtoolize.at,
tests/lt_dlopenext.at, tests/mdemo/configure.ac,
tests/mdemo2/configure.ac, tests/need_lib_prefix.at,
tests/no-executables.at, tests/quote.test, tests/suffix.test:
Remove spurious quotes.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
In addition to moving the autoconf auxiliary script directory
into the place expected by GNU developers ($top_srcdir/build-aux)
we also simplify libtoolize somewhat by having libltdl use
whatever directory was specified by the parent project. This is
much more flexible, allows libltdl client projects to also use a
single canonical `$top_srcdir/build-aux' auxiliary script
directory, and maintains backward compatibility with existing
projects that wish to continue using $ltdl_dir/config.
* libltdl/config: Moved whole directory from here...
* build-aux: ...to here.
* libtoolize.m4sh (func_install_pkgaux_subproject): Remove.
(func_install_pkgaux_parent): Remove.
(func_install_pkgaux_files): Considerably simplified now that we
have only a single auxiliary directory to worry about.
(subproject_aux_dir): Remove.
* bootstrap.conf (libtool_readme_release_package_substitutions):
No need to substitute our old unusual aux_dir location into
README-release any more.
* cfg.mk (_build-aux): Now that we use the standard location for
this directory, no need to set this variable either.
* configure.ac (AC_INIT): git-version-gen has moved.
(AC_CONFIG_AUX_DIR): Adjust.
* Makefile.am (stamp-mk, auxexefiles, auxfiles)
(install-data-local): Use build-aux instead of config.
(libltdl/stamp-mk): Ditto.
* libltdl/configure.ac, tests/cdemo/configure.ac,
tests/demo/configure.ac, tests/depdemo/configure.ac,
tests/f77demo/configure.ac, tests/fcdemo/configure.ac,
tests/mdemo/configure.ac, tests/mdemo2/configure.ac,
tests/pdemo/configure.ac, tests/tagdemo/configure.ac
(AC_CONFIG_AUX_DIR): Ditto.
* tests/defs.m4sh (aux_dir): Ditto.
* tests/configure-iface.at, tests/getopt-m4sh.at,
tests/libtoolize.at, tests/subproject.at, tests/testsuite.at:
Ditto.
* Makefile.am (ltdl_ac_aux_dir): Extract at build-time...
* libtoolize.m4sh (require_ltdl_ac_aux_dir): ...so that
libtoolize can access it at runtime without requiring GNU M4 via
the extract-trace script.
(require_Makefile_am_filter): Use it to determine whether the
aux_dir declared in the current (parent) project configure is
compatible with the declarations in installed ltdl autotools
source files.
(require_configure_ac_filter): New function to perform similar
checks and rewrite configure.ac during installation if necessary.
* NEWS: Updated.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* libltdl/Makefile.inc: Moved from here...
* libltdl/ltdl.mk: ...to here.
* Makefile.am, bootstrap.conf, tests/libtoolize.at,
tests/nonrecursive.at: Adjust.
* libtoolize.m4sh (func_install_pkgltdl_files): Set the
destination file to `Makefile.inc' if grep finds an include for
that name in a top-level Makefile.am.
(func_check_macros): Print a deprecation warning if use of the
old `Makefile.inc' convention is found.
* tests/old-ltdl-iface.at: New test for renaming and warning
correctly when `Makefile.inc' convention is still in use.
* NEWS: Updated.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
It's much too easy to forget that the functions you hook into
the option parser need to return unconsumed options in the
variable `func_run_hooks_result'; better to follow the
convention used in the rest of bootstrap and return results in a
variable named after the function with `_result' appended.
* libltdl/config/options-parser (func_run_hooks): implement this
new API.
(Option parsing): Update the example in the header comment for
this section to reflect the changes.
* bootstrap (bootstrap_options_prep, bootstrap_parse_options)
(bootstrap_validate_options): Adjust.
* bootstrap.conf (libtool_options_prep, libtool_parse_options)
(libtool_validate_options): Ditto.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap: Bourne shell has no scoping, so be extremely
careful with namespaces, functions in `^func_' and `^require_';
private variables in `^_G_', and public variables all well
documented by comments.
* libltdl/config/extract-trace: New file, containing the minimum
of code previously in bootstrap plus a little glue to make the
GNU M4 based autotools tracing function (as opposed to the
kludgy sed extraction currently used everywhere else) a
standalone script that can be executed or sourced.
* libltdl/config/options-parser: New file, containing the
pluggable options parser code shared between the other two.
* bootstrap.conf: Adjust.
* Makefile.am (EXTRA_DIST): Be sure to distribute the new
extract-trace and options-parser scripts.
(install-data-local): And install them where libtoolize can find
them.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap (func_require_autobuild_buildreq): Skip if autobuild.m4
is already present.
* bootstrap.conf (require_autobuild_bulidreq): No need to set this
specially any more.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap (func_gnulib_tool_copy_file): When gnulib-tool is
not available, check that there is a copy of the file from a
previous run available before bailing out with a diagnostic.
(func_install_gnulib_non_module_files): Don't diagnose missing
files explicitly - func_gnulib_tool_copy_file takes care of it
now.
(func_require_checkout_only_file): In the diagnostic for
not being in a source-controlled tree, note that `--force' must
be used to rebootstrap.
(func_require_gnulib_files_already_present): Removed. All the
necessary checks are correctly performed in
func_gnulib_tool_copy_file withot resorting to heuristics.
(func_require_gnulib_mk): Don't continue to try to access
gnulib-cache.m4 after discovering we're running from a dist
tarball.
(func_require_dotgitmodules_parameters): Skip if .gitmodules
file is missing and git binary is not available.
* bootstrap.conf (checkout_only_file): Set to HACKING, which is
a non-distributed file.
(libtool_cleanup_empty_dirs): Don't print spurious errors when
trying to delete gnulib-tool droppings, in case gnulib-tool is
not available on this run.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* ChangeLog: Removed.
* HACKING (Editing 'ChangeLog'): Removed. Renumbered other sections to
compensate.
* bootstrap.conf (gnulib_modules): Add gitlog-to-changelog.
* Makefile.am (ChangeLog): Generate the ChangeLog for 2011...
(dist-hook): ...from the output of `git log' before rolling a
distribution tarball.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* libltdl/config/mkstamp: File removed.
* bootstrap.conf (gnulib_modules): Add git-version-gen.
* configure.ac (AC_INIT, package_revision): Use git-version-gen to
calculate version number.
(TIMESTAMP): Removed.
* libtoolize.m4sh, libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4
(TIMESTAMP): Ditto.
* Makefile.am (TIMESTAMP): Ditto.
(MKSTAMP): Renamed from this...
(git_version_gen): ...to this. Set revision here. An alpha is now a
release with an odd micro relase number.
(rebuild): Don't reset revision here.
(build_scripts): Remove mkstamp, add git-version-gen.
(EXTRA_DIST, BUILT_SOURCES): Add .version.
(libltdl/config/ltmain.sh, libltdl/m4/ltversion.m4, tests/package.m4):
Don't depend on configure.ac or ChangeLog to determine when the
version number has reved, use .version directly.
(.version): Flush most recent configure calculated VERSION to disk.
(dist-hook): Flush current VERSION to disk at dist time.
(dotserial): Distributed file to cache the serial number for
when git is not available to recalculate it when building from a
release tarball.
(dist-hook): Make sure .serial is created.
(libltdl/config/ltversion.m4): Use .serial when it is present
(in a dist tarball) or calculate with git otherwise (in a git
working directory).
(EXTRA_DIST): Add .serial file.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap.conf (gnulib_modules): Add maintainer-makefile.
(gnulib_tool_options): Add --avoid=dummy now that we have a real
module to import.
* cfg.mk: New file. Customize maint.mk for Libtool.
* Makefile.am (EXTRA_DIST): Add GNUmakefile, cfg.mk and maint.mk.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* COPYING, libltdl/COPYING.LIB: Removed.
* bootstrap.conf (gnulib_non_module_files): Add COPYING.
(libtool_add_libltdl_copying): New func_gnulib_tool hook
function to copy the canonical LGPL2 COPYING file from gnulib at
bootstrap.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* bootstrap: Replaced with gnulib script.
* bootstrap.conf: New file with Libtool specific bootstrap
configuration.
* Makefile.am (EXTRA_DIST): Add bootstrap.conf.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>