Gary V. Vaughan [Mon, 25 Apr 2005 15:06:44 +0000 (15:06 +0000)]
Since the bootstrap process requires that several of the rules for
files generated in doc and tests already lived in
$top_srcdir/Makefile.am, along with proxy rules in sub-Makefiles,
this changeset consolidates almost everything into the top
Makefile.am, simplifying things considerably:
* doc/Makefile.am, tests/Makefile.am: Removed. All rules moved...
* Makefile.am: ...to here and adjusted to run from $top_builddir.
simplify with respect to removing much of the make recursion.
Add `doc/PLATFORMS', `doc/fdl.texi' and `doc/notes.texi'.
`defs.in' and `defs.m4sh' are in directory `tests'.
(uninstall-hook): Don't forget to uninstall libtoolize's libltdl
source tree.
(lt__cd): New make macros to work around problems with CDPATH in
some shells.
* bootstrap: Simplified dirty makefile management, and bootstrap
file creation in light of having only a single pertinent
Makefile.
* configure.ac (CONF_SUBDIRS): Add tests/ prefix to each subdir to
compensate.
(DIST_MAKEFILE_LIST): Adjust.
(AC_CONFIG_FILES): Remove doc/Makefile and tests/Makefile.
* tests/defs.m4sh (LIBTOOL, scripts): Adjust paths.
* tests/cdemo-conf.test, tests/cdemo-exec.test,
tests/cdemo-make.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/cdemo-undef.test,
tests/demo-conf.test, tests/demo-deplibs.test,
tests/demo-exec.test, tests/demo-hardcode.test,
tests/demo-inst.test, tests/demo-make.test,
tests/demo-nofast.test, tests/demo-noinst-link.test,
tests/demo-nopic.test, tests/demo-pic.test,
tests/demo-relink.test, tests/demo-shared.test,
tests/demo-static.test, tests/demo-unst.test,
tests/depdemo-conf.test, tests/depdemo-exec.test,
tests/depdemo-inst.test, tests/depdemo-make.test,
tests/depdemo-nofast.test, tests/depdemo-relink.test,
tests/depdemo-shared.test, tests/depdemo-static.test,
tests/depdemo-unst.test, tests/f77demo-conf.test,
tests/f77demo-exec.test, tests/f77demo-make.test,
tests/f77demo-shared.test, tests/f77demo-static.test,
tests/link-2.test, tests/link.test, tests/mdemo-conf.test,
tests/mdemo-dryrun.test, tests/mdemo-exec.test,
tests/mdemo-inst.test, tests/mdemo-make.test,
tests/mdemo-unst.test, tests/mdemo2-conf.test,
tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test,
tests/objectlist.test, tests/pdemo-conf.test,
tests/pdemo-exec.test, tests/pdemo-inst.test,
tests/pdemo-make.test, tests/quote.test, tests/sh.test,
tests/suffix.test, tests/tagdemo-conf.test,
tests/tagdemo-exec.test, tests/tagdemo-make.test,
tests/tagdemo-undef.test, tests/tagtrace.test (func_cd,
func_require): Adjust paths..
* HACKING: Use lt__cd throughout.
* m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) [solaris]:
Update wl for Sun Studio f77/f90/f95. Fix whole_archive_flag_spec
for cc and f77/f90/f95 to prevent reordering in case we link with $CC.
Gary V. Vaughan [Fri, 22 Apr 2005 10:04:00 +0000 (10:04 +0000)]
The FSF are moving offices today. Changed their contact address
in all files from `59 Temple Place, Suite 330, MA 02111-1307' to
`51 Franklin Street, Fifth Floor, MA 02110-1301'.
* tests/demo-hardcode.test [solaris]: Use dumpstabs if available,
to avoid false failure caused by debug section which contains
command line (Solaris cc).
* config/ltmain.m4sh (link mode): Add to tmp_libs paths for libtool dep
libs in reverse order as well.
* tests/Makefile.am, tests/link-order.test: New test.
Gary V. Vaughan [Mon, 4 Apr 2005 17:38:14 +0000 (17:38 +0000)]
Under certain circumstances, not all of the macro files were
copied into the destination directory. This changeset fixes
that bug:
* libtoolize.m4sh (func_serial_update): Renamed local variable
`my_update_p' to `my_serial_update_p', and initialise it correctly
even when the destination file is not yet there.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Gary V. Vaughan [Mon, 4 Apr 2005 12:29:52 +0000 (12:29 +0000)]
Getting the value of ltdldatafiles from a submake was not
portable, and had problems with GNU make-3.80 at least. This
changeset pulls the installation rules for libtoolize's copy of
the libltdl sources out of libltdl/Makefile.am so that
ltdldatafiles is defined in the same Makefile that uses it. Also,
this makes a start at cleaning up libltdl/Makefile.am so that it
is useful in a package that uses `libtoolize --ltdl':
* libltdl/loaders/Makefile.am: Removed entirely.
* libltdl/Makefile.am (dlopen.la, dld_link.la, dyld.la)
(load_add_on.la, loadlibrary.la, shl_load.la): All built from here
now that the loaders submake has gone.
(show-ltdldatafiles): Removed. No longer required.
(ltdldatadir, ltdldatafiles, install-local): Moved from here...
* Makefile.am (ltdldatadir, ltdldatafiles, install-local): ..to
here.
(libtoolize): Substitute $(ltdldatafiles) directly without calling
make to get the value from libltdl/Makefile.
Gary V. Vaughan [Fri, 1 Apr 2005 13:52:36 +0000 (13:52 +0000)]
Fix problems with serial comparison sed scripts, and factor out
common code from similar serial comparison functions:
* libtoolize.m4sh (func_keyword_update): Common code factored out
of func_ltmain_update and func_config_update.
(func_ltmain_update, func_config_update): Adjust, and fix sed
expressions to not use unportable ? modifier.
(func_install_update): New serial number based file updater keyed
of 'scriptversion' variable in install-sh. Adjust all callers.
Gary V. Vaughan [Thu, 24 Mar 2005 12:59:29 +0000 (12:59 +0000)]
As a prerequisite for being able to test an uninstalled libtoolize
for copying files correctly from the source tree, we must know
exactly which files should be copied by the --ltdl option to avoid
accidentally picking up compilation objects and other noise when
$builddir == $srcdir:
* libltdl/loaders/Makefile.am (ltdldatadir, ltdldatafiles)
(install-data-local): Removed...
* libltdl/Makefile.am (ltdldatafiles): ...and consolidated here.
(show-ltdldatafiles): New rule...
* Makefile.am (ltdldatafiles, libtoolize): ...used to substitute
exactly which files are installed by libtoolize --ltdl.
(edit): Move pkgvmacro_DATA substitution expression...
(libtoolize): ...to here.
* libtoolize.m4sh: Use func_copy_some_files() instead of
func_copy_all_from_path() to copy the --ltdl option installed
files.
(pkgvltdldirs): New path variable to search for files installed by
--ltdl option.
(func_massage_pkgvltdl_files): New function to calculate the list
of ltdl installation files.
Ralf Wildenhues [Tue, 22 Mar 2005 07:40:19 +0000 (07:40 +0000)]
* m4/libtool.m4 (_LT_LINKER_SHLIBS) [solaris]: Use ${wlarc}
and set to empty when using $LD for linking. Fixes regression
introduced in 2004-11-17.
Reported by Ralf Menzel <menzel@ls6.cs.uni-dortmund.de> and
Пухальский Юрий Андреевич <pooh@cryptopro.ru>.
Ralf Wildenhues [Mon, 21 Mar 2005 18:00:45 +0000 (18:00 +0000)]
* m4/libtool.m4 (_LT_SETUP, _LT_LANG_CXX_CONFIG, * _LT_LANG_F77_CONFIG):
For matching compiler names: Pick only first word, allow leading white
space..
* tests/sh.test: ..and test for missing `*' at end of patterns.
Peter Ekberg [Sun, 20 Mar 2005 07:16:00 +0000 (07:16 +0000)]
* m4/libtool.m4 (_LT_LINKER_SHLIBS) [ irix5, irix6, nonstopux ]:
Test if it is possible to use the -exports_file linker option on
irix with gcc, as the gcc specs file may include a -hidden_symbol
option that is clashing with the -exports_file option.
See this gcc bugzilla entry for further details:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15288
* THANKS: Update.
Peter O'Gorman [Fri, 18 Mar 2005 15:32:53 +0000 (15:32 +0000)]
* m4/libtool.m4: The compiler can be a program name with args, so
always check cc_basename against compiler name and a wildcard.
Also, drop unnecessary quotes in `case' argument.
Ralf Wildenhues [Wed, 16 Mar 2005 17:29:47 +0000 (17:29 +0000)]
* config/general.m4sh: unconditionally set IFS, and set it
to the one true right sequence: space, tab, newline.
* m4/libtool.m4: remove IFS setting and as_* namespace infringement.
Gary V. Vaughan [Tue, 15 Mar 2005 12:56:30 +0000 (12:56 +0000)]
* libtoolize.m4sh (func_massage_pkgvmacro_DATA): New function
to calculate the macro filenames to be copied by libtoolize.
* Makefile.am (edit): Substitute pkgvmacro_DATA.
Per Bothner [Sat, 12 Mar 2005 08:50:45 +0000 (08:50 +0000)]
Allow special characters in source file names. Will break unless
`-o target' is also given, which must not contain special characters.
En passant, fix source file quoting broken for cygwin/MSVC.
Gary V. Vaughan [Thu, 10 Mar 2005 20:58:06 +0000 (20:58 +0000)]
* libltdl/Makefile.am (install-data-local): Use `&&' to separate
commands so that stdin reaches the untar pracess.
* libltdl/loaders/Makefile.am (install-data-local): Ditto.
* libtoolize.m4sh (func_copy_cb): Ditto.
Gary V. Vaughan [Thu, 10 Mar 2005 16:40:19 +0000 (16:40 +0000)]
* libltdl/Makefile.am (install-data-local): Don't force v7 tar
format with the `o' flag in create mode.
Set the umask to 0 when untarring to avoid copied files taking
their mode from the installer's umask.
* libltdl/loaders/Makefile.am (install-data-local): Ditto.
* libtoolize.m4sh (func_copy_cb): Ditto.
Ignore errors from failed `cd' in the tar processes, since we
may be running in dryrun mode.
Reported by Noah Misch <noah@cs.caltech.edu>,
Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG)
[irix*, osf*]: Output -update_registry information to
${output_objdir} directory, not ${objdir}. ${output_objdir}
will work when a project has a single Makefile and performs
builds in subdirectories. ${objdir} expects the source in
the current directory, breaking single-Makefile builds.
Gary V. Vaughan [Wed, 2 Mar 2005 10:33:56 +0000 (10:33 +0000)]
* libtoolize.m4sh (func_copy_cb): Use tar chof to avoid symlink
attacks.
* libltdl/Makefile.am, libltdl/loaders/Makefile.am
(install-data-local): Ditto.
Gary V. Vaughan [Sun, 27 Feb 2005 19:35:55 +0000 (19:35 +0000)]
In branch-2-0 (and in time, others) ltversion.m4 has a dot
delimited serial number that didn't used to be processed
correctly by libtoolize. This changeset fixes that, and
leverages those changes to check versions of ltmain.sh and
config.sub, config.guess before overwriting when --force is
not given:
* libtoolize.m4sh: Don't overwrite pkgaux files with --force
unless --install is given too.
(func_serial): Fix underquoting in regexp.
(func_serial_max): New function to compare serial numbers.
(func_serial_update_check): New function factored out of
func_serial_update().
(func_serial_update): Bail if SRCFILE is missing.
Don't display both 'already up to date' and 'use --force to
update' messages for the same file.
Use func_serial_max to cope with `.' delimited serial numbers.
(func_ltmain_update): Use func_serial_update_check and
func_serial_max to do version checking with $package_revision.
(func_config_update): Ditto with $timestamp.
Gary V. Vaughan [Sat, 26 Feb 2005 23:53:17 +0000 (23:53 +0000)]
* libltdl/Makefile.am (install-data-local): cd to $(srcdir) before
tarring up the files for installation to $(DESTDIR)$(ltdldatadir).
Don't remove the destination directory, since that interacts badly
with the multi-Makefile installation.
* libltdl/loaders/Makefile.am (install-data-local): Ditto.
Gary V. Vaughan [Sat, 26 Feb 2005 22:51:28 +0000 (22:51 +0000)]
I assume that it is okay to have undefined symbols in convenience
libraries that will be used as modules -- the pic objects are
built normally, and are not expected to resolve all their symbols
until they are linked into a library; convenience libraries are
then rolled using 'ar' and 'ranlib' (or equivalent) which also do
not check whether symbols are resolved. We now build each of the
loaders as a convenience library module under these assumptions,
and link libltdl.la with selected modules, at which time all of
the symbols *are* resolved:
* TODO: Remove item addressed by this changeset.
* libltdl/Makefile.am (lib_LTLIBRARIES): Remove libdlloader.la.
(libdlloader_la_SOURCES): Declaration removed. Changed all
clients. Source files..
(libltdl_la_SOURCES): ...added back in here.
(libdlloader_LDFLAGS, libdlloader_la_LIBADD): Removed.
(libltdl_la_LIBADD): Remove libdlloader.la; add $(LTLIBOBJS).
* libltdl/loaders/Makefile.am: Removed all references to
libdlloader.la.
Peter O'Gorman [Fri, 25 Feb 2005 14:14:19 +0000 (14:14 +0000)]
* m4/libtool.m4 (_LT_LINKER_SHLIBS): The Portland group's
compiler does not pass --whole-archive. Move gnu ld check for
the flag to the top so it can be overridden.
(_LT_LANG_CXX_CONFIG, _LT_COMPILER_PIC): Unset
whole_archive_flag_spec for the portland group's c++ compiler too.
Reported by Jeff Squyres <jsquyres@lam-mpi.org>
Gary V. Vaughan [Wed, 23 Feb 2005 15:13:30 +0000 (15:13 +0000)]
Preserving the installed timestamps for libltdl sources from
`libtoolize --ltdl --copy' is pointless if they are not preserved
from the libtool source tree at install time:
* libltdl/Makefile.am, libltdl/loaders/Makefile.am
(nobase_ltdldata_DATA): Renamed to...
(ltdldatafiles): ...this.
(install-data-local): New rule to install libltdl tree with tar to
preserve timestamps.
Gary V. Vaughan [Tue, 22 Feb 2005 17:41:46 +0000 (17:41 +0000)]
Using `libtoolize --copy --ltdl' was not preserving timestamps, so
parts of the autoconf bootstrap would be rerun spuriously after
the files had been copied into the source tree:
* libtoolize.m4sh (TAR): New default tar command.
(func_copy_cb): Move the core copying internals to here, using
$TAR to transfer files if possible when --copy was specified.
(func_copy): Adjust to call func_copy_cb.
Reported by Jeff Squyres <jsquyres@lam-mpi.org>
Reid Spencer [Thu, 3 Feb 2005 18:55:43 +0000 (18:55 +0000)]
* config/ltmain.m4sh (func_generate_dlsyms): Fix broken subdir
path computation, exposed by using `-dlopen self'. Fix broken
sed script exposed by additionally using `-export-symbols FILE'.
Peter O'Gorman [Thu, 3 Feb 2005 03:59:45 +0000 (03:59 +0000)]
* config/ltmain.m4sh [darwin]: Don't add installed libs to
temp_rpath when building executables on darwin, or other systems
which use hardcode_automatic. It may break our wrapper scripts.
Ralf Wildenhues [Mon, 31 Jan 2005 17:31:30 +0000 (17:31 +0000)]
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Unicos 9 sed rejects
empty parentheses as in 's/x()/1/'.
(_LT_COMPILER_PIC) [unicos*]: wl=-Wl,.
* tests/sh.test: Not all sed's like '/.*n.*/' (Unicos 9 sed
loops endlessly).
Ralf Wildenhues [Mon, 24 Jan 2005 07:46:17 +0000 (07:46 +0000)]
* tests/defs.m4sh: Extract $build from $LIBTOOL.
(func_configure): Pass --host if $host != $build.
(func_exec): Try executing cross-compiled binaries (e.g. i686 -> i386),
but SKIP rather than FAIL.
* tests/depdemo-relink.test: Do not try to access possibly non-
existent files. SKIP rather than FAIL or PASS falsely when
cross-compiling.
Ralf Wildenhues [Mon, 24 Jan 2005 07:43:07 +0000 (07:43 +0000)]
* m4/libtool.m4 (_LT_SETUP) [mingw, cygwin, pw32, os2]:
Add _LT_DECLs for host_os, build_alias, build and build_os.
host_os and build were used in a few occasions in ltmain.m4sh
and affect above-mentioned systems, the others are added for
symmetry and in order to be able to detect cross-compiling.
Peter O'Gorman [Sun, 16 Jan 2005 14:07:06 +0000 (14:07 +0000)]
* config/ltmain.m4sh (func_mode_link): Don't pass through
compiler-like thread flags when using $LD to do the linking.
Use compiler_flags instead.
Reported by Mark_Andrews@isc.org.
Peter O'Gorman [Sun, 16 Jan 2005 12:27:15 +0000 (12:27 +0000)]
* m4/libtool.m4 (LT_CMD_MAX_LEN) [osf]: On Tru64 there could
be a kernel panic when testing the maximum command line length
if exec_disable_arg_limit=1. Don't do the tests to figure it
out on *-osf*.
Reported by Dr. Hans Ekkehard Plesser
<hans.ekkehard.plesser@umb.no>
Ralf Wildenhues [Thu, 13 Jan 2005 17:24:09 +0000 (17:24 +0000)]
* libtoolize.m4sh: Back out copying `install-sh' by libtoolize.
* doc/libtool.texi (Distributing): Mention that we distribute
`install-sh', but that non-Automake users will have to copy
it by themselves.
Ralf Wildenhues [Wed, 12 Jan 2005 16:36:33 +0000 (16:36 +0000)]
* config/ltmain.m4sh: New option `--verbose'/`-v' to enable
override of `--silent'. Verbose is the default behavior.
* doc/libtool.texi (Invoking libtool): Document it.
Peter O'Gorman [Tue, 11 Jan 2005 15:52:18 +0000 (15:52 +0000)]
* config/ltmain.m4sh (func_mode_link): Fix
inherited_linker_flags so it puts it on the link line when
linking shared libraries as well as when linking executables.
Reported by: Albert Chin-A-Young <china@thewrittenword.com>
Ralf Wildenhues [Mon, 10 Jan 2005 11:00:05 +0000 (11:00 +0000)]
* tests/sh.test: After `set dummy [...]', check for `shift'
within the same and following line.
* config/ltmain.m4sh (func_enable_tag, func_mode_install)
(func_mode_link): Sprinkle `shift's all over to conform to this.