Gary V. Vaughan [Sun, 7 Oct 2012 10:51:17 +0000 (17:51 +0700)]
maint: simplify "Local variables:" footer with time-stamp-pattern.
* bootstrap, build-aux/extract-trace, build-aux/options-parser
(Local variables): Use time-stamp-pattern to set number of
searched lines to 10, and to replace time-stamp-start,
time-stamp-end and time-stamp-format.
Gary V. Vaughan [Sat, 6 Oct 2012 08:01:52 +0000 (15:01 +0700)]
tests: sanitise the libtool quote checking Autotests.
Carefully comment the maze of quoting and escaping needed to
pass through M4, $SHELL, and grep before regexp matching.
* tests/libtool.at (quote shell meta-characters in filenames):
Split backslash into a separate test group, because it needs
additional escaping.
Use grep consistently for the entire test group.
Use AT_CHECK rather than LT_AT_CHECK to avoid problems with
escaping literal $ correctly with LT_ESCAPE.
Use the correct number of backslashes for each sub-group.
Escape double-quote literals portably.
Reported by Peter Rosin.
Gary V. Vaughan [Sat, 6 Oct 2012 05:53:33 +0000 (12:53 +0700)]
tests: ensure mdemo.at doesn't rely on installed libltdl.
* tests/mdemo.at (configuer.ac): Build an included convenience
libltdl.
(Makefile.am): Add subdir-objects.
Remove override rules from legacy mdemo tests to reuse parent
libltdlc.la.
(LT_AT_CHECK_CONFIG): Add --with-included-ltdl to configure
arguments so that test cases always use the subproject libltdl
in preference to any installed libltdl.
Reported by Peter Rosin.
Gary V. Vaughan [Sat, 6 Oct 2012 04:47:56 +0000 (11:47 +0700)]
tests: allow for unstable fortran output ordering.
Due to differences in line-endings between C stdout and Fortran
stdout, as well as unpredictable output ordering between
platforms and runtimes, weaken success criteria to not require
the entire output of fortran programs to match a test case.
* itests/fcdemo.at, tests/f77demo.at (_LT_CHECK_EXECUTE):
Improve comments, and weaken test case to grep for a known line
in the f77 runtime output.
Gary V. Vaughan [Thu, 4 Oct 2012 15:54:55 +0000 (22:54 +0700)]
tests: remove last vestiges of the legacy test harness.
All legacy tests have been fully migrated to Autotest, so
no need to cling to the legacy scaffolding any more.
* tests/defs.m4sh: Delete file.
* configure.ac (AM_INIT_AUTOMAKE): Remove unused color-tests and
parallel-tests options.
* Makefile.am (defs_m4sh, defs_in, defs, TESTS): Remove.
Adjust all dependencies.
Gary V. Vaughan [Sun, 27 Nov 2011 16:50:15 +0000 (23:50 +0700)]
configure: remove unused conditionals and support for order only rules.
Clean up some more unused cruft.
* configure.ac (HAVE_CXX, HAVE_F77, HAVE_FC, HAVE_GCJ, HAVE_RC):
Remove. These were only used by the recently removed legacy
tests.
[order-only prerequisites]: Ditto.
Gary V. Vaughan [Thu, 24 Nov 2011 11:36:04 +0000 (18:36 +0700)]
bootstrap: remove support for `-r' and `reconf_dirs'.
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.
Gary V. Vaughan [Sun, 27 Nov 2011 12:18:23 +0000 (19:18 +0700)]
tests: let pic_flag and with-pic Autotests work on non-VPATH builds.
* tests/pic_flag.at: Use _LT_DEMO_SETUP to generate a demo style
project, rather than relying on $abs_top_srcdir/configure.
* tests/with-pic.at: Likewise.
* Makefile.am (TESTSUITE_AT): Move tests/pic_flag.at and
tests/with-pic.at so that they run immediately following
tests/demo.at.
Gary V. Vaughan [Thu, 24 Nov 2011 11:26:17 +0000 (18:26 +0700)]
tests: migrate legacy tests/fcdemo tests to Autotest.
Along with the demise of the last demo directory, so all the
cruft for re-autotooling and distributing the additional
directories is no longer necessary.
* tests/fcdemo.at: New autotest groups, based on...
* tests/fcdemo-conf.test, tests/fcdemo-exec.test,
tests/fcdemo-make.test, tests/fcdemo-shared-exec.test,
tests/fcdemo-shared-make.test, tests/fcdemo-shared.test,
tests/fcdemo-static-exec.test, tests/fcdemo-static-make.test,
tests/fcdemo-static.test: ...these legacy tests, now removed.
* tests/fcdemo/Makefile.am, tests/fcdemo/README,
tests/fcdemo/configure.ac, tests/fcdemo/cprogram.c,
tests/fcdemo/foo.h, tests/fcdemo/fooc.c, tests/fcdemo/foof.f90,
tests/fcdemo/foof2.f90, tests/fcdemo/foof3.f90,
tests/fcdemo/fprogram.f90: Remove.
* configure.ac (CONF_SUBDIRS, DIST_MAKEFILE_LIST): Remove.
* Makefile.am (DIST_SUBDIRS, FC_TESTS, clean-local-legacy)
(configure-subdirs, distclean-recursive, distdir)
(fake-distclean-legacy, $(DIST_MAKEFILE_LIST)): Remove.
(COMMON_TESTS): Rename from this...
(TESTS): ...to this.
Gary V. Vaughan [Thu, 24 Nov 2011 08:49:07 +0000 (15:49 +0700)]
tests: migrate legacy tests/mdemo2 tests to Autotest.
This test was just a small non-ltdl aware library to load a
library from the legacy mdemo test, which in turn used ltdl to
call functions from modules. No need to create a whole other
test group with copies of everything from mdemo setup - just
tack the additional test on the end of the mdemo group.
* tests/mdemo.at (link with library that loads ltdl modules):
New test, based on...
* tests/mdemo2-conf.test, tests/mdemo-exec.test,
tests/mdemo-make.test: ...these legacy tests, now removed.
* tests/mdemo2/Makefile.am, tests/mdemo2/README,
tests/mdemo2/configure.ac, tests/mdemo2/main.c: Remove.
* configure.ac (CONF_SUBDIRS): Remove tests/mdemo2.
* Makefile.am: Adjust.
Gary V. Vaughan [Thu, 24 Nov 2011 04:29:10 +0000 (11:29 +0700)]
tests: migrate legacy tests/pdemo tests to Autotest.
This test was a thinly veiled copy of the basic legacy
demo-conf.test series, with the addition of long file names that
are not unique in the first 17 characters of their name, mashed
up with the cmdline_wrap.at max_cmd_len limits. Migrating to
Autotest means that this test will be automatically rerun with
max_cmd_len=24 as cmdline_wrap.at recurses through the whole
testsuite, so the migrated pdemo test is now simply another test
case in demo.at with longer file names.
* test/demo.at (linking with long file names): New test, based
on...
* tests/pdemo-conf.test, tests/pdemo-exec.test,
tests/pdemo-inst.test, tests/pdemo-make.test: ...these legacy
tests, now removed.
* tests/pdemo/Makefile.am, tests/pdemo/configure.ac,
tests/pdemo/foo.h, tests/pdemo/longer_file_name_dlmain.c,
tests/pdemo/longer_file_name_foo.c,
tests/pdemo/longer_file_name_foo2.c,
tests/pdemo/longer_file_name_hell1.c,
tests/pdemo/longer_file_name_hell2.c,
tests/pdemo/longer_file_name_hello.c,
tests/pdemo/longer_file_name_main.c: Remove.
* configure.ac (CONF_SUBDIRS): Remove tests/pdemo.
* Makefile.am: Adjust.
Gary V. Vaughan [Thu, 4 Oct 2012 13:04:32 +0000 (20:04 +0700)]
syntax-check: fix violations and implement sc_prohibit_space_semicolon.
No need for a spurious space before a command ending semi-colon.
* cfg.mk (sc_prohibit_space_semicolon): New test to catch
accidental reintroduction of spurious spaces removed by this
changeset.
* bootstrap, build-aux/general.m4sh, build-aux/ltmain.m4sh,
libltdl/lt__strl.c, m4/libtool.m4, m4/ltdl.m4, tests/bindir.at:
Remove spurious spaces.
Gary V. Vaughan [Wed, 3 Oct 2012 04:49:27 +0000 (11:49 +0700)]
Merge branch 'gary/reredo-test-operand-order'
The original manually applied changeset 962aa91 contained several
errors (some corrected by subsequent patches on master, others not)
and many unrelated (although in this case, correct) changes were also
committed in the same changeset.
The merged branch gary/reredo-test-operand-order factors the
unrelated changes out into separate commits, and performs the work
that should have been in 962aa91 with a script, the results of which
were then painstakingly inspected for errors.
This merge moves the corrections for errors made in the original
manual patch from the branch onto master. Please inspect the many
separate changesets on the branch rather than the original patch
when you bisect or otherwise find your way to an error caused by 962aa91.
Gary V. Vaughan [Tue, 2 Oct 2012 12:09:51 +0000 (19:09 +0700)]
libtool: simplify multiple string tests
* build-aux/ltmain.m4sh (func_mode_link): Save test invocations
by using 'test x,y = "$a,$b"' instead of 'test x = "$a" && test y
= "$b"'.
* m4/libtool.m4: Likewise.
Gary V. Vaughan [Tue, 2 Oct 2012 11:52:40 +0000 (18:52 +0700)]
libtool: fold if into a compound OR statement when more readable
* build-aux/ltmain.m4sh (func_mode_link): For readability, use
'test string = "$var" || { stuff; }' in preference to
'if test string != "$var"; then stuff; fi'.
Gary V. Vaughan [Tue, 2 Oct 2012 11:08:29 +0000 (18:08 +0700)]
libtool: use false or : for $rmforce, and simplify
* build-aux/ltmain.m4sh (func_mode_uninstall): Save a string
comparison by setting $rmforce to false or : and using it
directly as the first argument to if.
Gary V. Vaughan [Tue, 2 Oct 2012 11:08:29 +0000 (18:08 +0700)]
libtool: use false or : for $wrappers_required, and simplify
* build-aux/ltmain.m4sh (func_mode_link): Save a string
comparison by setting $wrappers_required to false or : and using
it directly with a ored block rather than an if statement.
Gary V. Vaughan [Tue, 2 Oct 2012 11:08:29 +0000 (18:08 +0700)]
libtool: use false or : for $linkalldeplibs, and simplify
* build-aux/ltmain.m4sh (func_mode_link): Save a string
comparison by setting $linkalldeplibs to false or : and using it
directly as the first argument to if.
Gary V. Vaughan [Tue, 2 Oct 2012 11:08:29 +0000 (18:08 +0700)]
libtool: use false or : for $valid_a_lib, and simplify
* build-aux/ltmain.m4sh (func_mode_link): Save a string
comparison by setting $valid_a_lib to false or : and using it
directly as the first argument to if.
Gary V. Vaughan [Tue, 2 Oct 2012 11:08:29 +0000 (18:08 +0700)]
libtool: use false or : for $alldeplibs, and simplify
* build-aux/ltmain.m4sh (func_mode_link): Save a string
comparison by setting $alldeplibs to false or : and using it
directly as the first argument to if.
Gary V. Vaughan [Tue, 2 Oct 2012 11:08:29 +0000 (18:08 +0700)]
libtool: use false or : for $my_pic_p, and simplify
* build-aux/ltmain.m4sh (func_generate_dlsyms): Save a string
comparison by setting $my_pic_p to false or : and using it directly
instead of calling if.
Adjust all callers.
Gary V. Vaughan [Tue, 2 Oct 2012 11:08:29 +0000 (18:08 +0700)]
libtool: use false or : for $finalize, and simplify
* build-aux/ltmain.m4sh (func_mode_install): Save a string
comparison by setting $finalize to false or : and using it
directly as the first argument to if.
Gary V. Vaughan [Tue, 2 Oct 2012 11:08:29 +0000 (18:08 +0700)]
libtool: use false or : for $isdir, and simplify
* build-aux/ltmain.m4sh (func_mode_install): Save a string
comparison by setting $isdir to false or : and using it directly
as the first argument to if.
Peter Rosin [Wed, 19 Sep 2012 09:53:02 +0000 (11:53 +0200)]
tests: skip with-pic test when no "real" pic flag is used.
* tests/with-pic.at: Windows uses "-DDLL_EXPORT -DPIC" as the pic
"flag", but never applies it to static libraries. Cater for this
and skip if no "real" pic flag is in use.
Gary V. Vaughan [Sun, 16 Sep 2012 06:17:46 +0000 (13:17 +0700)]
maint: remove unused cvsu script.
* build-aux/cvsu: Remove. This script is not useful now that
Libtool's repository is hosted in git.
* Makefile.am (build_scripts): Remove cvsu reference.
Gary V. Vaughan [Sun, 16 Sep 2012 06:10:09 +0000 (13:10 +0700)]
maint: run update-copyright for missing 2011 and 2012 years.
See maintain.texi (Copyright Notices) for rules for maintaining
the years in copyright notices.
* All Files (Copyright): Updated with missing 2011 and 2012.
Gary V. Vaughan [Sun, 16 Sep 2012 06:04:23 +0000 (13:04 +0700)]
bootstrap: use gnulib update-copyright script.
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.
Gary V. Vaughan [Sun, 16 Sep 2012 04:40:16 +0000 (11:40 +0700)]
gnulib: update local gnulib patches.
* gl/build-aux/announce-gen.diff: Remove hunks adopted upstream.
* gl/build-aux/do-release-commit-and-tag.diff: Refresh this patch
to match current gnulib.
Gary V. Vaughan [Sun, 16 Sep 2012 04:34:19 +0000 (11:34 +0700)]
bootstrap: ensure there is a ChangeLog before running automake.
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.
Gary V. Vaughan [Sat, 24 Dec 2011 01:30:12 +0000 (08:30 +0700)]
gnulib: update gnulib submodule.
Among others, this fixes the reference to a local commit.
* gnulib: Updated to todays master HEAD revision.
* gl/top/README-release.diff: Update to account for changes to
gnulib/top/README-release since the last gnulib update.
Gary V. Vaughan [Sun, 18 Dec 2011 13:41:10 +0000 (20:41 +0700)]
libtool: make fork minimisation compatible with dash and zsh.
* build-aub/general.m4sh (lt_HAVE_PLUSEQ_OP): Instead of using
$((..)) arithmetic, which causes an error on dash, use a case
based bash version check.
(lt_HAVE_ARITH_OP, lt_HAVE_XSI_OPS): Also short circuit the
feature probing forks and set these automatically when zsh is
detected.
Reported by Stefano Lattarini.
Dash shipped with Ubutu-11.10 as /bin/sh, among others, still
has a crippled echo builtin that mis-handles backslashes.
* build-aux/options-parser (bs_echo): Adopt the autoconf echo
normalization code to find a suitable replacement for buggy echo
commands.
Adjust all uses of echo to $bs_echo.
* build-aux/extract-trace (func_extract_trace, func_main):
Likewise.
* bootstrap: To retain some execution speed on platforms with
buggy builtin echo, replace most occurrences of `echo' with
`$bs_echo' - except where its arguments will obviously never
contain backslashes or be overly long.
Reported by Reuben Thomas.
Gary V. Vaughan [Thu, 8 Dec 2011 10:01:56 +0000 (17:01 +0700)]
libtool: minimise forks per invocation under bash.
* build-aux/general.m4sh (lt_HAVE_PLUSEQ_OP, lt_HAVE_ARITH_OP)
(lt_HAVE_XSI_OPS): Set these without forking a test script when
running under bash, to avoid a few unnecessary forks.
Aside from Apple grep silently failing to run this test and
report violations, libtool still uses non-gnulib versions of
dirent.h and argz.h which use the same macros, but are not
always-defined.
* cfg.mk (local-checks-to-fix): Move
sc_prohibit_always-defined_macros from here...
(local-checks-to-skip): ...to here.
Reported by Peter O'Gorman.
Gary V. Vaughan [Thu, 8 Dec 2011 10:33:28 +0000 (17:33 +0700)]
tests: make sure file restore traps are called correctly on AIX.
* tests/demo-noinst-link.test (func_save_files): set the restore
trap outside a function, otherwise AIX 5.3 /bin/sh will run the
trap at the end of the function, instead of when the script
exits.
* tests/demo-relink.test (func_save_files): Ditto.
* tests/depdemo-relink.test (func_save_files): Ditto.
Reported by Stefano Lattarini.
Gary V. Vaughan [Thu, 8 Dec 2011 10:09:02 +0000 (17:09 +0700)]
bootstrap: put back missing spaces before parens.
* bootstrap (func_require_buildreq_autobuild)
(func_require_buildreq_automake): Vi's delete word command is
too greedy and also eats trailing whitespace before following
non-word-chars. Put back the spaces it ate so that
syntax-checks pass once again.
Gary V. Vaughan [Sat, 19 Nov 2011 15:33:16 +0000 (22:33 +0700)]
libtoolize: refactor copying filter creation.
Prevent the various require_filter functions from becoming too
long by factoring common code into new functions.
* libtoolize (func_make_relative_dir_filter)
(func_make_relative_ltdl_filter): New functions. Generalize and
consolidate the various similar snippets for concatenating
together the sed scripts for func_copy filtering.
(require_filter_Makefile_am, require_filter_aclocal_m4)
(require_filter_configure_ac): Simplify.
(require_ltdl_relative_aux_dir): Remove.
(require_ltdl_relative_macro_dir): Ditto.
Gary V. Vaughan [Sat, 19 Nov 2011 13:54:43 +0000 (20:54 +0700)]
maint: pick XSI funcs at runtime, not configure time.
Determine, on a function by function basis, what XSI features
are available in the shell that is actually running the script,
rather than the one that was picked at configure time by the
re-execution engine.
* m4/libtool.m4 (_LT_PROG_FUNCTION_REPLACE)
(_LT_PROG_REPLACE_SHELLFNS): Remove.
(_LT_CHECK_SHELL_FEATURES): Remove tests for XSI and += support.
* build-aux/general.m4sh (func_append, func_append_quoted)
(func_arith, func_len, func_basename, func_dirname)
(func_dirname_and_basename, func_stripname): List both enhanced
and fallback implementations, and choose one based on whether
the enhanced features required by the fastest version are
available.
* build-aux/getopt.m4sh (func_split_short_opt)
(func_split_long_opt): Ditto.
* build-aux/ltmain.m4sh (func_lo2o, func_xform): Ditto.
* tests/getopt-m4sh.at: Add tests for enhanced and fallback
implementations of func_arith, func_len, func_stripname and
func_dirname_and_basename.
* NEWS: Updated.