`./dir/file', where ltdldir is `.', so that libtoolize correctly
checks for (and suggests) `config' and `m4' instead of
`./config' and `./m4' as auxiliary resp. macro directories.
The change is necessary for unambiguous naming, the chosen way
plays better with non-GNU make in VPATH builds.
* libtoolize.m4sh (ltdlprefix): New variable, to use as prefix
instead of `$ltdldir/'.
(func_check_macros): Use it. Bug report by Eric Blake.
- Do not symlink aclocal.m4, to work around a bug in aclocal
overwriting the linked-to file instead of removing the symlink.
- Have `libtoolize --copy' cause current time stamps, so that
dependents will be rebuilt; for this, install files in order.
- Fix list of distribution files for (non)recursive libltdl.
- Fix some failure cases.
* libtoolize.m4sh (func_copy_cb):
If `$opt_link', still copy `aclocal.m4', so a subsequent
`aclocal' will not overwrite the symlink target.
In `--copy' mode, do `cp -p' and `touch' for each file, so
timestamps are updated but permissions preserved.
(main): Reorder installing of files to match logical order
and timestamp requirements.
(func_fixup_Makefile_inc): Renamed to
(func_fixup_Makefile): this. Add sed scriptlet to remove
non-existent files from EXTRA_DIST, for either nonrecursive
or recursive mode.
(main): call it to mangle also in recursive mode.
* tests/libtoolize.at (expout): Adjusted.
* tests/testsuite.at (tst_dist): Default to `dist'.
* libltdl/m4/libtool.m4 (_LT_CHECK_XSI_SHELL): Rename to...
(_LT_CHECK_SHELL_FEATURES): ...this.
(_LT_SETUP): Adjust caller.
(_LT_CHECK_XSI_SHELL): New libtool variables `lt_unset',
`SP2NL', `NL2SP', to contain results from tests for unset,
taken from AS_BOURNE_COMPATIBLE, and ASCII vs EBCDIC, taken...
* libltdl/config/general.m4sh: ...from here, and used...
* libltdl/config/ltmain.m4sh: ...here everywhere now.
* (AS_SHELL_SANITIZE): Replace by faster, actually necessary
part of its expansion, taken from current Autoconf CVS. Do not
save and set all locale variables any more, but only LANG,
LC_ALL, LC_CTYPE, LC_COLLATE, LC_MESSAGES.
(func_mode_execute): Adjust.
* libltdl/m4/libtool.m4 (_LT_CONFIG): No need to unset CDPATH
here any more.
* libtoolize.m4sh: Compute `SP2NL' and `NL2SP' here, too.
(func_serial_update, func_keyword_update): Fail immediately
if some file we may install does not exist.
Reported by Troy Benjegerdes <hozer@hozed.org>.
(func_massage_aclocal_DATA, func_massage_pkgltdl_files)
(func_massage_pkgconfig_files): Work around ksh limitation.
Reported by Thorsten Glaser <tg@66h.42h.de>.
* Makefile.am (BUILDCHECK_ENVIRONMENT, INSTALLCHECK_ENVIRONMENT):
...set it here to pick up files from the right place in context.
* tests/libtoolize.at, tests/old-m4-iface.at: Adjust.
* libtoolize.m4sh: Take tst_aclocaldir into account when running
inside the test harness.
numbers when deciding whether to update.
(func_serial): Allow for macro_regex argument to be originating
file name.
(func_serial_update): Use NL2SP to flatten list of extracted
m4_include files.
* tests/libtoolize.at: More tests for old-style verbatim copying
of macros into aclocal.m4.
use in non-recursive libltdl installations.
* bootstrap: Adjust.
* Makefile.am: include it.
(libltdl/Makefile.am): Adjust to build from the new
libltdl/Makefile.inc.
(SUBDIR_LIBOBJS): Renamed from this...
(LTDL_SUBDIR_LIBOBJS): ...to this.
* configure.ac: Adjust.
* doc/libtool.texi (Invoking libtoolize): Document the new modes
and libtoolize option to select them.
* libtoolize.m4sh: Parse new options, --nonrecursive, --recursive
and --subproject. Install the appropriate files with --ltdl
according to the selected mode.
(func_scan_files): If --subproject, --recursive or --nonrecursive
options were not given, use the value from LT_CONFIG_LTDL_DIR; if
a mode was given, and there is also an argument to
LT_CONFIG_LTDL_DIR, ensure they are the same.
* NEWS: Updated.
function for libtool m4 files with no macro_regex. If the
files are copied directly into aclocal.m4, because
AC_CONFIG_MACRO_DIR isn't set for example, there is no way
to tell what serial number goes with what source file.
(func_serial_update): For future-proofing, only make the second
serial number check if the destination file wasn't m4_included
into aclocal.m4 (and hence updated automatically by the cat of
copying a new version to the dest directory).
aclocal.m4 doesn't work. List all required files in that case,
using the files from installed libltdl if available. Also, list
the additional files required when using libltdl.
Reported by Patrick Welche <prlw1@newn.cam.ac.uk>.
interface.
(LT_CONFIG_LTDL_DIR): New macro to centralise setting the
subdirectory used for libltdl.
(LTDL_CONVENIENCE): Continue backwards compatibility support for
declaring the libltdl source subdirectory with an argument, but
defer to LT_CONFIG_LTDL_DIR.
(AC_LIBLTDL_CONVENIENCE): Adjust to upgrade to the new style.
(LTDL_INSTALLABLE, AC_LIBLTDL_INSTALLABLE): Ditto.
(LTDL_INIT): lt_ltdl_dir is set by LT_CONFIG_LTDL_DIR now, and
even `./' needs trailing slashes trimming! If the user didn't
upgrade their configure.ac yet, call LT_CONFIG_LTDL_DIR for them.
* libtoolize.m4sh (func_scan_files): If --ltdl option is given
without a directory argument, use the value from
LT_CONFIG_LTDL_DIR; if the argument is given, and there is also a
value in LT_CONFIG_LTDL_DIR, ensure they are the same.
* libltdl/configure.ac: Use it.
* NEWS: Updated.
upgraded libtool, but still use an old autoconf. When the libtool
macros are not copied (because of missing ACLOCAL_AMFLAGS and
AC_CONFIG_MACRO_DIR ), point them at the libtoolize master tree
for files to manually copy into acinclude.m4 or aclocal.m4.
installation to the libtoolize master tree, so that libltdl is
useable even in the extreme case of when automake and autoconf are
not installed on the developers machine. Part of this change
requires some duplication of rules between Makefile.am (which
builds libltdl for this distribution) and libltdl/Makefile.am
(which is used by projects that libltoolize --ltdl --copy), so
libtool now really does use a single toplevel Makefile.am, and we
generate libltdl/Makefile.am from that:
* m4, config: Moved from here...
* libltdl/m4, libltdl/config: ...to here, to reduce the amount of
kludging needed in bootstrap for autoreconf to run.
* tests/cdemo/Makefile.am, tests/demo/Makefile.am,
tests/depdemo/Makefile.am, tests/f77demo/Makefile.am,
tests/fcdemo/Makefile.am, tests/mdemo/Makefile.am,
tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am,
tests/tagdemo/Makefile.am (ACLOCAL_AMFLAGS): Adjust to
compensate.
* 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.
* libltdl/m4/ltdl.m4: Increment serial number.
(LTDL_INIT): Accept an optional directory argument to prefix each
of the LD_DLLOADERS locations. Default to empty for backwards
compatibility.
* Makefile.maint: Adjust to compensate.
* configure.ac (AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR): Adjust.
(AC_CONFIG_LIBOBJ_DIR): Set here so that we can build LTLIBOBJS
from in a subdirectory from the amalgamated Makefile.am.
(AM_PROG_CC_C_O, AM_INIT_AUTOMAKE): Use subdir-objects.
(AC_CONFIG_FILES): Remove libltdl/Makefile.am.
* libltdl/Makefile.am: Removed from repository, and merged into
Makefile.am as we now generate it...
* Makefile.am (libltdl/Makefile.am): ...from here, by extracting
the merged rules, and tweaking paths to accomodate the difference
in directory from Makefile.am to libltdl/Makefile.am.
(nobase_dist_pkgdata_DATA): Automake generated installation rules
change timestamps of installed files, so renamed this...
(configauxfiles): ...to this...
(libtoolize): ...substitute it...
(install-data-local): ...install manually, preserving
timestamps...
(install-data-hook): ...and set execute bit as appropriate.
(uninstall-hook): Not forgetting to remove them at uninstall.
(libltdl/Makefile.in): New rule. Called from...
* bootstrap: ...here to avoid relying on config.status at
bootstrap time.
(auxdir, m4dir): Extract from configure.ac for ease of future
maintenance. Adjust all references.
(reconfdirs): Call autoreconf for libltdl too -- even
though we don't use it for the build, libltdl/configure and
friends are installed with `libtoolize --ltdl --copy'.
* libtoolize.m4sh: Add files from the installed config master tree
to libtoolize --ltdl project subdirectory.
Diagnose duplicated files when --ltdl is used in an autotooled
project.
It's perfectly fine to run `libtoolize --ltdl --copy' in a tree
that has no configure.ac or configure.in; we want libltdl to be
useful even to projects that don't use autotools themselves.
(libtoolize_flags): Removed. Changed all callers.
(func_massage_pkgconfig_files): New function.
* tests/standalone.at: New tests for using libltdl without
supporting configury in the parent project.
* tests/testsuite.at: Run them!
* NEWS: Updated.
* libtoolize.m4sh (pkgdatadir, aclocaldir): Substituted from
configure.
(func_copy_all_from_path): Removed. No longer used.
(func_copy_some_files): Simplify now that nothing is copied from a
list of possible directories now.
(func_scan_files): Remove directory readability check...
(func_nonemptydir_p): ...in favour of a dedicated sanity check
function called from the main body.
(_lt_pkgvdatadir): Set pkgdatadir and aclocaldir appropriately if
this is in the environment.
* configure.ac: Tests for `ln' removed.
(APIVERSION): Removed.
* Makefile.am (pkgvdatadir, nobase_dist_pkgvdata_DATA)
(nobase_pkgvdata_DATA): Renamed to...
(pkgdatadir, nobase_dist_pkgdata_DATA, aclocalfiles): ...these
respectively.
(edit): Adjust for new variable names.
(install-data-local): Don't bother to remove old macro files that
will be overwritten by the installation, and perform a manual
installation of $(aclocalfiles) to preserve timestamps.
(install-exec-hook): Removed. No need to make versioned links.
(uninstall-hook): No need to remove versioned links, but now we
need to manually remove the manually installed $(aclocalfiles).
* doc/libtool.texi: Remove bogus notes about setting
ACLOCAL_AMFLAGS for versioned libtool installations.
* NEWS: Remove parallel installation item.
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>
(_lt_pkgvdatadir): ...to this.
* tests/testsuite.at (LT_AT_LIBTOOLIZE): The `-I' option is no
longer supported by libtoolize. Set _lt_pkgvdatadir in the
environment of the invocation instead.
pkgvmacro_DATA is no longer set in the makefile.
* libtoolize.m4sh (func_massage_pkgvmacro_DATA): Use it and, for
consistency, renamed from this...
(func_massage_nobase_pkgvdata_DATA): ...to this. Adjust all
callers.
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
off 'scriptversion' variable in install-sh. Adjust all callers.
uninstalled libtoolize isn't necessary if we allow overriding of
the libtool master copy directory:
* configure.ac (pkvmacrodir): No need to substitute this.
* Makefile.am (edit): No need to substitute pkgvmacrodir.
(dist_pkgvdata_DATA): Use nobase_ prefix so that these files are
installed to $(pkgvdatadir)/config.
(pkgvmacro_DATA): Renamed to...
(nobase_pkgvdata_DATA): ...this, so that files are installed to
$(pkgvdatadir)/m4.
(install-data-hook): Adjust.
* libtoolize.m4sh: Remove -I processing.
(func_filename_path_search): No longer required without -I.
Adjust all callers.
(pkgvltdldirs, pkgvmacrodirs): Deleted.
(pkgvdatadir): Allow overriding from the environment so that we
can write tests for uninstalled libtoolize.
(func_serial_update, func_ltmain_update, func_config_update):
Rename srcdirs parameter to srcdir, and don't call the path_search
function anymore. Adjust all callers.
(--install): Don't blindly copy all config files.
When using -I to test an uninstalled libtoolize, we need to add
the config subdirectory to the search path so that ltmain.sh can
be found in the source tree.
path delimiter for all inner loop iterations.
Once a matching file has been copied, no need to keep searching
the path for another -- move on to the next file!
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.
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>