Gary V. Vaughan [Fri, 28 Oct 2011 12:18:43 +0000 (19:18 +0700)]
libtoolize: use only space delimited file lists.
We don't install any files with whitespace in their file name,
so using colon delimited lists to make that possible was a
premature optimisation and an unneeded complication.
* libtoolize.m4sh (func_copy_some_files): Remove IFS twiddling,
and just pull space delimited files in a for loop idiomatically.
(func_massage_aclocal_DATA, func_install_pkgmacro_subproject)
(func_install_pkgmacro_parent, func_install_pkgmacro_files)
(func_massage_pkgltdl_files, func_massage_pkgconfig_files):
Append to file lists with space delimiter.
Gary V. Vaughan [Fri, 4 Nov 2011 10:08:32 +0000 (17:08 +0700)]
libtoolize: remove sed based configure scanning.
* libtoolize (func_scan_files): Removed function and callers.
(require_seen_ltdl, require_seen_libtool): Factor out remaining
functionality of former sed based scanning.
(func_check_macros): Adjust.
* NEWS: Updated.
Gary V. Vaughan [Fri, 4 Nov 2011 09:10:28 +0000 (16:10 +0700)]
libtoolize: refactor ltdl_mode discovery.
* libtoolize.m4sh (require_ac_ltdl_mode)
(require_ac_ltdl_options, require_ltdl_mode): New functions
factored out of func_scan_files for scanning and setting
ltdl_mode and friends.
(func_scan_files): Remove the factored out code.
(func_install_pkgmacro_files, func_install_pkgltdl_files)
(func_install_pkgconfig_files, func_check_macros): Adjust.
Gary V. Vaughan [Fri, 4 Nov 2011 07:43:23 +0000 (14:43 +0700)]
libtoolize: refactor ltdl_dir discovery.
* libtoolize.m4sh (require_ac_ltdl_dir, require_ltdl_dir):
New functions factored out of func_scan_files for scanning and
setting ac_ltdl_dir and ltdl_dir resp.
(func_scan_files): Remove the factored out code.
(func_fixup_Makefile, func_serial_update_check)
(func_install_pkgltdl_files, func_install_pkgconfig_subproject)
(func_check_macros): Adjust.
Gary V. Vaughan [Thu, 3 Nov 2011 18:30:24 +0000 (01:30 +0700)]
libtoolize: refactor aux_dir discovery.
* libtoolize.m4sh (require_ac_aux_dir, require_aux_dir): New
functions factored out of func_scan_files for scanning and
setting aux_dir and friends.
(func_scan_files): Remove the factored out code to scan
configure.ac with sed, and then set macro_dir appropriately.
(func_install_pkgconfig_subproject, func_install_pkgconfig_parent)
(func_install_pkgmacro_files, func_check_macros): Adjust.
Gary V. Vaughan [Mon, 7 Nov 2011 14:06:59 +0000 (21:06 +0700)]
libtoolize: install autoconf macros only if there is a $configure_ac.
* libtoolize.m4sh (func_install_pkgmacro_files): If there is no
$configure_ac in the parent project directory, and libtoolize is
in subproject mode, then the parent project has no use for
autoconf macros, so don't install them.
* NEWS: Updated.
Gary V. Vaughan [Mon, 7 Nov 2011 13:49:53 +0000 (20:49 +0700)]
libtoolize: display aux files output header for non-autoconf parents.
* libtoolize.m4sh (func_install_pkgconfig_subproject): When the
parent project does not use Autoconf, be sure to display an
output header before copying auxiliary files despite not being
able to scan for AC_CONFIG_AUX_DIR arguments.
* NEWS: Updated.
Gary V. Vaughan [Thu, 3 Nov 2011 17:44:08 +0000 (00:44 +0700)]
libtoolize: refactor macro_dir discovery around extract-trace script.
* libtoolize.m4sh (func_extract_trace): Function to call
$aux_dir/extract-trace. The name and footprint are the same as
the core function in the extract-trace script file so that we
can choose to source that file when the option processing
becomes compatible with ours.
(require_ac_macro_dir, require_aclocal_amflags)
(require_am_macro_dir, require_macro_dir, require_makefile_am):
New functions factored out of func_scan_files for scanning and
setting macro_dir and friends.
(func_scan_files): Remove the factored out code to scan
configure.ac with sed, and then set macro_dir appropriately.
(func_serial_update_check, func_install_pkgmacro_subproject)
(func_install_pkgmacro_parent, func_install_pkgmacro_files)
(func_check_macros): Adjust.
* tests/libtoolize.at (Subproject ltdl without GNU M4): New test
to ensure `libtoolize --subproject' continues to work without a
GNU M4 dependency.
* NEWS: Updated.
Gary V. Vaughan [Thu, 3 Nov 2011 14:45:15 +0000 (21:45 +0700)]
libtoolize: refactor configure_ac discovery.
Make a start on decomposing some of the giant functions at the
heart of libtoolize into the much more flexible and manageable
(albeit somewhat more verbose) model of self-organising
$require_<foo> function pointers.
* libtoolize.m4sh (require_configure_ac): New function factored
out of func_scan_files for setting $configure_ac appropriately,
implementation taken from extract-trace script.
(func_autoconf_configure): And similarly for ensuring that a
filename which matches something Autoconf would read also has
content that appears to be destined for Autoconf processing.
(func_scan_files): Simplified the factored out code to a single
require_configure_ac call.
(func_install_pkgconfig_files, func_check_macros): Ditto.
(seen_autoconf): Removed.
Gary V. Vaughan [Thu, 3 Nov 2011 08:23:45 +0000 (15:23 +0700)]
bootstrap: split into reusable parts.
* 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.
Gary V. Vaughan [Sun, 6 Nov 2011 04:48:38 +0000 (11:48 +0700)]
maint: substitute static directory names.
By substituting just the directory name as passed to the macro,
aux_dir can be used with or without $srcdir prefix, which is
more flexible, and always means the same thing in each file,
rather than sometimes being a directory name, sometimes relative
to $top_srcdir.
* configure.ac (AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR)
(LT_CONFIG_LTDL_DIR): Don't force config.status substitutions
with unexpanded shell variables.
* Makefile.am, tests/defs.m4sh: Adjust.
Gary V. Vaughan [Mon, 7 Nov 2011 16:43:56 +0000 (23:43 +0700)]
tests: fix parsing of configure output by pic_flag.at.
Close http://debbugs.gnu.org/9962.
* tests/pic_flag.at (LT_AT_CONFIGURE): Make sure to configure
with --disable-silent-rules so that the full output parsed by
the rest of the test is available.
Reported by Roumen Petrov.
Gary V. Vaughan [Sat, 5 Nov 2011 12:40:30 +0000 (19:40 +0700)]
libtoolize: fix a scoping bug in func_aclocal_update_check.
libtoolize.m4sh (func_aclocal_update_check): This body of this
function used a global variable set by the outer loop of the
caller. Fix to Use the function argument correctly.
Gary V. Vaughan [Fri, 4 Nov 2011 11:38:06 +0000 (18:38 +0700)]
maint: rename the debug shell command variable to `debug_cmd'.
Not only does it make more sense, it also matches bootstrap and
others.
* libtoolize.m4sh, libltdl/config/ltmain.m4sh,
libltdl/config/getopt.m4sh, tests/defs.m4sh (opt_debug): Rename
to debug_cmd.
Gary V. Vaughan [Sun, 30 Oct 2011 04:03:00 +0000 (11:03 +0700)]
maint: dynamically strip unused scripts from libltdl Makefile.
* configure.ac (pkgaux_scripts): Centrally maintain the complete
list of aux scripts required to build libltdl, and which need to
be installed by libtoolize --ltdl, and consequently need to be
placed in $pkgdatadir by make install.
* Makefile.am (libltdl/stamp.mk): Improved to strip the unused
scripts not listed in pkgaux_scripts without the need for manual
synchronisation.
(auxexefiles): Removed. Replaced by new pkgaux_scripts
substitution.
(install-data-local): Adjust.
Gary V. Vaughan [Thu, 27 Oct 2011 05:10:49 +0000 (12:10 +0700)]
maint: add autobuild prerequisite only if autobuild.m4 is absent.
* 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.
Gary V. Vaughan [Wed, 26 Oct 2011 05:58:35 +0000 (12:58 +0700)]
maint: ensure bootstrap runs from dist tarball.
* 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.
Gary V. Vaughan [Mon, 31 Oct 2011 11:29:35 +0000 (18:29 +0700)]
libtoolize: fix some long-standing sed substitution bugs
* libtoolize.m4sh (func_fixup_Makefile): `\\\\\$' in a " quoted
script that is evaluated twice before execution becomes a `\$',
which sed interprets as a literal $. The script will then delete
any lines with a first non-whitespace character of `$'. Instead
use `\\\\$' in single quotes, which sed eventually receives as
`\\$' and correctly interprets as part of an instruction to
delete otherwise empty lines ending with a `\'.
Additionally the rest of the same sed script is no longer
applied to comment lines to avoid munging the copyright header
among others.
* NEWS: Updated.
Gary V. Vaughan [Sat, 22 Oct 2011 09:46:31 +0000 (16:46 +0700)]
maint: use gnulib's gitlog-to-changelog instead of a ChangeLog file.
* 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.
Gary V. Vaughan [Thu, 20 Oct 2011 15:17:23 +0000 (22:17 +0700)]
maint: use gnulib's git-version-gen instead of mkstamp.
* 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.
Gary V. Vaughan [Mon, 24 Oct 2011 07:49:30 +0000 (14:49 +0700)]
tests: ensure VPATH autom4te search path can find autotests.
* Makefile.am (tests/testsuite): Passing only $(srcdir) include path
to autom4te is unable to find tests/package.m4, and passing only
$(srcdir)/tests breaks VPATH build searches for TESTSUITE_AT files,
which are relative to $(srcdir)... so we pass both!
* NEWS: Updated.
Reported by Bob Friesenhahn.
Karl Berry [Mon, 24 Oct 2011 02:31:55 +0000 (09:31 +0700)]
doc: modernize libtool.texi.
* libtool.texi (@copying): Use this instead of @ifnottex; format for
Texinfo; eliminate obsolete paragraph about TeX; use @insertcopying
instead of duplicating text.
(@syncodeindex): Move all to the Texinfo header, where they belong.
(@dircategory): Use "Software development" instead of "GNU programming
tools", for consistency; and align individual entries to avoid
multiple lines; and move to after the copyright message.
Gary V. Vaughan [Wed, 19 Oct 2011 04:48:56 +0000 (11:48 +0700)]
maint: use gnulib's maintainer-makefile module.
* 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.
Gary V. Vaughan [Tue, 18 Oct 2011 14:23:31 +0000 (21:23 +0700)]
maint: use gnulib's canonical COPYING files.
* 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.
Gary V. Vaughan [Fri, 24 Sep 2010 21:26:00 +0000 (04:26 +0700)]
maint: use gnulib's (pending saner) bootstrap script.
* bootstrap: Replaced with gnulib script.
* bootstrap.conf: New file with Libtool specific bootstrap
configuration.
* Makefile.am (EXTRA_DIST): Add bootstrap.conf.
Gary V. Vaughan [Thu, 9 Sep 2010 18:14:41 +0000 (01:14 +0700)]
maint: add gnulib submodule.
* configure.ac (GL_INIT, GL_EARLY): Initialise gnulib, and expand
its configure time checks.
* .gitmodules (gnulib): New file with configuration for our
gnulib git submodule.
Gary V. Vaughan [Wed, 8 Sep 2010 07:49:32 +0000 (14:49 +0700)]
maint: tidy, sort and consolidate .gitignore files.
The `gnulib-tool' and gnulib `bootstrap' scripts maintain
`.gitignore' files in asciibetical order, so reorder them now
to avoid spurious patches later.
Take advantage of putting recursive file ignore matches into
`$top_srcdir/.gitignore' and remove repetitions from other
`.gitignore' files.
Gary V. Vaughan [Fri, 24 Sep 2010 21:01:56 +0000 (04:01 +0700)]
maint: pass directory declarations in configure.ac into Makefile.
* configure.ac (AC_CONFIG_AUX_DIR, LT_CONFIG_LTDL_DIR)
(AC_CONFIG_MACRO_DIR): Append code to these functions to
capture and propagate their directory arguments to Makefile.
* Makefile.am (aux_dir, ltdl_dir, macro_dir): Remove declarations.
* bootstrap (my_sed_trace): Also capture LT_CONFIG_LTDL_DIR into
`$ltdl_dir'.
<Makefile>: Output the extracted values of `aux_dir', `ltdl_dir'
and `macro_dir' at the top of the quick'n'dirty bootstrap
Makefile.
Gary V. Vaughan [Sun, 26 Sep 2010 09:21:10 +0000 (16:21 +0700)]
maint: factor out ltmain.sh variable deletion.
* Makefile.am (ltmain_sh_edit): Expand upon bootstrap edit by
adding the extra line to delete boilerplate variable settings
from libltdl/config/general.m4sh that don't apply here.
(libltdl/config/ltmain.sh): Use it.
Gary V. Vaughan [Fri, 24 Sep 2010 20:40:27 +0000 (03:40 +0700)]
maint: DRYing out `Makefile.am' file paths.
* Makefile.am (aux_dir, macro_dir): Include `$(srcdir)' in
declaration. Adjust all references.
(doc_dir, ltdl_dir, m4sh_dir, tests_dir): New single location
to hold directory paths, all including `$(srcdir)', to reduce
typing.
(LT_M4SH): Use `$m4sh_dir' as include directory.
(defs): This one is for a file in the build-tree, so no
leading `$(srcdir)'.
Gary V. Vaughan [Fri, 24 Sep 2010 20:25:48 +0000 (03:25 +0700)]
CLEANUP: fix error from pushing too far up the branch.
* Makefile.am (install-data-local): Undo character transposition
from too early push of untested v2.4-17-gaf74d58.
* ChangeLog (2010-09-16): Remove spurious entry.
Gary V. Vaughan [Fri, 24 Sep 2010 14:12:18 +0000 (21:12 +0700)]
maint: use macro_dir consistently in all files.
* Makefile.am: Replace all uses of m4dir with macrodir to
match AC_CONFIG_MACRO_DIR.
* libltdl/config/libtoolize.m4sh: Replace all uses of macrodir
with macro_dir.
* tests/defs.m4sh, tests/sh.test: Likewise.
Gary V. Vaughan [Fri, 24 Sep 2010 14:10:19 +0000 (21:10 +0700)]
maint: use aux_dir consistently in all files.
* Makefile.am, Makefile.maint: Replace all uses of auxdir
with aux_dir to match AC_CONFIG_AUX_DIR.
* libltdl/config/libtoolize.m4sh: Likewise.
* tests/defs.m4sh, tests/getopt-m4sh.at: Likewise.
Gary V. Vaughan [Fri, 24 Sep 2010 13:58:39 +0000 (20:58 +0700)]
Makefile: try to be robust against shell meta-chars in filenames.
* Makefile.am: In each rule body, unless a make variable needs
to be seen as multiple words by the shell (for word-splitting
loops, or because it contains several commands), quote it. Use
single quotes unless the shell needs to perform variable inter-
polation, in which case use double quotes.
Gary V. Vaughan [Thu, 2 Sep 2010 09:44:32 +0000 (16:44 +0700)]
maint: simplify and improve safety of bootstrap process.
* Makefile.am (bootstrap_files): List files that need to be
generated at bootstrap time before `./configure && make' can
work. It turns out that this is considerably fewer files than we
had thought necessary previously.
(bootstrap-deps-prep): Ensure minimum set of required substitution
variables are non-empty.
(bootstrap-deps): Depend on `bootstrap' files.
* bootstrap (Generate bootstrap dependencies): Now that
`Makefile.am' is entirely responsible for rebuilding files at
bootstrap time, we need only specify the new `bootstrap-deps'
target, and supply values for the substitutions checked by
`bootstrap-deps-prep'.
* configure.ac (AC_CONFIG_SRCDIR): `libtoolize.in' is not here yet
right after running `bootstrap'. So rely on the presence of
`libltdl/config/libtoolize.m4sh', which is always there.
Gary V. Vaughan [Thu, 23 Sep 2010 12:42:30 +0000 (19:42 +0700)]
build: eliminate `ltmain.in' and `libtoolize.in' intermediate files.
* Makefile.am (libltdl/config/ltmain.sh, libtoolize.in): Pipe
the output of `$(LT_M4SH)' directly into `$(bootstrap_edit)' to
avoid use of superfluous intermediate file.
Gary V. Vaughan [Thu, 23 Sep 2010 12:31:10 +0000 (19:31 +0700)]
build: don't hardcode repeated long paths in Makefile rules.
According to the DRY principle, scattering several copies of
something across a file or project leads to pain. Let's not
do that!
* Makefile.am (Makefile_in, Makefile_inc, defs_in, defs_m4sh),
(libtoolize_in, ltmain_m4sh, ltversion_in): New variables to
hold the location of important files and targets.
(EXTRA_DIST): Add the distributed ones by variable.
(libtoolize, libltdl/Makefile.am, libltdl/m4/ltversion.m4)
(libltdl/config/ltmain.sh, libltdl/stamp-mk, tests/defs)
(tests/defs.in): Use the new variables to reduce noise and
repetition.
Gary V. Vaughan [Thu, 23 Sep 2010 11:44:16 +0000 (18:44 +0700)]
build: name temporary files in `Makefile.am' consistently.
Sadly, we still have to jump through hoops for MICROS~1's very
old, very broken 8.3 naming convention, so we have to be careful
to be unique in the first 8 letters, and not to use two periods
in a filename, otherwise we could use the much more elegent
`temporary files use "$@T"' idiom:
* Makefile.am (libltdl/m4/ltversion.m4): Rename temporary file
to `ltversion.tmp'.
(libltdl/config/ltmain.sh): Rename temporary file to
`libltdl/config/ltmain.tmp'.
(libtoolize): Rename temporary file to `libtoolize.tmp'.
(tests/defs): Rename temporary file to `tests/defs.tmp'
(tests/testsuite): Rename temporary file to `tests/testsuite.tmp'.
(CLEANFILES): Append temporary files as we create rules that
use them.
Gary V. Vaughan [Thu, 23 Sep 2010 11:06:09 +0000 (18:06 +0700)]
build: factor Makefile.am `m4sh' invocations to LT_M4SH.
* Makefile.am (LT_M4SH): Now that all directories are listed as
fully qualified paths, the search path argument to M4SH is always
the same, so factor it out into a variable. Adjust all callers.
Gary V. Vaughan [Thu, 23 Sep 2010 11:02:12 +0000 (18:02 +0700)]
build: avoid unnecessary directory changes in Makefile rules.
* Makefile.am (doc/notes.txt, libltdl/m4/ltversion.m4,
(libltdl/config/ltmain.m4sh, libtoolize.in, libltdl/Makefile.am)
(libltdl/config/mkstamp, tests/testsuite, tests/defs.in): Avoid
unnecessary `cd' commands by using fully qualified paths to files
outside of current directory.
Gary V. Vaughan [Thu, 23 Sep 2010 10:37:00 +0000 (17:37 +0700)]
build: compare `revision' rather than `correctver' in Makefile.am.
* Makefile.am (rebuild): Set the shell variable `revision' rather
than `correctver' for clarity of purpose.
(bootstrap_edit, libltdl/config/ltmain.sh): Adjust.
(libltdl/m4/ltversion.m4): Likewise, and alse, instead of munging
the serial number comment line with set, extract `macro_version'
from this file, and compare it directly with `revision'.
(libtool): Likewise for `package_revision'.
Gary V. Vaughan [Thu, 20 Oct 2011 16:40:13 +0000 (23:40 +0700)]
build: avoid spurious bootstrap_edit call.
* Makefile.am (tests/package.m4): @FOO@ substitutions have already
been made by the time Makefile.am has been transformed into Makefile,
so don't try to rerun the substitutions manually with
$(bootstrap_edit) after the fact.
Gary V. Vaughan [Mon, 17 Oct 2011 05:40:55 +0000 (12:40 +0700)]
Make a note to use gnu/linux for version_type.
* libltdl/m4/libtool.m4 (version_type): Add a comment to change
version_type setting from 'linux' to 'gnu/linux' during the next
destabilising code refactoring.
* libltdl/config/ltmain.m4sh: ditto.
Justin Lecher [Mon, 14 Mar 2011 07:40:50 +0000 (08:40 +0100)]
Don't filter OPENMP flags (-openmp & -fopenmp) from linker lines.
If -fopenmp if passed to gcc during linking, it will take care to add all
necessary libs to link correctly for openmp support. Currently libtool filters
those flags, similar as it was the case with the threading flags. This change
handles the situation for the openmp support similar as before the thread
support was fixed.
Peter O'Gorman [Fri, 4 Mar 2011 20:35:14 +0000 (14:35 -0600)]
On Mac OS X try .dylib as well as .so with lt_dlopenext
* libltdl/m4/ltdl.m4: Define extra extension if module extension
differs from shared lib extension.
* libltdl/ltdl.c: Use it.
* tests/darwin.at: Test it.
* NEWS: Announce it.
Reported by Hans Aberg, Michael Ellis, and others.
Peter O'Gorman [Thu, 27 Jan 2011 23:13:10 +0000 (17:13 -0600)]
Don't loop through wrapper script arguments unnecessarily.
* libltdl/m4/ltmain.m4sh: Check that argv contains " --lt-"
before looping to remove wrapper script targetted arguments.
Performance regression reported by Dan McGee.
Gerald Pfeifer [Thu, 20 Jan 2011 18:35:14 +0000 (19:35 +0100)]
Remove support for FreeBSD 1.x.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS)
(_LT_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which
soon would incorrectly match FreeBSD 10.0.
* NEWS, THANKS: Update.
Peter O'Gorman [Wed, 19 Jan 2011 18:53:32 +0000 (12:53 -0600)]
Don't let verbose linker messages influence test results.
* libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Ignore
stderr during tests for -flag unless it contains "flag".
* tests/darwin.at: Add test.
Reported by Jeremy Huddleston and also by David Fang.
Ralf Wildenhues [Sun, 9 Jan 2011 16:55:17 +0000 (17:55 +0100)]
Fix $wl setting for Solaris Studio 12.2 f90 on GNU/Linux.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux]
<lt_prog_compiler_wl>: Set to '-Qoption ld ' if we
detect Sun Fortran version 8.4 or newer.
Report by Terry Dontje.
Peter Rosin [Fri, 7 Jan 2011 10:49:10 +0000 (11:49 +0100)]
Convert file name to toolchain format when blessing archives.
* libltdl/config/ltmain.m4sh (func_mode_install): When executing
old_postinstall_cmds and old_archive_cmds, convert $oldlib to a
format appropriate for the tool and provide that in $tool_oldlib.
Also use $tool_oldlib when stripping old libraries.
* libltdl/m4/libtool.m4 (_LT_CMD_OLD_ARCHIVE): Use $tool_oldlib
as argument to $RANLIB.
* THANKS: Update.
Report by Dan McMahill.
Brice De Bruyne [Mon, 20 Dec 2010 03:16:12 +0000 (04:16 +0100)]
Also turn off -fuse-linker-plugin for postdep_objects computation.
* libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS): Add
-fno-use-linker-plugin to temporary compile flags if necessary,
to fix C++ postdep_objects setting with -flto
-fuse-linker-plugin.
* NEWS, THANKS: Update.
Ralf Wildenhues [Fri, 17 Dec 2010 19:30:53 +0000 (20:30 +0100)]
Fix PIC flags with mpif77 using ifort on GNU/Linux.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux]:
Match Intel compiler also using $CC -V output, to avoid false
negatives with compiler drivers like mpif77.
Report by Christian Rössel.
Ralf Wildenhues [Thu, 16 Dec 2010 20:41:27 +0000 (21:41 +0100)]
Fix PIC flags with MPI wrappers using Portland on GNU/Linux.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux]:
Match Portland compilers also using $CC -V output, to avoid
false negatives with MPI compiler drivers.
Report by Christian Rössel.
Ralf Wildenhues [Mon, 6 Dec 2010 03:31:14 +0000 (04:31 +0100)]
Fix nvcc PIC setting on darwin.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC)
<lt_prog_compiler_pic>: Prepend -Xcompiler to nonempty variable
setting rather than hard-coding -Xcompiler -fPIC, for darwin.
* NEWS, THANKS: Update.
Report by Paweł Daniluk.
Ralf Wildenhues [Mon, 15 Nov 2010 22:13:33 +0000 (23:13 +0100)]
Eliminate hardcode_libdir_flag_spec_ld tag variable.
* libltdl/config/ltmain.m4sh (func_mode_link): Set $wl to empty
if $LD is used for creating shared libraries. Do not use
hardcode_libdir_flag_spec_ld any more.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG)
(_LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG, _LT_SYS_DYNAMIC_LINKER)
<hardcode_libdir_flag_spec_ld>: Remove all instances of the tag
variable.
(_LT_LINKER_SHLIBS) [linux, xlf] <hardcode_libdir_flag_spec>:
Set variable, including ${wl}. Fixes hardcoding in programs
created by XL Fortran on GNU/Linux.
* NEWS, THANKS: Update.
Report by Paul H. Hargrove.
Ollie Wild [Wed, 10 Nov 2010 20:06:50 +0000 (21:06 +0100)]
Modify --with-pic to support per-package configurations.
* libltdl/m4/libtool.m4: Modify --with-pic to accept a list of
package names. Modelled off --enable-shared.
* tests/with-pic.at: New test.
* Makefile.am (TESTSUITE_AT): Add tests/with-pic.at.
* doc/libtool.texi (LT_INIT): Enhance documentation of
--with-pic configure flag.
* NEWS (New features): Mention that --with-pic now accepts a
comma-separated list of package names.
Ralf Wildenhues [Wed, 10 Nov 2010 18:28:11 +0000 (19:28 +0100)]
Fix cwrapper test failure with --disable-static.
* tests/cwrapper.at (cwrapper and installed shared libraries):
Compile program source without libtool, so we can be sure a
non-PIC object will be created.
Ralf Wildenhues [Wed, 27 Oct 2010 18:13:28 +0000 (20:13 +0200)]
docs: mention shell requirement for libtool script.
* doc/libtool.texi (Invoking libtool): Document that the shell
used to invoke libtool needs to be the same used to configure
it.
* THANKS: Update.
Report by Markus Duft.
Ralf Wildenhues [Fri, 15 Oct 2010 03:54:45 +0000 (05:54 +0200)]
Merge branch 'libtool-next' (early part)
* 'libtool-next' (early part):
libtool: remove redundant unsubstituted shell var defaults.
maint: don't leak developer GREP, SED etc into distribution file.
maint: rearrange Makefile.am in preparation for a follow-up patch.