Commit Graph

78 Commits

Author SHA1 Message Date
Charles Wilson
5817d126bf * config/ltmain.m4sh (func_mode_install): On Windows based hosts,
ensure that import libraries don't get stripped.
* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): On Windows based hosts,
use postinstall_cmds to strip DLL (not import lib!) when symbol
stripped installation was requested.
2004-11-01 16:29:15 +00:00
Noah Misch
4d01904ca5 * config/ltmain.m4sh (func_lalib_p, func_ltwrapper_p): New
functions that abstract .la sanity checking.
(func_mode_execute, func_mode_install, func_mode_link)
(func_mode_uninstall): Use them.
2004-10-24 16:34:29 +00:00
Gary V. Vaughan
17e61a7564 * config/ltmain.m4sh (opt_silent): Whether --silent was given.
(run, show): Deleted.  All callers converted to opt_dry_run,
opt_silent or calls to func_show_eval.
* tests/mdemo-dryrun.test: Adjust.
2004-10-24 15:17:23 +00:00
Peter O'Gorman
596e2489bd * config/ltmain.m4sh (func_mode_link): Make Gary's new tests
pass. When the output wrapper script is not in the current
directory, we can not use an rpath which is relative to the
current directory. Use an absolute path instead.
2004-10-23 12:04:34 +00:00
Gary V. Vaughan
e7a9d306f6 * clcommit.m4sh, config/mailnotify.m4sh: Updated from
cvs-utils--tla--1.0 to fix quoting of metachars in patch names.
2004-10-22 12:10:31 +00:00
Gary V. Vaughan
6b55376125 * config/general.m4sh (sed_double_backslash): Undo an
over-optimisation.
2004-10-22 07:58:24 +00:00
Noah Misch
443bae7dd9 * config/general.m4sh (sed_double_backslash): Improve this sed
expression to correct left anchored $ input to
double_quote_subst, as well as backslash escaped $ preceded by
any odd-numbered amount of  characters.
2004-10-21 16:54:54 +00:00
Gary V. Vaughan
ff7eac153d * config/general.m4sh (sed_double_backslash): New sed expression
to escape $ properly in combination with double_quote_subst.
(func_quote_for_eval): Four space indent margin for functions!
(func_quote_for_expand): Use $sed_double_backslash.
(func_show_eval): New function that echos an escaped but variable
expanded command, and then evaluates it.
2004-10-20 20:43:58 +00:00
Noah Misch
ba1e69caa4 * m4/libtool.m4 (sed_quote_subst): Remove superfluous backslashes
from the match character set.
(double_quote_subst): Ditto.
* lib/general.m4sh (sed_quote_subst): Ditto.
(double_quote_subst): New variable, copied from
m4/libtool.m4. Much the same as sed_quote_subst, but variable
references are not quoted.
(func_quote_for_eval): Given any $foo; $bar and
$foo must be identical after the following commands:
    func_quote_for_eval "$foo"
    eval "bar=$func_quote_for_eval_result"
(func_quote_for_expand): In a similar vein to to func_quote_for_eval,
except that variable expansions are not protected when quoting the
command for subsequent display.
* config/ltmain.m4sh: Factor away use of $sed_quote_subst now that
it has been subsumed into func_quote_for_eval.
(func_mode_link): Instead of `2004-10-14 Peter O'Gorman' below,
use func_quote_for_expand so that ${wl} is expanded properly in
the $show expression.
2004-10-20 08:45:10 +00:00
Gary V. Vaughan
f5eb2e88c3 * config/ltmain.m4sh (func_mode_finish): solaris-2.6 also has
crle(1).
Reported by Albert Chin-A-Young <china@thewrittenword.com>
2004-10-16 15:02:05 +00:00
Peter O'Gorman
609e9db7f0 * config/ltmain.m4sh: Revert most of my last commit, only eval
$show "$cmds", and only when building a library. I'm a wimp.
Thanks Gary for pointing out errors in previous commit.
2004-10-14 14:13:43 +00:00
Gary V. Vaughan
a6949eb270 * config/ltmain.m4sh (func_mode_finish): Mention crle(1) on
solaris 2.7 and higher in the finalisation notes.
Reported by Kurt J. Lidl <lidl@pix.net>
2004-10-13 16:06:49 +00:00
Peter O'Gorman
274b26c703 * config/ltmain.m4sh: Make sure that we $show what we will $run,
use eval $show if we do $run eval.
2004-10-13 14:55:59 +00:00
Charles Wilson
9a2bd4eb89 * config/ltmain.m4sh: add foo/bin for every foo/lib
in dllsearchpath when creating wrapper script.  Fixes
depdemo-relink test failure.


* config/ltmain.m4sh (func_mode_link): don't relink
on cygwin/mingw; no need.  But do ensure that wrappers
are created unless doing a purely static build.
2004-10-13 13:48:23 +00:00
Charles Wilson
c57c62b12e * config/ltmain.m4sh: Really don't require versions of GNU
sed newer than 3.02 for Cygwin and MinGW, and don't break
dryrun mode.
2004-10-11 04:15:43 +00:00
Bob Friesenhahn
2d21f9adc3 * config/getopt.m4sh: Under MinGW, reported paths may include ':'
so ':' should not be used as the sed delimiter.  Use '*' instead
since it is very unlikely to appear in a path.
2004-10-10 23:27:24 +00:00
Albert Chin-A-Young
c9ac8fcb3b * config/ltmain.m4sh: Don't require versions of GNU sed newer than
3.02 for Cygwin and MinGW.
2004-10-10 22:15:09 +00:00
Gary V. Vaughan
c87d8b383b Update to the latest commit and mailnotify scripts from
gary@gnu.org--2004/cvs-utils--tla--1.0:

* commit, config/mailnotify: Removed.  Now built from...
* clcommit.m4sh, config/mailnotify.m4sh: ...these new sources.
* Makefile.maint (commit, config/mailnotify): How to build them.
* bootstrap: If we have a checked out tree (i.e. clcommit.m4sh
is present), then build them.
2004-10-08 21:56:10 +00:00
Gary V. Vaughan
20c92bbee3 Fix some issues that mangled the reexecution path to a script,
and thus prevented it from finding itself:

* config/general.m4sh (progname): Don't actually change the name
of the script if it begins with a `-', just prepend `./'.
(progpath): Add a new clause that first searches the execution
PATH, and then finally assumes this script is in the current
working directory if $progname has no directory separators (e.g
when invoked as `$SHELL progname').
2004-10-08 17:01:49 +00:00
Gary V. Vaughan
d7c85ee5b0 * config/general.m4sh (func_verbose): Work around a bash bug in
shell functions.
2004-10-08 16:39:55 +00:00
Charles Wilson
56295ae2e9 * tests/pdemo-inst.test: pdemo-inst should depend on pdemo-make.
* config/ltmain.m4sh: Windows and Cygwin reserve the .lnk
extension to represent shortcuts.  Use the extension ".lnkscript"
rather than ".lnk" for the piecewise linking ld script in order to
avoid the conflict.
2004-10-08 16:16:10 +00:00
Peter O'Gorman
96786b270c * config/ltmain.m4sh [darwin]: Make the -dylib_file flag work on
older darwins too. Reported by Christoph Egger.
2004-10-05 04:16:10 +00:00
Gary V. Vaughan
e5d70992b8 * m4/libtool.m4 (_LT_PROG_ECHO_BACKSLASH): Don't confuse $ECHO
with $lt_ECHO, or we always get a libtool with ECHO=echo, rather
than testing for a mechanism that quotes  properly.
* NEWS: Updated.

* config/ltmain.m4sh: Need to include getopt.m4sh earlier so that
progpath is set before it is called to --no-reexec.
* NEWS: Updated.

Without this change, the distributed libtool tarball has a
dependency on autom4te.  There was some inconsistency in the
filenames: now we have foo.m4sh -> m4sh -> foo.in -> configure
-> foo[.sh].  Bootstrap runs the m4sh steps and the resulting .in
files are distributed:

* tests/Makefile.am (EXTRA_DIST): Distribute defs.m4sh.
* Makefile.am (EXTRA_DIST): Distribute libtoolize.m4sh.
(libtoolize.in, libtoolize): Split into bootstrap and runtime
stages.
($(top_srcdir)/tests/defs.in, $(top_srcdir)/tests/defs): Ditto.
($(top_srcdir)/config/ltmain.sh): Swap ltmain.m4sh and ltmain.in
names.
* bootstrap: Make libtoolize.in and tests/defs.in.
* NEWS: Updated.
2004-10-04 18:32:45 +00:00
Bob Friesenhahn
623d66623e * config/ltmain.in: Change $XSED to $Xsed to fix hang noticed
under MinGW.
* tests/defs.in: Support VERBOSE=debug to enable shell tracing
while running tests.
2004-10-03 20:47:05 +00:00
Ralf Wildenhues
5a5cae5200 * config/ltmain.in (func_mode_install): Need to set $tmpdir before
using it.
2004-10-01 12:43:20 +00:00
Ralf Wildenhues
4e184ccb9f * config/ltmain.in (func_mode_link): Fix quoting bug. Fixes
e.g. the quoting of the -export-symbols-regex argument in .la
files' relink_command.
2004-10-01 11:03:03 +00:00
Gary V. Vaughan
29b732ba79 * config/ltmain.in (func_mode_link): When linking an installed
libtool library on the command line using -lfoo we need to find
the library in the search paths and add it's dependency_libs to
the link in the conv pass so that any libtool libs listed are
correctly expanded in the link pass.
2004-09-25 13:38:53 +00:00
Gary V. Vaughan
fc4e513ee0 * config/general.m4sh (Xsed): Set a default when not used from
ltmain.in.
(ECHO): Audit for (and correct!) uses of $ECHO with more than one
argument, which breaks when ECHO='printf %sn', and with possible
`-' as first character of the argument, which breaks `print -r'
and some implementations of `echo'.
* config/ltmain.in, tests/defs.in, libtoolize.in (ECHO): Ditto.
Reported by Albert Chin-A-Young <china@thewrittenword.com>
2004-09-24 16:08:33 +00:00
Gary V. Vaughan
bfce27f524 * configure.ac (M4SH): AC_SUBST m4sh expander.
* config/general.m4sh, config/getopt.m4sh: New files with factored
out functionality from...
* config/ltmain.in, libtoolize.in: ...here.  m4_include the shared
code, and call AS_SHELL_SANITIZE.  Also quote all `[' and `]' to
survive m4 run.
(func_serial): No need to double up m4sh quotes after a `#'.
(func_check_macros): Escape `dnl' to stop m4sh interpreting it as
a macro.
* tests/defs.in: New file expanded into tests/defs by autom4te.
* m4/libtool.m4 (_LT_DECL_EGREP): Also require fgrep for the tests
that use it.
* Makefile.am ($(top_srcdir)/config/ltmain.sh): Now built with
M4SH.
(libtoolize): Ditto.
* bootstrap: Set M4SH for call to make.
* HACKING: No need to sync to AS_SHELL_SANITIZE by hand any more.
2004-09-23 01:16:41 +00:00
Gary V. Vaughan
a453acdc32 * m4/libtool.m4: _LT_DECL uppercase ECHO.
* config/ltmain.in: Use it throughout.
(func_mkdir_p): Now matches the other implementations in
tests/defs and libtoolize.in.
* tests/sh.test: Updated to detect ECHO misuse.
2004-09-23 00:13:02 +00:00
Gary V. Vaughan
f28311788e * config/ltmain.in (func_mode_link): Propagate a convenience
library's dependency libs correctly when it is being linked into a
libtool library.  Deplibs are now propagated whether libdir is set
or not.
2004-09-22 23:31:27 +00:00
Andreas Schwab
a2ad2dce32 The dlpreopen pass over libraries reverses the elements in the
$deplibs list.  This causes problems when the link pass tries to
find libraries when they are located in non-standard places
denoted by -L options.  Due to the reversed order these -L options
occur after the libraries that need them, and they are not found:

* config/ltmain.in: (Un)Reverse $deplibs list at the start of the
link pass in lib mode.
2004-09-22 22:46:12 +00:00
Charles Wilson
8c7eb9e5c9 * ltmain.in (func_generate_dlsyms) [cygwin, mingw]: when creating
a .exp file for an executable, also create a .def file, and add
that file to the link command via SYMFILES.  This causes binutils
to generate an .edata section, and allows self dlopening to work.
* NEWS: Updated.
2004-09-22 08:50:34 +00:00
Charles Wilson
1ab797d98d * config/ltmain.in (func_generate_dlsyms): Addresses in
_preloaded_symbols[] cannot go into .rdata section if symbols are
DATA imported from DLL, on windows, because runtime relocations
must happen.
* m4/libtool.m4 (_LT_LINKER_SHLIBS([TAGNAME])):	Build exports for
symbols in .rdata sections.
2004-09-22 07:40:25 +00:00
Gary V. Vaughan
1f2c4d9702 * config/ltmain.in (func_echo): Except for multi-line warnings and
errors, always use func_echo.  $show is for command output, and
$echo is for internal use in backtick expressions and similar.
2004-09-17 17:12:17 +00:00
Gary V. Vaughan
4bf4433f70 Missed a couple of MKDIR_P references in ltmain.in in my last
patch; fix them carefully.  Introduce an opt_dry_run to ltmain.in
so that the implementations of func_mkdir_p can converge, and a
func_mktempdir to do a better job of temporary directory creation:

* libtoolize.in (func_mkdir_p): Don't fail if the directory wasn't
created in dry run mode.
* tests/defs (func_mkdir_p): Ditto.  We don't actually have a dry
run mode for the tests, but the function is written carefully to
be kept in synch and work correctly here too.
* config/ltmain.in (func_mkdir_p): Ditto.  This copy of the
function now only differs in its use of $echo over $ECHO.
(func_extract_archive): Removed first redundant mkdir call.
(func_mktempdir): New function that tries to avoid races when
making temporary directories.
(opt_dry_run): Set this if --dry-run is given at the CLI, or if
tests/mdemo-dryrun.test has forced the value of $run.
(func_mode_install): Call $MKDIR directly and error out if the
directory cannot be created.
(func_mode_link): Rather than copying func_mkdir_p into the
wrapper script as a replacement for $MKDIR_P, we know that the
script won't be called my `make -j', so write the current value of
$MKDIR.
2004-09-17 14:13:04 +00:00
Peter O'Gorman
78fe989539 * m4/libtool.m4 [darwin] (_LT_LANG_CXX_CONFIG): Changes for 10.4.
* config/libtool.in [darwin]: ditto.
2004-09-17 13:41:54 +00:00
Gary V. Vaughan
0e0104aa45 My most recent `2004-09-02 Gary V. Vaughan' patch for mkdir_p
below is horrendously broken since it makes the installed libtool
try to run the mkinstalldirs or install-sh helper scripts.  This
patch fixes the `make -j' mkdir race condition internally:

* libtoolize.in (func_mkdir_p): New slice and dice algorithm
to build the directory tree one dir at a time, ignoring errors
until the end incase they are transient due to a concurrent
identical mkdir.
* tests/defs (func_mkdir_p): Ditto.
* config/ltmain.in (func_mkdir_p): Ditto, except that ltmain.in
uses $echo rather than $ECHO, and uses $show and $run to interact
correctly with the command line.
* configure.ac (AM_INIT_AUTOMAKE): 1.8 is sufficient again.
* Makefile.am (edit): Don't substitute automake's $(mkdir_p).
* NEWS: Updated.
2004-09-16 14:57:02 +00:00
Bob Friesenhahn
7955f590bb * libltdl/loaders/loadlibrary.c: Compilation fixes (originally
from Gary V. Vaughan) to compile under MinGW.
* config/mkstamp: Translate input data so that it is assured to
use the Unix line terminations. This is necessary under Windows if
the files are checked out with CR/NL line terminations. A
side-effect of this change is that input must always be from
stdin. Previously a filename argument was accepted as well.
2004-09-15 18:24:00 +00:00
Gary V. Vaughan
b386564d8e * config/ltmain.in (func_quote_for_eval): Set a return value to
avoid forking at every call.  Changed all callers.
(func_mode_link): Simplified, and removed the final non-portable
nested escaped double quotes in back quotes usage in the process.
2004-09-15 01:25:36 +00:00
Gary V. Vaughan
e5e3b3ada7 * config/ltmain.in (func_quote_for_eval): Factor out the ugly
shell meta-character quoting.  Changed all callers.
2004-09-14 22:47:11 +00:00
Albert Chin-A-Young
7ea2fa761b Unfortunately, libtool has no way of telling if unrecognized
compiler flags need an argument or not, and can disect options and
pass parts through incorrectly.  This changeset reverts both
2004-09-06 Albert Chin-A-Young (topmost) and 2004-09-05 Albert
Chin-A-Young below, and recognises more options explicitly:

* config/ltmain.in (func_mode_link): Pass through options needed
to compile in 64-bit mode with gcc, and the SGI, Sun, HP and IBM
compilers.
2004-09-14 21:23:43 +00:00
Albert Chin-A-Young
e8d9b37386 Hopefully, passing unrecognised compiler arguments through
unmolested will prove to be a good plan for the 2.0 release.  If
it goes awry, we can get back to where we were by reverting this
patch and the 2004-09-05 Albert Chin-A-Young patch, aka
gary@gnu.org--2004/libtool--devo--1.0--patch-169,172:

* config/ltmain.in (func_mode_link): Because we now pass through
compiler arguments we doesn't recognize, the code to pass
through GCC's -m* arguments is not needed.
2004-09-06 00:11:00 +00:00
Albert Chin-A-Young
ec1b689c78 * config/ltmain.in (func_mode_link): Pass otherwise unrecognised +
and - style switches to the compiler.
* NEWS: Updated.
2004-09-05 18:10:03 +00:00
Albert Chin-A-Young
0aef25d740 * m4/libtool.m4, config/ltmain.in: When calling $LTCC,
pass default $CFLAGS through with $LTCFLAGS.
2004-09-05 17:35:16 +00:00
David Edelsohn
875f854504 * config/ltmain.in (func_mode_link): Use $pic_object as
$non_pic_object if $non_pic_object=none.
* NEWS: Updated.
2004-09-03 13:02:33 +00:00
Gary V. Vaughan
ba6daa7408 Builds of packages that use libtool and make -j produce "directory
already exists warnings" for .lib directory.  Build on automake
wisdom to support make -j builds where a suitable mkdir is
available:

* configure.ac (AM_INIT_AUTOMAKE): Require 1.9, which goes to some
trouble to find a $(mkdir_p) that doesn't interfere with make -j.
* Makefile.am (edit): Substitute for @mkdir_p@.
* config/ltmain.in (MKDIR_P): Take @mkdir_p@ value.
(mkdir): Removed.
(func_mkdir_p): New function to use $MKDIR_P.  Factor out all
previous mkdir calls to use this function.
(RM, MV): Declared as in libtoolize.in.  Changed all callers.
* libtoolize.in (MKDIR_P): Take @mkdir_p@ value from automake.
(func_mkdir_p): Use it, similarly to new config/ltmain.in.
* tests/defs: Synchronize boiler plate code with ltmain.in.
Adjust all callers.
Add missing copyright preamble.
* tests/demo-static.test: Add missing copyright preamble.
Reported by Daniel Reed <n@ml.org>
2004-09-03 00:26:37 +00:00
Gary V. Vaughan
2d9235e58c * libtoolize.in, config/ltmain.in: Add CDPATH protection to
preamble.
* tests/defs: Put a full m4sh.m4 style 'Be Bourne compatible'
preamble in here too.
* HACKING: Note that tests/defs needs synching with m4sh.m4 too.
* TODO: Add new item.
2004-09-01 09:48:25 +00:00
Gary V. Vaughan
53f09b2d98 Don't use C99 flexible array types as we want to be C89
compatible.  Instead, revert to the old way of doing things with
an array of symbol name vs. address, and adding the originator as
the first symbol but with a NULL address:

* config/ltmain.in (func_extract_dlsyms): Store originator as a
NULL address symbol.
* libltdl/ltdl.h (lt_dlsymbol): Removed.
(lt_dlsymlist): Remove originator field.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust.
* libltdl/loaders/preopen.c (vm_open, lt_dlpreload_open): Adjust
for new types.
(vm_sym): Skip the new originator symbol when scanning symbol
names.
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust preloaded symbols
test file to match.
* NEWS: Updated.
2004-09-01 01:22:26 +00:00
Gary V. Vaughan
c37ec3a1d9 * .cvsignore, config/.cvsignore, libltdl/loaders/.cvsignore,
m4/.cvsignore: update (last two are new files).
2004-08-31 10:28:07 +00:00