2004-09-23 09:16:41 +08:00
|
|
|
m4_define([_m4_divert(SCRIPT)], 100)
|
|
|
|
m4_divert_push([SCRIPT])#! /bin/sh
|
2004-08-29 00:15:23 +08:00
|
|
|
# @configure_input@
|
|
|
|
|
2003-11-26 20:34:23 +08:00
|
|
|
# libtoolize (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
|
2004-08-29 00:15:23 +08:00
|
|
|
# Written by Gary V. Vaughan <gary@gnu.org>, 2003
|
2003-10-07 19:12:16 +08:00
|
|
|
|
2005-02-22 23:27:07 +08:00
|
|
|
# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
2003-10-07 19:12:16 +08:00
|
|
|
# This is free software; see the source for copying conditions. There is NO
|
|
|
|
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
|
1997-04-02 02:29:23 +08:00
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
|
|
# it under the terms of the GNU General Public License as published by
|
|
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
|
|
# (at your option) any later version.
|
|
|
|
#
|
|
|
|
# This program is distributed in the hope that it will be useful, but
|
|
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
# General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
2003-10-07 19:12:16 +08:00
|
|
|
# along with this program; if not, a copy can be downloaded from
|
|
|
|
# http://www.gnu.org/copyleft/gpl.html, or by writing to the Free
|
2005-04-22 18:10:31 +08:00
|
|
|
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
|
|
# MA 02110-1301, USA.
|
1997-04-02 02:29:23 +08:00
|
|
|
#
|
|
|
|
# As a special exception to the GNU General Public License, if you
|
|
|
|
# distribute this file as part of a program that contains a
|
|
|
|
# configuration script generated by Autoconf, you may include it under
|
|
|
|
# the same distribution terms that you use for the rest of that program.
|
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
# Usage: $progname [OPTION]...
|
|
|
|
#
|
|
|
|
# Prepare a package to use libtool.
|
|
|
|
#
|
|
|
|
# -c, --copy copy files rather than symlinking them
|
|
|
|
# --debug enable verbose shell tracing
|
|
|
|
# -n, --dry-run print commands rather than running them
|
|
|
|
# -f, --force replace existing files
|
|
|
|
# -i, --install copy missing auxiliary files
|
2005-10-03 23:45:47 +08:00
|
|
|
# --ltdl[=DIR] install libltdl sources [default: libltdl]
|
2005-10-26 18:42:05 +08:00
|
|
|
# --nonrecursive prepare ltdl for non-recursive make
|
2003-10-07 19:12:16 +08:00
|
|
|
# -q, --quiet work silently
|
2005-10-26 18:42:05 +08:00
|
|
|
# --recursive prepare ltdl for recursive make
|
|
|
|
# --subproject prepare ltdl to configure and build independently
|
2003-10-07 19:12:16 +08:00
|
|
|
# -v, --verbose verbosely report processing
|
|
|
|
# --version print version information and exit
|
2004-08-29 00:15:23 +08:00
|
|
|
# -h, --help print short or long help message
|
2003-10-07 19:12:16 +08:00
|
|
|
#
|
|
|
|
# You must `cd' to the top directory of your package before you run
|
|
|
|
# `$progname'.
|
|
|
|
#
|
2004-08-29 00:15:23 +08:00
|
|
|
# When reporting a bug, please describe a test case to reproduce it and
|
|
|
|
# include the following information:
|
|
|
|
#
|
|
|
|
# host-triplet: @host_triplet@
|
|
|
|
# $progname: (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
|
|
|
|
# automake: $automake_version
|
|
|
|
# autoconf: $autoconf_version
|
|
|
|
#
|
2003-10-07 19:12:16 +08:00
|
|
|
# Report bugs to <bug-libtool@gnu.org>.
|
|
|
|
|
2005-09-10 23:38:27 +08:00
|
|
|
: ${TAR=tar}
|
|
|
|
|
1997-04-02 02:29:23 +08:00
|
|
|
PROGRAM=libtoolize
|
|
|
|
|
2004-09-23 09:16:41 +08:00
|
|
|
AS_SHELL_SANITIZE
|
|
|
|
$as_unset CDPATH
|
2004-06-22 00:40:01 +08:00
|
|
|
|
2004-09-23 09:16:41 +08:00
|
|
|
m4_include([getopt.m4sh])
|
2004-02-12 21:18:52 +08:00
|
|
|
|
2004-09-23 09:16:41 +08:00
|
|
|
# Command line options:
|
2005-10-03 23:45:47 +08:00
|
|
|
opt_debug=:
|
2004-02-12 21:18:52 +08:00
|
|
|
opt_force=false
|
|
|
|
opt_install=false
|
|
|
|
opt_link=:
|
2005-10-03 23:45:47 +08:00
|
|
|
opt_ltdl=false
|
2003-10-07 19:12:16 +08:00
|
|
|
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
seen_autoconf=false
|
2003-10-07 19:12:16 +08:00
|
|
|
seen_libtool=false
|
|
|
|
seen_ltdl=false
|
|
|
|
|
2005-10-26 18:42:05 +08:00
|
|
|
# ltdl can be installed to be self-contained (subproject, the default);
|
|
|
|
# or to be configured by a parent project, either with a recursive or
|
|
|
|
# nonrecursive automake driven make:
|
|
|
|
ltdl_mode=
|
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
# Locations for important files:
|
1997-04-02 02:29:23 +08:00
|
|
|
prefix=@prefix@
|
|
|
|
datadir=@datadir@
|
2005-04-30 17:30:14 +08:00
|
|
|
pkgdatadir=@pkgdatadir@
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
pkgltdldir=@pkgdatadir@
|
2005-04-30 17:30:14 +08:00
|
|
|
aclocaldir=@aclocaldir@
|
2003-10-07 19:12:16 +08:00
|
|
|
auxdir=
|
|
|
|
m4dir=
|
2004-06-21 18:17:27 +08:00
|
|
|
ltdldir=
|
2003-10-07 19:12:16 +08:00
|
|
|
configure_ac=configure.in
|
1997-04-02 02:29:23 +08:00
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
|
|
|
|
# Parse options once, thoroughly. This comes as soon as possible in
|
|
|
|
# the script to make things like `libtoolize --version' happen quickly.
|
|
|
|
{
|
|
|
|
# sed scripts:
|
|
|
|
my_sed_single_opt='1s/^\(..\).*$/\1/;q'
|
|
|
|
my_sed_single_rest='1s/^..\(.*\)$/\1/;q'
|
2004-09-23 09:16:41 +08:00
|
|
|
my_sed_long_opt='1s/^\(--[[^=]]*\)=.*/\1/;q'
|
|
|
|
my_sed_long_arg='1s/^--[[^=]]*=//'
|
2003-10-07 19:12:16 +08:00
|
|
|
|
Refactor all the test case common code into shell functions in
tests/defs, and move the various demo directories out of
$top_srcdir, and into tests too. The refactoring showed up a
number of inconsistencies and latent bugs, as well as fixing (I
think!!) the long-standing annoyance with some of the tests giving
spurious failures intermittently. While I was here, emacs kindly
removed a lot of bogus whitespace and added copyright notices for
us:
* cdemo, demo, depdemo, f77demo, mdemo, mdemo2, pdemo, tagdemo:
Moved from here...
* tests/cdemo, tests/demo, tests/depdemo, tests/f77demo,
tests/mdemo, tests/mdemo2, tests/pdemo, tests/tagdemo: ...to
here.
* tests/defs: Factor much common functionality from the test
scripts into shell functions. Added a copyright notice.
* tests/assign.test, tests/cdemo-conf.test, tests/cdemo-exec.test,
tests/cdemo-make.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/demo-conf.test,
tests/demo-deplibs.test, tests/demo-exec.test,
tests/demo-inst.test, tests/demo-make.test,
tests/demo-nofast.test, tests/demo-nopic.test,
tests/demo-pic.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-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-exec.test,
tests/mdemo-inst.test, tests/mdemo-make.test,
tests/mdemo-shared.test, tests/mdemo-static.test,
tests/mdemo-unst.test, tests/mdemo2-conf.test,
tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test,
tests/pdemo-conf.test, tests/pdemo-exec.test,
tests/pdemo-inst.test, tests/pdemo-make.test,
tests/pdemo-unst.test, tests/quote.test, tests/sh.test,
tests/suffix.test, tests/tagdemo-conf.test,
tests/tagdemo-exec.test, tests/tagdemo-make.test,
tests/tagdemo-shared.test, tests/tagdemo-static.test: Refactored
to use new functions in tests/defs. Added a copyright notice.
* tests/hardcode.test, noinst-link.test,
tests/relink.test, tests/relink.test,
tests/mdryrun.test: Ditto. Moved from here...
* tests/demo-hardcode.test, demo-noinst-link.test,
tests/demo-relink.test, tests/depdemo-relink.test,
tests/mdemo-dryrun.test: ...to here respectively.
* Makefile.am: Added a copyright notice.
* tests/sh.test: Check libtoolize.in for non-portabilities too.
* libtoolize.in: Fix non-portabilities found by tests/sh.test.
2003-10-15 05:45:03 +08:00
|
|
|
while test "$#" -gt 0; do
|
2004-02-12 21:18:52 +08:00
|
|
|
opt="$1"
|
|
|
|
shift
|
|
|
|
case $opt in
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
--copy|-c) opt_link=false ;;
|
2003-10-07 19:12:16 +08:00
|
|
|
|
2004-02-12 21:18:52 +08:00
|
|
|
--debug) func_echo "enabling shell trace mode"
|
2004-12-28 21:31:12 +08:00
|
|
|
opt_debug='set -x'
|
|
|
|
$opt_debug
|
2003-10-07 19:12:16 +08:00
|
|
|
;;
|
|
|
|
|
2004-02-12 21:18:52 +08:00
|
|
|
--dry-run|-n) if $opt_dry_run; then :; else
|
|
|
|
opt_dry_run=:
|
2004-09-16 22:57:02 +08:00
|
|
|
RM="$ECHO $RM"
|
|
|
|
test -n "$LN_S" && LN_S="$ECHO $LN_S"
|
|
|
|
CP="$ECHO $CP"
|
|
|
|
MKDIR="$ECHO $MKDIR"
|
2005-02-22 23:27:07 +08:00
|
|
|
TAR="$ECHO $TAR"
|
2003-10-07 19:12:16 +08:00
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
--force|-f) opt_force=: ;;
|
2004-06-22 00:40:01 +08:00
|
|
|
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
--install|-i) opt_install=: ;;
|
2004-06-21 18:17:27 +08:00
|
|
|
|
2005-10-03 23:45:47 +08:00
|
|
|
--ltdl) opt_ltdl=:
|
2005-03-24 21:15:54 +08:00
|
|
|
if test "$#" -gt 0; then
|
|
|
|
case $1 in
|
2005-10-03 23:45:47 +08:00
|
|
|
-*) ;;
|
|
|
|
*) ltdldir=`$ECHO "X$1" | $Xsed -e 's,/*$,,'`
|
|
|
|
shift
|
|
|
|
;;
|
2005-03-24 21:15:54 +08:00
|
|
|
esac
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
2005-10-26 18:42:05 +08:00
|
|
|
--nonrecursive|--non-recursive)
|
|
|
|
ltdl_mode=nonrecursive
|
|
|
|
;;
|
|
|
|
|
2004-02-12 21:18:52 +08:00
|
|
|
--quiet|--automake|-q) # --automake is for 1.5 compatibility
|
2004-06-22 00:40:01 +08:00
|
|
|
opt_quiet=:
|
|
|
|
;;
|
|
|
|
|
2005-10-26 18:42:05 +08:00
|
|
|
--recursive) ltdl_mode=recursive ;;
|
|
|
|
|
|
|
|
--subproject) ltdl_mode=subproject ;;
|
|
|
|
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
--verbose|-v) opt_verbose=: ;;
|
2004-06-21 18:17:27 +08:00
|
|
|
|
|
|
|
# Separate optargs to long options:
|
2004-11-29 21:50:54 +08:00
|
|
|
--*=*)
|
2004-09-25 00:08:33 +08:00
|
|
|
arg=`$ECHO "X$opt" | $Xsed -e "$my_sed_long_arg"`
|
|
|
|
opt=`$ECHO "X$opt" | $Xsed -e "$my_sed_long_opt"`
|
2004-12-28 21:50:23 +08:00
|
|
|
set dummy "$opt" "$arg" ${1+"$@"}
|
|
|
|
shift
|
2004-06-21 18:17:27 +08:00
|
|
|
;;
|
2003-10-07 19:12:16 +08:00
|
|
|
|
2005-10-03 23:45:47 +08:00
|
|
|
# Separate optargs to short options:
|
|
|
|
#-X*)
|
|
|
|
# arg=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_rest"`
|
|
|
|
# opt=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_opt"`
|
|
|
|
# set dummy "$opt" "$arg" ${1+"$@"}
|
|
|
|
# shift
|
|
|
|
# ;;
|
|
|
|
|
2004-06-21 18:17:27 +08:00
|
|
|
# Separate non-argument short options:
|
2005-10-03 23:45:47 +08:00
|
|
|
-c*|-f*|-i*|-n*|-q*|-v*)
|
2004-09-25 00:08:33 +08:00
|
|
|
rest=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_rest"`
|
|
|
|
opt=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_opt"`
|
2004-12-28 21:50:23 +08:00
|
|
|
set dummy "$opt" "-$rest" ${1+"$@"}
|
|
|
|
shift
|
2003-10-07 19:12:16 +08:00
|
|
|
;;
|
|
|
|
|
2004-02-12 21:18:52 +08:00
|
|
|
-\?|-h) func_usage ;;
|
|
|
|
--help) func_help ;;
|
|
|
|
--version) func_version ;;
|
|
|
|
--) break ;;
|
|
|
|
-*) func_fatal_help "unrecognized option \`$opt'" ;;
|
2003-10-07 19:12:16 +08:00
|
|
|
*) func_fatal_help "too many arguments" ;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2004-09-03 08:26:37 +08:00
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
# func_copy srcfile destfile
|
2005-02-22 23:27:07 +08:00
|
|
|
# A wrapper for func_copy_cb that accepts arguments in the same order
|
|
|
|
# as the cp(1) shell command.
|
2003-10-07 19:12:16 +08:00
|
|
|
func_copy ()
|
|
|
|
{
|
2004-12-28 21:31:12 +08:00
|
|
|
$opt_debug
|
2005-02-22 23:27:07 +08:00
|
|
|
|
|
|
|
test -f "$1" || \
|
|
|
|
{ func_error "\`$1' not copied: not a regular file"; return 1; }
|
|
|
|
|
|
|
|
my_f1=`$ECHO "X$1" | $Xsed -e "$basename"`
|
|
|
|
|
|
|
|
if test -d "$2"; then
|
|
|
|
|
2005-02-26 01:50:23 +08:00
|
|
|
func_copy_cb "$my_f1" \
|
|
|
|
`$ECHO "X$1" | $Xsed -e "$dirname"` "$2"
|
2005-02-22 23:27:07 +08:00
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
else
|
2005-02-22 23:27:07 +08:00
|
|
|
|
|
|
|
# Supporting this would mean changing the timestamp:
|
|
|
|
test "X$my_f1" = X`$ECHO "X$2" | $Xsed -e "$basename"` \
|
|
|
|
|| func_fatal_error "func_copy() cannot change filename on copy"
|
|
|
|
|
|
|
|
func_copy_cb "$my_f1" \
|
|
|
|
`$ECHO "X$1" | $Xsed -e "$dirname"` \
|
|
|
|
`$ECHO "X$2" | $Xsed -e "$dirname"`
|
|
|
|
|
1997-04-02 03:19:30 +08:00
|
|
|
fi
|
|
|
|
|
2005-02-22 23:27:07 +08:00
|
|
|
return $copy_return_status # set in func_copy_cb
|
2003-10-07 19:12:16 +08:00
|
|
|
}
|
1997-04-02 02:29:23 +08:00
|
|
|
|
2004-11-29 21:50:54 +08:00
|
|
|
|
|
|
|
# func_copy_cb filename srcdir destdir
|
2005-02-22 23:27:07 +08:00
|
|
|
# If option `--copy' was specified, or soft-linking SRCFILE to DESTFILE fails,
|
|
|
|
# then try to copy SRCFILE to DESTFILE (without changing the timestamp if
|
|
|
|
# possible).
|
2004-11-29 21:50:54 +08:00
|
|
|
func_copy_cb ()
|
|
|
|
{
|
2004-12-28 21:31:12 +08:00
|
|
|
$opt_debug
|
2005-02-22 23:27:07 +08:00
|
|
|
my_file="$1"
|
|
|
|
my_srcdir="$2"
|
|
|
|
my_destdir="$3"
|
|
|
|
copy_return_status=1
|
|
|
|
|
|
|
|
# Libtool is probably misinstalled if this happens:
|
|
|
|
test -f "$my_srcdir/$my_file" || \
|
|
|
|
{ func_error "\`$my_file' not found in \`$my_srcdir'"; return; }
|
|
|
|
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
case $opt_verbose in
|
|
|
|
false) my_copy_msg="file \`$my_destdir/$my_file'" ;;
|
|
|
|
*) my_copy_msg="file from \`$my_srcdir/$my_file'" ;;
|
|
|
|
esac
|
|
|
|
func_mkdir_p `$ECHO "X$my_destdir/$my_file" | $Xsed -e "$dirname"`
|
2005-02-22 23:27:07 +08:00
|
|
|
|
|
|
|
$RM "$my_destdir/$my_file"
|
|
|
|
if $opt_link && $LN_S "$my_srcdir/$my_file" "$my_destdir/$my_file"; then
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
$opt_quiet || func_echo "linking $my_copy_msg"
|
2005-02-22 23:27:07 +08:00
|
|
|
copy_return_status=0
|
2005-03-11 01:25:29 +08:00
|
|
|
elif { ( cd "$my_srcdir" 2>/dev/null && $TAR chf - "$my_file" 2>/dev/null; ) \
|
2005-04-30 17:30:14 +08:00
|
|
|
| ( umask 0 && cd "$my_destdir" 2>/dev/null && "$TAR" xf - >/dev/null 2>&1; ); } ; then
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
$opt_quiet || func_echo "copying $my_copy_msg"
|
2005-02-22 23:27:07 +08:00
|
|
|
copy_return_status=0
|
|
|
|
elif $CP -p "$my_srcdir/$my_file" "$my_destdir/$my_file"; then
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
$opt_quiet || func_echo "copying $my_copy_msg"
|
2005-02-22 23:27:07 +08:00
|
|
|
copy_return_status=0
|
|
|
|
else
|
|
|
|
func_error "can not copy \`$my_srcdir/$my_file' to \`$my_destdir/'"
|
|
|
|
exit_status=$EXIT_FAILURE
|
|
|
|
fi
|
2004-11-29 21:50:54 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# func_copy_all_files [-r] srcdir destdir [glob_exclude] [copy_cb=func_copy_cb]
|
2004-01-08 18:34:52 +08:00
|
|
|
# For each file in SRCDIR, then try to copy the file to DESTDIR by calling
|
This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone). First, there is
a new feature that allows libraries to preopen modules. This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner. Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders. The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature. If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl. The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):
* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file. Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible. *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored. Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 20:14:48 +08:00
|
|
|
# COPY_CB with the src and dest files. With the `-r' option, recurse into
|
|
|
|
# subdirectories of srcdir too. If GLOB_EXCLUDE is given, exclude any
|
|
|
|
# matching filenames from the copy. If COPY_CB is passed, then the check
|
|
|
|
# for overwriting without opt_force is the callbacks responsibility: This
|
|
|
|
# allows using callbacks like func_serial_update, which perform their own
|
|
|
|
# checks to decide whether to overwrite the dest file.
|
2003-10-07 19:12:16 +08:00
|
|
|
func_copy_all_files ()
|
|
|
|
{
|
2004-12-28 21:31:12 +08:00
|
|
|
$opt_debug
|
This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone). First, there is
a new feature that allows libraries to preopen modules. This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner. Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders. The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature. If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl. The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):
* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file. Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible. *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored. Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 20:14:48 +08:00
|
|
|
my_opt_recurse=false
|
|
|
|
if test "X$1" = X-r; then
|
|
|
|
my_opt_recurse=:
|
|
|
|
shift
|
|
|
|
fi
|
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
my_srcdir="$1"
|
|
|
|
my_destdir="$2"
|
|
|
|
my_glob_exclude="$3"
|
2004-11-29 21:50:54 +08:00
|
|
|
my_copy_cb="${4-func_copy_cb}"
|
1999-01-14 23:07:12 +08:00
|
|
|
|
2004-06-16 23:08:28 +08:00
|
|
|
my_srcfiles=
|
This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone). First, there is
a new feature that allows libraries to preopen modules. This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner. Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders. The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature. If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl. The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):
* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file. Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible. *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored. Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 20:14:48 +08:00
|
|
|
my_basedir="$my_srcdir"
|
|
|
|
my_srcdirs="$my_srcdir"
|
|
|
|
my_save_IFS="$IFS"
|
|
|
|
IFS=:
|
|
|
|
while test -n "$my_srcdirs"; do
|
1999-01-14 23:07:12 +08:00
|
|
|
|
This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone). First, there is
a new feature that allows libraries to preopen modules. This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner. Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders. The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature. If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl. The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):
* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file. Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible. *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored. Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 20:14:48 +08:00
|
|
|
IFS="$my_save_IFS"
|
2004-09-25 00:08:33 +08:00
|
|
|
my_srcdir=`$ECHO "X$my_srcdirs" | $Xsed -e 's,:.*,,g'`
|
|
|
|
my_srcdirs=`$ECHO "X$my_srcdirs" | $Xsed -e 's,:*[[^:]][[^:]]*:*,,'`
|
1997-04-02 02:29:23 +08:00
|
|
|
|
This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone). First, there is
a new feature that allows libraries to preopen modules. This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner. Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders. The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature. If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl. The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):
* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file. Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible. *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored. Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 20:14:48 +08:00
|
|
|
for my_filename in `cd "$my_srcdir" && ls`; do
|
2004-06-16 23:08:28 +08:00
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
# ignore excluded filenames
|
This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone). First, there is
a new feature that allows libraries to preopen modules. This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner. Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders. The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature. If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl. The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):
* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file. Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible. *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored. Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 20:14:48 +08:00
|
|
|
if test -n "$my_glob_exclude"; then
|
2005-11-19 01:37:40 +08:00
|
|
|
my_cont=false
|
|
|
|
eval 'case $my_filename in '$my_glob_exclude') my_cont=: ;; esac'
|
|
|
|
$my_cont && continue
|
This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone). First, there is
a new feature that allows libraries to preopen modules. This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner. Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders. The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature. If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl. The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):
* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file. Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible. *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored. Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 20:14:48 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Add to the appropriate list
|
|
|
|
if test -f "$my_srcdir/$my_filename"; then
|
2004-09-25 00:08:33 +08:00
|
|
|
my_srcfile=`$ECHO "X$my_srcdir/$my_filename" | $Xsed \
|
|
|
|
-e "s,^$my_basedir/*,,"`
|
This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone). First, there is
a new feature that allows libraries to preopen modules. This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner. Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders. The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature. If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl. The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):
* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file. Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible. *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored. Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 20:14:48 +08:00
|
|
|
my_srcfiles="$my_srcfiles${my_srcfiles:+:}$my_srcfile"
|
|
|
|
elif $my_opt_recurse && test -d "$my_srcdir/$my_filename"; then
|
|
|
|
my_srcdirs="$my_srcdirs${my_srcdirs:+:}$my_srcdir/$my_filename"
|
|
|
|
fi
|
|
|
|
|
|
|
|
done
|
2004-06-16 23:08:28 +08:00
|
|
|
done
|
This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone). First, there is
a new feature that allows libraries to preopen modules. This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner. Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders. The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature. If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl. The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):
* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file. Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible. *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored. Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 20:14:48 +08:00
|
|
|
IFS="$my_save_IFS"
|
2004-06-16 23:08:28 +08:00
|
|
|
|
2004-11-29 21:50:54 +08:00
|
|
|
func_copy_some_files "$my_srcfiles" "$my_basedir" \
|
2004-06-16 23:08:28 +08:00
|
|
|
"$my_destdir" "$my_copy_cb"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
# func_copy_some_files srcfile_spec srcdir destdir [copy_cb=func_copy_cb]
|
|
|
|
# Call COPY_CB for each regular file in SRCDIR named by the ':' delimited
|
|
|
|
# names in SRCFILE_SPEC. The odd calling convention is needed to allow
|
|
|
|
# spaces in file and directory names.
|
2004-06-16 23:08:28 +08:00
|
|
|
func_copy_some_files ()
|
|
|
|
{
|
2004-12-28 21:31:12 +08:00
|
|
|
$opt_debug
|
2004-11-29 21:50:54 +08:00
|
|
|
my_srcfile_spec="$1"
|
2005-04-30 17:30:14 +08:00
|
|
|
my_srcdir="$2"
|
2004-06-16 23:08:28 +08:00
|
|
|
my_destdir="$3"
|
2004-11-29 21:50:54 +08:00
|
|
|
my_copy_cb="${4-func_copy_cb}"
|
2004-06-16 23:08:28 +08:00
|
|
|
|
|
|
|
my_save_IFS="$IFS"
|
|
|
|
IFS=:
|
|
|
|
for my_filename in $my_srcfile_spec; do
|
2005-04-30 17:30:14 +08:00
|
|
|
IFS="$my_save_IFS"
|
|
|
|
if test -f "$my_srcdir/$my_filename"; then
|
|
|
|
if test "X$my_copy_cb" = Xfunc_copy_cb; then
|
|
|
|
$opt_force || if test -f "$my_destdir/$my_filename"; then
|
|
|
|
$opt_quiet \
|
|
|
|
|| func_error "\`$my_destdir/$my_filename' exists: use \`--force' to overwrite"
|
|
|
|
continue
|
|
|
|
fi
|
2003-10-07 19:12:16 +08:00
|
|
|
fi
|
2005-04-30 17:30:14 +08:00
|
|
|
else
|
|
|
|
# Not a regular file
|
|
|
|
continue
|
|
|
|
fi
|
2003-10-07 19:12:16 +08:00
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
$my_copy_cb "$my_filename" "$my_srcdir" "$my_destdir"
|
2003-10-07 19:12:16 +08:00
|
|
|
done
|
2004-06-16 23:08:28 +08:00
|
|
|
IFS="$my_save_IFS"
|
2003-10-07 19:12:16 +08:00
|
|
|
}
|
|
|
|
|
2005-12-03 16:49:48 +08:00
|
|
|
# func_fixup_Makefile_inc srcfile srcdir destdir
|
|
|
|
func_fixup_Makefile_inc ()
|
|
|
|
{
|
|
|
|
my_filename="$1"
|
|
|
|
my_srcdir="$2"
|
|
|
|
my_destdir="$3"
|
|
|
|
|
|
|
|
repl=$ltdldir
|
|
|
|
repl_uscore=`$ECHO "X$repl" | $Xsed -e 's,[[/.+-]],_,g'`
|
|
|
|
$RM "$my_destdir/$my_filename" 2>/dev/null
|
|
|
|
$opt_quiet || func_echo "creating file \`$my_destdir/$my_filename'"
|
|
|
|
if $opt_dry_run; then :;
|
|
|
|
else
|
|
|
|
$SED "\
|
|
|
|
s,libltdl_,@repl_uscore@_,
|
|
|
|
s,libltdl/,@repl@/,
|
|
|
|
s,: libltdl/,: @repl@/,
|
|
|
|
s,\\\$(libltdl_,\$(@repl_uscore@_,
|
|
|
|
s,)/libltdl ,)/@repl@ ,
|
|
|
|
s,@repl_uscore@,${repl_uscore},g
|
|
|
|
s,@repl@,${repl},g
|
|
|
|
" < "$my_srcdir/$my_filename" > "$my_destdir/$my_filename" ||
|
|
|
|
func_fatal_error "cannot create $my_destdir/$my_filename"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
# func_scan_files
|
2004-01-07 04:25:53 +08:00
|
|
|
# Scan configure.(ac|in) and aclocal.m4 (if present) for use of libltdl
|
|
|
|
# and libtool. Possibly running some of these tools if necessary.
|
|
|
|
# Libtoolize affects the contents of aclocal.m4, and should be run before
|
|
|
|
# aclocal, so we can't use configure --trace which relies on a consistent
|
|
|
|
# configure.(ac|in) and aclocal.m4.
|
2003-10-07 19:12:16 +08:00
|
|
|
func_scan_files ()
|
|
|
|
{
|
2004-12-28 21:31:12 +08:00
|
|
|
$opt_debug
|
2003-10-07 19:12:16 +08:00
|
|
|
# Prefer configure.ac to configure.in
|
|
|
|
test -f configure.ac && configure_ac=configure.ac
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
test -f "$configure_ac" || configure_ac=
|
2003-10-07 19:12:16 +08:00
|
|
|
|
|
|
|
# Set local variables to reflect contents of configure.ac
|
|
|
|
my_sed_scan_configure_ac='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
/AC_INIT/ { s,^.*$,seen_autoconf=:,; p; };
|
2003-10-07 19:12:16 +08:00
|
|
|
d'
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
test -z "$configure_ac" \
|
|
|
|
|| eval `$SED "$my_sed_scan_configure_ac" "$configure_ac"`
|
2003-10-07 19:12:16 +08:00
|
|
|
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
$seen_autoconf || {
|
|
|
|
my_configure_ac=
|
|
|
|
test -n "$configure_ac" && my_configure_ac="$configure_ac: "
|
|
|
|
func_verbose "${my_configure_ac}not using Autoconf"
|
2005-10-03 23:45:47 +08:00
|
|
|
|
|
|
|
# Make sure ltdldir is set, even though we return early here:
|
|
|
|
test -n "$ltdldir" || ltdldir=libltdl
|
2003-10-07 19:12:16 +08:00
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
# ---------------------------------------------------- #
|
|
|
|
# Probe macro usage in configure.ac and/or aclocal.m4. #
|
|
|
|
# ---------------------------------------------------- #
|
|
|
|
|
|
|
|
my_sed_traces='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
|
2005-09-01 19:13:23 +08:00
|
|
|
s,^.*AC_REQUIRE(.*$,,; s,^.*m4[]_require(.*$,,; s,^.*m4[]_define(.*$,,;
|
|
|
|
s,^.*A[[CU]]_DEFUN(.*$,,; s,^.*m4[]_defun(.*$,,;
|
|
|
|
/AC_CONFIG_AUX_DIR(/ {
|
2004-09-23 09:16:41 +08:00
|
|
|
s,^.*AC_CONFIG_AUX_DIR([[[ ]*\([^])]]*\).*$,auxdir=\1,; p;
|
2003-10-07 19:12:16 +08:00
|
|
|
};
|
2005-09-01 19:13:23 +08:00
|
|
|
/AC_CONFIG_MACRO_DIR(/ {
|
2005-09-27 21:09:20 +08:00
|
|
|
s,^.*AC_CONFIG_MACRO_DIR([[[ ]*\([^])]]*\).*$,macrodir=\1,; p;
|
2003-10-07 19:12:16 +08:00
|
|
|
};
|
2005-10-03 23:45:47 +08:00
|
|
|
/_LT_CONFIG_LTDL_DIR(/d;
|
|
|
|
/LT_CONFIG_LTDL_DIR(/ {
|
2005-10-26 18:42:05 +08:00
|
|
|
s/^.*LT_CONFIG_LTDL_DIR([[[ ]*\([^]),]*\)[^,]]*/ac_ltdldir=\1%%/;
|
|
|
|
s/%%[[[, ]*\([^])]]*\).*$/ ac_ltdl_mode=\1%%/;
|
|
|
|
s/%%.*$//; p;
|
2005-10-03 23:45:47 +08:00
|
|
|
};
|
2004-09-23 09:16:41 +08:00
|
|
|
/A[[CM]]_PROG_LIBTOOL/ { s,^.*$,seen_libtool=:,; p; };
|
2004-03-30 17:38:29 +08:00
|
|
|
/LT_INIT/ { s,^.*$,seen_libtool=:,; p; };
|
The Grand Renaming. In preparation for libtool-2.0, move all of
the many and varied m4 symbols accumulated by libtool over the
years, considering also that modern autoconf can detect unexpanded
macros even without AC in the macro name:
* bootstrap: Remove libltdl/config.h from previous releases.
* m4/libtool.m4, m4/ltdl.m4, doc/libtool.texi: Basically, run a
giant sed transformation like this:
s,AC_LIB_LTDL,LTDL_INIT,g
s,AC_LIBLTDL_CONVENIENCE,LTDL_CONVENIENCE,g
s,AC_LIBLTDL_INSTALLABLE,LTDL_INSTALLABLE,g
s,AC_WITH_LTDL,LT_WITH_LTDL,g
s,AC_LTDL_ENABLE_INSTALL,_LT_ENABLE_INSTALL,g
s,AC_DEPLIBS_CHECK_METHOD,_LT_CHECK_MAGIC_METHOD,g
s,AC_LIBTOOL_OBJDIR,_LT_CHECK_OBJDIR,g
s,AC_LTDL_OBJDIR,_LT_CHECK_OBJDIR,g
s,AC_LTDL_DLPREOPEN,_LT_CHECK_DLPREOPEN,g
s,AC_LIBTOOL_SYS_MAX_CMD_LEN,LT_CMD_MAX_LEN,g
s,AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE,_LT_CMD_GLOBAL_SYMBOLS,g
s,AC_LIBTOOL_SYS_OLD_ARCHIVE,_LT_CMD_OLD_ARCHIVE,g
s,AC_PROG_LD_RELOAD_FLAG,_LT_CMD_RELOAD,g
s,AC_LIBTOOL_SYS_LIB_STRIP,_LT_CMD_STRIPLIB,g
s,AC_CHECK_LIBM,LT_LIB_M,g
s,AC_LTDL_DLLIB,LT_LIB_DLLOAD,g
s,AC_LIBTOOL_COMPILER_OPTION,_LT_COMPILER_OPTION,g
s,AC_LIBTOOL_PROG_CC_C_O,_LT_COMPILER_C_O,g
s,AC_LIBTOOL_PROG_COMPILER_NO_RTTI,_LT_COMPILER_NO_RTTI,g
s,AC_LIBTOOL_PROG_COMPILER_PIC,_LT_COMPILER_PIC,g
s,AC_LIBTOOL_SYS_HARD_LINK_LOCKS,_LT_COMPILER_FILE_LOCKS,g
s,AC_LTDL_DLSYM_USCORE,LT_FUNC_DLSYM_USCORE,g
s,AC_LIBTOOL_LINKER_OPTION,_LT_LINKER_OPTION,g
s,AC_LIBTOOL_PROG_LD_SHLIBS,_LT_LINKER_SHLIBS,g
s,AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH,_LT_LINKER_HARDCODE_LIBPATH,g
s,AC_PATH_MAGIC,_LT_PATH_MAGIC,g
s,AC_PATH_TOOL_PREFIX,_LT_PATH_TOOL_PREFIX,g
s,AC_PROG_LD,LT_PATH_LD,g
s,AC_PROG_LD_GNU,_LT_PATH_LD_GNU,g
s,AC_PROG_NM,LT_PATH_NM,g
s,AC_LTDL_SYS_DLOPEN_DEPLIBS,LT_SYS_DLOPEN_DEPLIBS,g
s,AC_LIBTOOL_DLOPEN_SELF,LT_SYS_DLOPEN_SELF,g
s,AC_LIBTOOL_POSTDEP_PREDEP,_LT_SYS_HIDDEN_LIBDEPS,g
s,AC_LTDL_SYSSEARCHPATH,LT_SYS_DLSEARCH_PATH,g
s,AC_LTDL_SHLIBEXT,LT_SYS_MODULE_EXT,g
s,AC_LTDL_SHLIBPATH,LT_SYS_MODULE_PATH,g
s,AC_LTDL_SYMBOL_USCORE,LT_SYS_SYMBOL_USCORE,g
s,AC_LIBTOOL_SYS_DYNAMIC_LINKER,_LT_SYS_DYNAMIC_LINKER,g
s,_LT_AC_TAGVAR,_LT_TAGVAR,g
s,_LT_AC_SYS_COMPILER,_LT_TAG_COMPILER,g
s,_LT_AC_PROG_ECHO_BACKSLASH,_LT_PROG_ECHO_BACKSLASH,g
s,_LT_AC_SYS_LIBPATH_AIX,_LT_SYS_MODULE_PATH_AIX,g
s,_LT_AC_SHELL_INIT,_LT_SHELL_INIT,g
s,_LT_AC_LOCK,_LT_ENABLE_LOCK,g
s,_LT_AC_CHECK_DLFCN,_LT_HEADER_DLFCN,g
s,_LT_AC_TRY_DLOPEN_SELF,_LT_TRY_DLOPEN_SELF,g
s,LT_AC_PROG_EGREP,_LT_DECL_EGREP,g
s,LT_AC_PROG_SED,_LT_DECL_SED,g
* doc/libtool.texi (Autoconf macros): Document exported macros.
* libtoolize.in: Compare ltdl.m4 serial numbers for LTDL_INIT
instead of newly obsoleted AC_LIB_LTDL.
(func_scan_files): Also set seen_ltdl for LTDL_INIT and
LT_WITH_LTDL.
* libltdl/ltdl.c (lt_dlforeachfile): LT_SYS_LIBSEARCH_PATH is not
an environment variable, it is an actual path.
Reported by Noah Mish <noah@cs.caltech.edu>
2004-08-23 06:02:07 +08:00
|
|
|
/LTDL_INIT/ { s,^.*$,seen_ltdl=:,; p; };
|
|
|
|
/LT_WITH_LTDL/ { s,^.*$,seen_ltdl=:,; p; };
|
2003-10-07 19:12:16 +08:00
|
|
|
/AC_LIB_LTDL/ { s,^.*$,seen_ltdl=:,; p; };
|
2004-06-17 16:03:49 +08:00
|
|
|
/AC_WITH_LTDL/ { s,^.*$,seen_ltdl=:,; p; };
|
2005-09-01 19:13:23 +08:00
|
|
|
d'
|
2004-04-14 18:24:25 +08:00
|
|
|
eval `cat aclocal.m4 "$configure_ac" 2>/dev/null | $SED "$my_sed_traces"`
|
2003-10-07 19:12:16 +08:00
|
|
|
|
|
|
|
|
2005-10-03 23:45:47 +08:00
|
|
|
# ----------------- #
|
|
|
|
# Validate ltdldir. #
|
|
|
|
# ----------------- #
|
|
|
|
|
|
|
|
ac_ltdldir=`$ECHO "X$ac_ltdldir" | $Xsed -e 's,/*$,,'`
|
|
|
|
|
2005-10-26 18:42:05 +08:00
|
|
|
# If $configure_ac contains AC_CONFIG_LTDL_DIR, check that its
|
|
|
|
# arguments were not given in terms of a shell variable!
|
|
|
|
case "$ac_ltdldir$ac_ltdl_mode" in
|
2005-10-03 23:45:47 +08:00
|
|
|
*\$*)
|
|
|
|
func_fatal_error "can not handle variables in LT_CONFIG_LTDL_DIR"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
# If neither --ltdl nor LT_CONFIG_LTDL_DIR are specified, default to
|
|
|
|
# `libltdl'. If both are specified, they must be the same. Otherwise,
|
|
|
|
# take the one that is given! (If LT_CONFIG_LTDL_DIR is not specified
|
|
|
|
# we suggest adding it later in this code.)
|
|
|
|
case x$ac_ltdldir,x$ltdldir in
|
|
|
|
x,x) ltdldir=libltdl ;;
|
|
|
|
x*,x) ltdldir=$ac_ltdldir ;;
|
|
|
|
x,x*) ltdldir=$ltdldir ;;
|
|
|
|
*)
|
|
|
|
test x"$ac_ltdldir" = x"$ltdldir" || \
|
|
|
|
func_fatal_error "--ltdl='$ltdldir' does not match LT_CONFIG_LTDL_DIR($ac_ltdldir)"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
2005-10-26 18:42:05 +08:00
|
|
|
# ------------------- #
|
|
|
|
# Validate ltdl_mode. #
|
|
|
|
# ------------------- #
|
|
|
|
|
|
|
|
test -n "$ac_ltdl_mode" && seen_ltdl=:
|
|
|
|
|
|
|
|
# If neither --ltdl nor LT_CONFIG_LTDL_DIR are specified, default to
|
|
|
|
# `subproject'. If both are specified, they must be the same. Otherwise,
|
|
|
|
# take the one that is given!
|
|
|
|
case x$ac_ltdl_mode,x$ltdl_mode in
|
|
|
|
x,x) ltdl_mode=subproject ;;
|
|
|
|
x*,x) ltdl_mode=$ac_ltdl_mode ;;
|
|
|
|
x,x*) ltdl_mode=$ltdl_mode ;;
|
|
|
|
*)
|
|
|
|
test x"$ac_ltdl_mode" = x"$ltdl_mode" || \
|
|
|
|
func_fatal_error "--$ltdl_mode does not match LT_CONFIG_LTDL_DIR($ac_ltdldir, $ac_ltdl_mode)"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
# ---------------- #
|
|
|
|
# Validate auxdir. #
|
|
|
|
# ---------------- #
|
|
|
|
|
|
|
|
if test -n "$auxdir"; then
|
|
|
|
# If $configure_ac contains AC_CONFIG_AUX_DIR, check that it was
|
|
|
|
# not given in terms of a shell variable!
|
|
|
|
case "$auxdir" in
|
|
|
|
*\$*)
|
|
|
|
func_fatal_error "can not handle variables in AC_CONFIG_AUX_DIR"
|
|
|
|
;;
|
|
|
|
*);;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
# Try to discover auxdir the same way it is discovered by configure.
|
|
|
|
# Note that we default to the current directory.
|
|
|
|
for dir in . .. ../..; do
|
Refactor all the test case common code into shell functions in
tests/defs, and move the various demo directories out of
$top_srcdir, and into tests too. The refactoring showed up a
number of inconsistencies and latent bugs, as well as fixing (I
think!!) the long-standing annoyance with some of the tests giving
spurious failures intermittently. While I was here, emacs kindly
removed a lot of bogus whitespace and added copyright notices for
us:
* cdemo, demo, depdemo, f77demo, mdemo, mdemo2, pdemo, tagdemo:
Moved from here...
* tests/cdemo, tests/demo, tests/depdemo, tests/f77demo,
tests/mdemo, tests/mdemo2, tests/pdemo, tests/tagdemo: ...to
here.
* tests/defs: Factor much common functionality from the test
scripts into shell functions. Added a copyright notice.
* tests/assign.test, tests/cdemo-conf.test, tests/cdemo-exec.test,
tests/cdemo-make.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/demo-conf.test,
tests/demo-deplibs.test, tests/demo-exec.test,
tests/demo-inst.test, tests/demo-make.test,
tests/demo-nofast.test, tests/demo-nopic.test,
tests/demo-pic.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-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-exec.test,
tests/mdemo-inst.test, tests/mdemo-make.test,
tests/mdemo-shared.test, tests/mdemo-static.test,
tests/mdemo-unst.test, tests/mdemo2-conf.test,
tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test,
tests/pdemo-conf.test, tests/pdemo-exec.test,
tests/pdemo-inst.test, tests/pdemo-make.test,
tests/pdemo-unst.test, tests/quote.test, tests/sh.test,
tests/suffix.test, tests/tagdemo-conf.test,
tests/tagdemo-exec.test, tests/tagdemo-make.test,
tests/tagdemo-shared.test, tests/tagdemo-static.test: Refactored
to use new functions in tests/defs. Added a copyright notice.
* tests/hardcode.test, noinst-link.test,
tests/relink.test, tests/relink.test,
tests/mdryrun.test: Ditto. Moved from here...
* tests/demo-hardcode.test, demo-noinst-link.test,
tests/demo-relink.test, tests/depdemo-relink.test,
tests/mdemo-dryrun.test: ...to here respectively.
* Makefile.am: Added a copyright notice.
* tests/sh.test: Check libtoolize.in for non-portabilities too.
* libtoolize.in: Fix non-portabilities found by tests/sh.test.
2003-10-15 05:45:03 +08:00
|
|
|
if test -f "$dir/install-sh"; then
|
2003-10-07 19:12:16 +08:00
|
|
|
auxdir=$dir
|
|
|
|
break
|
Refactor all the test case common code into shell functions in
tests/defs, and move the various demo directories out of
$top_srcdir, and into tests too. The refactoring showed up a
number of inconsistencies and latent bugs, as well as fixing (I
think!!) the long-standing annoyance with some of the tests giving
spurious failures intermittently. While I was here, emacs kindly
removed a lot of bogus whitespace and added copyright notices for
us:
* cdemo, demo, depdemo, f77demo, mdemo, mdemo2, pdemo, tagdemo:
Moved from here...
* tests/cdemo, tests/demo, tests/depdemo, tests/f77demo,
tests/mdemo, tests/mdemo2, tests/pdemo, tests/tagdemo: ...to
here.
* tests/defs: Factor much common functionality from the test
scripts into shell functions. Added a copyright notice.
* tests/assign.test, tests/cdemo-conf.test, tests/cdemo-exec.test,
tests/cdemo-make.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/demo-conf.test,
tests/demo-deplibs.test, tests/demo-exec.test,
tests/demo-inst.test, tests/demo-make.test,
tests/demo-nofast.test, tests/demo-nopic.test,
tests/demo-pic.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-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-exec.test,
tests/mdemo-inst.test, tests/mdemo-make.test,
tests/mdemo-shared.test, tests/mdemo-static.test,
tests/mdemo-unst.test, tests/mdemo2-conf.test,
tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test,
tests/pdemo-conf.test, tests/pdemo-exec.test,
tests/pdemo-inst.test, tests/pdemo-make.test,
tests/pdemo-unst.test, tests/quote.test, tests/sh.test,
tests/suffix.test, tests/tagdemo-conf.test,
tests/tagdemo-exec.test, tests/tagdemo-make.test,
tests/tagdemo-shared.test, tests/tagdemo-static.test: Refactored
to use new functions in tests/defs. Added a copyright notice.
* tests/hardcode.test, noinst-link.test,
tests/relink.test, tests/relink.test,
tests/mdryrun.test: Ditto. Moved from here...
* tests/demo-hardcode.test, demo-noinst-link.test,
tests/demo-relink.test, tests/depdemo-relink.test,
tests/mdemo-dryrun.test: ...to here respectively.
* Makefile.am: Added a copyright notice.
* tests/sh.test: Check libtoolize.in for non-portabilities too.
* libtoolize.in: Fix non-portabilities found by tests/sh.test.
2003-10-15 05:45:03 +08:00
|
|
|
elif test -f "$dir/install.sh"; then
|
|
|
|
auxdir="$dir"
|
2003-10-07 19:12:16 +08:00
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
1997-04-02 03:53:01 +08:00
|
|
|
fi
|
|
|
|
|
2003-11-07 22:04:16 +08:00
|
|
|
# Just use the current directory if all else fails.
|
|
|
|
test -n "$auxdir" || auxdir=.
|
|
|
|
|
1997-04-02 02:29:23 +08:00
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
# ------------------------------ #
|
|
|
|
# Find local m4 macro directory. #
|
|
|
|
# ------------------------------ #
|
|
|
|
|
2003-10-08 22:09:02 +08:00
|
|
|
# If AC_CONFIG_MACRO_DIR turned nothing up, we hunt for ACLOCAL_AMFLAGS
|
2003-10-07 19:12:16 +08:00
|
|
|
# in `Makefile.am' for a `-I' argument.
|
|
|
|
|
2004-09-23 09:16:41 +08:00
|
|
|
my_sed_aclocal_flags='/^[[ ]]*ACLOCAL_[[A-Z_]]*FLAGS[[ ]]*=/ {
|
2005-04-20 00:40:52 +08:00
|
|
|
s,^[[^=]]*=[[ ]]*\(.*\), \1,; q; };
|
|
|
|
d'
|
2005-09-27 21:09:20 +08:00
|
|
|
m4dir="$macrodir"
|
2003-10-07 19:12:16 +08:00
|
|
|
if test ! -n "$m4dir" && test -f Makefile.am; then
|
|
|
|
my_m4dir_is_next=false
|
2004-02-12 21:18:52 +08:00
|
|
|
for arg in `$SED "$my_sed_aclocal_flags" Makefile.am`; do
|
2003-10-07 19:12:16 +08:00
|
|
|
if $my_m4dir_is_next; then
|
|
|
|
m4dir="$arg"
|
|
|
|
break
|
|
|
|
else
|
|
|
|
if test "X$arg" = "X-I"; then
|
|
|
|
my_m4dir_is_next=:
|
|
|
|
else
|
|
|
|
my_m4dir_is_next=false
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
}
|
1997-04-02 03:18:28 +08:00
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
# func_included_files searchfile
|
|
|
|
# Output INCLUDEFILE if SEARCHFILE m4_includes it, else output SEARCHFILE.
|
|
|
|
func_included_files ()
|
|
|
|
{
|
2004-12-28 21:31:12 +08:00
|
|
|
$opt_debug
|
2003-10-07 19:12:16 +08:00
|
|
|
my_searchfile="$1"
|
1997-04-02 02:29:23 +08:00
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
my_include_regex=
|
|
|
|
my_sed_include='
|
2004-09-23 09:16:41 +08:00
|
|
|
/^[m4]_include(\[[.*\]])$/ { s,^[m4]_include(\[[\(.*\)\]])$,\1,; p; };
|
2003-10-07 19:12:16 +08:00
|
|
|
d'
|
|
|
|
|
2004-09-25 00:08:33 +08:00
|
|
|
if test -f "$my_searchfile"; then
|
|
|
|
$ECHO "X$my_searchfile" | $Xsed
|
2003-10-07 19:12:16 +08:00
|
|
|
|
2005-09-30 00:36:17 +08:00
|
|
|
# Only recurse when we don't care if all the variables we use get
|
|
|
|
# trashed, since they are in global scope.
|
|
|
|
for my_filename in `$SED "$my_sed_include" "$my_searchfile"`; do
|
|
|
|
func_included_files $my_filename
|
|
|
|
done
|
|
|
|
fi
|
2003-10-07 19:12:16 +08:00
|
|
|
}
|
|
|
|
|
2004-11-29 21:50:54 +08:00
|
|
|
|
2004-01-08 18:34:52 +08:00
|
|
|
# func_serial filename [macro_regex]
|
2003-10-07 19:12:16 +08:00
|
|
|
# Output the value of the serial number comment in FILENAME, where the
|
2004-01-08 18:34:52 +08:00
|
|
|
# comment line must also match MACRO_REGEX, if given.
|
2003-10-07 19:12:16 +08:00
|
|
|
func_serial ()
|
|
|
|
{
|
2004-12-28 21:31:12 +08:00
|
|
|
$opt_debug
|
2004-01-08 18:34:52 +08:00
|
|
|
my_filename="$1"
|
|
|
|
my_macro_regex="$2"
|
2005-02-28 05:19:51 +08:00
|
|
|
my_sed_serial=['/^# serial [1-9][0-9.]*[ ]*'"$my_macro_regex"'[ ]*$/ {
|
|
|
|
s,^# serial \([1-9][0-9.]*\).*$,\1,; q;
|
2005-04-20 00:40:52 +08:00
|
|
|
};
|
|
|
|
d']
|
2003-10-07 19:12:16 +08:00
|
|
|
|
|
|
|
# Search FILENAME and all the files it m4_includes for a serial number
|
|
|
|
# in the file that AC_DEFUNs MACRO_REGEX.
|
|
|
|
my_serial=
|
|
|
|
for my_file in `func_included_files "$my_filename"`; do
|
2004-03-30 17:38:29 +08:00
|
|
|
if test -z "$my_macro_regex" ||
|
2005-11-01 22:28:20 +08:00
|
|
|
test "$my_filename" = aclocal.m4 ||
|
|
|
|
test "$my_macro_regex" = `echo "$my_filename" | $SED "$basename"` ||
|
2004-09-23 09:16:41 +08:00
|
|
|
func_grep '^AC_DEFUN(\@<:@'"$my_macro_regex" "$my_file"
|
2004-03-30 17:38:29 +08:00
|
|
|
then
|
2004-02-12 21:18:52 +08:00
|
|
|
my_serial=`$SED -e "$my_sed_serial" "$my_file"`
|
2003-10-07 19:12:16 +08:00
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
# If the file has no serial number, we assume it's ancient.
|
|
|
|
test -n "$my_serial" || my_serial=0
|
|
|
|
|
2004-09-16 22:57:02 +08:00
|
|
|
$ECHO $my_serial
|
2003-10-07 19:12:16 +08:00
|
|
|
}
|
|
|
|
|
2005-02-28 05:19:51 +08:00
|
|
|
|
|
|
|
# func_serial_max serial1 serial2
|
|
|
|
# Compare (possibly multi-part, '.' delimited) serial numbers, and
|
|
|
|
# return the largest in $func_serial_max_result. If they are the
|
|
|
|
# same, func_serial_max_result will be empty.
|
|
|
|
func_serial_max ()
|
|
|
|
{
|
|
|
|
$opt_debug
|
|
|
|
my_serial1="$1"
|
|
|
|
my_serial2="$2"
|
|
|
|
|
|
|
|
my_sed_dot='s/\..*$//g'
|
|
|
|
my_sed_rest='s/^[[0-9]][[1-9]]*\.*//'
|
|
|
|
my_sed_digits='s/[[^0-9.]]//g'
|
|
|
|
|
|
|
|
# Incase they turn out to be the same, we'll set it to empty
|
|
|
|
func_serial_max_result=
|
|
|
|
|
|
|
|
test "X$1$2" = X`$ECHO "X$1$2" | $Xsed -e "$my_sed_digits"` || {
|
|
|
|
func_error "serial numbers \`$1' or \`$2' contain non-digit chars"
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
while test -n "$my_serial1$my_serial2"; do
|
|
|
|
my_serial1_part=`$ECHO "X$my_serial1" | $Xsed -e "$my_sed_dot"`
|
|
|
|
my_serial2_part=`$ECHO "X$my_serial2" | $Xsed -e "$my_sed_dot"`
|
|
|
|
|
|
|
|
test -z "$my_serial1_part$my_serial2_part" \
|
|
|
|
&& break
|
|
|
|
|
|
|
|
test -z "$my_serial1_part" \
|
|
|
|
&& { func_serial_max_result="$2"; break; }
|
|
|
|
|
|
|
|
test -z "$my_serial2_part" \
|
|
|
|
&& { func_serial_max_result="$1"; break; }
|
|
|
|
|
|
|
|
test "$my_serial1_part" -gt "$my_serial2_part" \
|
|
|
|
&& { func_serial_max_result="$1"; break; }
|
|
|
|
|
|
|
|
test "$my_serial2_part" -gt "$my_serial1_part" \
|
|
|
|
&& { func_serial_max_result="$2"; break; }
|
|
|
|
|
|
|
|
my_serial1=`$ECHO "X$my_serial1" | $Xsed -e "$my_sed_rest"`
|
|
|
|
my_serial2=`$ECHO "X$my_serial2" | $Xsed -e "$my_sed_rest"`
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# func_serial_update_check srcfile src_serial destfile dest_serial
|
|
|
|
# Unless SRC_SERIAL is newer than DEST_SERIAL set $func_serial_update_check
|
|
|
|
# to 'false'.
|
|
|
|
func_serial_update_check ()
|
|
|
|
{
|
|
|
|
$opt_debug
|
|
|
|
my_srcfile="$1"
|
|
|
|
my_src_serial="$2"
|
|
|
|
my_destfile="$3"
|
|
|
|
my_dest_serial="$4"
|
|
|
|
my_update_p=:
|
|
|
|
|
|
|
|
if test -f "$my_destfile"; then
|
|
|
|
test "X$my_src_serial" = "X0" && {
|
|
|
|
func_error "warning: no serial number on \`$my_srcfile', not copying."
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
# Determine whether the destination has an older serial.
|
|
|
|
func_serial_max "$my_src_serial" "$my_dest_serial"
|
|
|
|
test "X$my_src_serial" = "X$func_serial_max_result" || my_update_p=false
|
|
|
|
|
|
|
|
test "X$my_src_serial" = "X$func_serial_max_result" \
|
|
|
|
&& func_verbose "\`$my_srcfile' is serial $my_src_serial, greater than $my_dest_serial in \`$my_destfile'"
|
|
|
|
|
|
|
|
if test "X$my_dest_serial" = "X$func_serial_max_result"; then
|
|
|
|
func_verbose "\`$my_srcfile' is serial $my_src_serial, less than $my_dest_serial in \`$my_destfile'"
|
|
|
|
$opt_force \
|
|
|
|
|| func_error "\`$my_destfile' is newer: use \`--force' to overwrite"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
func_serial_update_check_result="$my_update_p"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-04-01 20:23:55 +08:00
|
|
|
# func_serial_update filename srcdir destdir [macro_regex] [old_macro_regex]
|
|
|
|
# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME
|
|
|
|
# has a newer serial number, or DESTFILE does not yet exist, or the user
|
2004-11-29 21:50:54 +08:00
|
|
|
# specified `--force' at the command line. If given, MACRO_REGEX or
|
|
|
|
# OLD_MACRO_REGEX must match any text after "# serial N" in both files.
|
2003-10-07 19:12:16 +08:00
|
|
|
func_serial_update ()
|
|
|
|
{
|
2004-12-28 21:31:12 +08:00
|
|
|
$opt_debug
|
2004-11-29 21:50:54 +08:00
|
|
|
my_filename="$1"
|
2005-04-01 20:23:55 +08:00
|
|
|
my_srcdir="$2"
|
2004-11-29 21:50:54 +08:00
|
|
|
my_destdir="$3"
|
|
|
|
my_macro_regex="$4"
|
|
|
|
my_old_macro_regex="$5"
|
2003-10-07 19:12:16 +08:00
|
|
|
|
2005-04-05 01:30:46 +08:00
|
|
|
my_serial_update_p=:
|
2003-10-07 19:12:16 +08:00
|
|
|
my_return_status=1
|
2005-04-01 20:23:55 +08:00
|
|
|
my_srcfile="$my_srcdir/$my_filename"
|
2004-11-29 21:50:54 +08:00
|
|
|
my_destfile="$my_destdir/$my_filename"
|
|
|
|
|
2005-04-01 20:23:55 +08:00
|
|
|
test -f "$my_srcfile" || {
|
|
|
|
func_error "\`$my_srcfile' does not exist."
|
|
|
|
return
|
|
|
|
}
|
2003-10-07 19:12:16 +08:00
|
|
|
|
|
|
|
if test -f "$my_destfile"; then
|
2004-01-08 18:34:52 +08:00
|
|
|
my_src_serial=`func_serial "$my_srcfile" "$my_macro_regex"`
|
2005-04-04 22:03:25 +08:00
|
|
|
my_dest_serial=`func_serial "$my_destfile" "$my_macro_regex"`
|
|
|
|
|
2004-03-29 20:43:37 +08:00
|
|
|
# Strictly, this libtoolize ought not to have to deal with ancient
|
|
|
|
# serial formats, but we accept them here to be complete:
|
2005-02-28 05:19:51 +08:00
|
|
|
test "X$my_src_serial" = "X0" &&
|
2004-03-29 20:43:37 +08:00
|
|
|
my_src_serial=`func_serial "$my_srcfile" "$my_old_macro_regex"`
|
|
|
|
|
2005-02-28 05:19:51 +08:00
|
|
|
test "X$my_dest_serial" = "X0" &&
|
2004-03-29 20:43:37 +08:00
|
|
|
my_dest_serial=`func_serial "$my_destfile" "$my_old_macro_regex"`
|
2003-10-07 19:12:16 +08:00
|
|
|
|
2005-02-28 05:19:51 +08:00
|
|
|
func_serial_update_check \
|
|
|
|
"$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial"
|
2005-04-05 01:30:46 +08:00
|
|
|
my_serial_update_p="$func_serial_update_check_result"
|
1997-04-02 02:29:23 +08:00
|
|
|
fi
|
1999-12-16 19:40:16 +08:00
|
|
|
|
2005-04-05 01:30:46 +08:00
|
|
|
if $my_serial_update_p || $opt_force; then
|
2003-10-07 19:12:16 +08:00
|
|
|
func_copy "$my_srcfile" "$my_destfile"
|
|
|
|
my_return_status=$?
|
2005-02-28 05:19:51 +08:00
|
|
|
elif test "X$my_dest_serial" = "X$my_src_serial"; then
|
2004-02-12 21:18:52 +08:00
|
|
|
$opt_quiet \
|
2003-10-07 19:12:16 +08:00
|
|
|
|| func_echo "\`$my_destfile' is already up to date."
|
1999-12-16 19:40:16 +08:00
|
|
|
fi
|
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
# Do this after the copy for hand maintained `aclocal.m4', incase
|
|
|
|
# it has `m4_include([DESTFILE])', so the copy effectively already
|
|
|
|
# updated `aclocal.m4'.
|
2005-10-26 18:36:31 +08:00
|
|
|
my_included_files=`func_included_files aclocal.m4`
|
2005-11-01 22:28:20 +08:00
|
|
|
case `echo " $my_included_files " | $NL2SP` in
|
|
|
|
|
|
|
|
# Skip included files:
|
2005-10-26 18:36:31 +08:00
|
|
|
*" $my_destfile "*) ;;
|
2005-11-01 22:28:20 +08:00
|
|
|
|
|
|
|
# Otherwise compare to aclocal.m4 serial number (func_serial
|
|
|
|
# returns 0 for older macro serial numbers before we provided
|
|
|
|
# serial tags, so the update message will be correctly given
|
|
|
|
# if aclocal.m4 contains an untagged --i.e older-- macro file):
|
2005-10-26 18:36:31 +08:00
|
|
|
*)
|
|
|
|
if test -f aclocal.m4; then
|
|
|
|
func_serial_max \
|
|
|
|
"$my_src_serial" `func_serial aclocal.m4 "$my_macro_regex"`
|
|
|
|
test "X$my_src_serial" = "X$func_serial_max_result" \
|
|
|
|
&& func_echo "You should add the contents of \`$my_destfile' to \`aclocal.m4'."
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
2003-10-07 19:12:16 +08:00
|
|
|
return $my_return_status
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-04-01 20:27:56 +08:00
|
|
|
# func_keyword_update filename srcdir destdir sed_script
|
2005-04-01 20:23:55 +08:00
|
|
|
# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME
|
2005-04-01 20:27:56 +08:00
|
|
|
# has a newer revision according to the serial number extracted by
|
|
|
|
# SED_SCRIPT, or DESTFILE does not yet exist, or the user specified
|
|
|
|
# `--force' at the command line.
|
|
|
|
func_keyword_update ()
|
2003-10-07 19:12:16 +08:00
|
|
|
{
|
2004-12-28 21:31:12 +08:00
|
|
|
$opt_debug
|
2004-11-29 21:50:54 +08:00
|
|
|
my_filename="$1"
|
2005-04-01 20:23:55 +08:00
|
|
|
my_srcdir="$2"
|
2004-11-29 21:50:54 +08:00
|
|
|
my_destdir="$3"
|
2005-04-01 20:27:56 +08:00
|
|
|
my_sed_script="$4"
|
2004-11-29 21:50:54 +08:00
|
|
|
|
2005-04-01 20:23:55 +08:00
|
|
|
my_srcfile="$my_srcdir/$my_filename"
|
2004-11-29 21:50:54 +08:00
|
|
|
my_destfile="$my_destdir/$my_filename"
|
2003-10-07 19:12:16 +08:00
|
|
|
|
2005-04-01 20:27:56 +08:00
|
|
|
my_keyword_update_p=:
|
2004-11-29 21:50:54 +08:00
|
|
|
|
2005-02-28 05:19:51 +08:00
|
|
|
test -f "$my_srcfile" || {
|
|
|
|
func_error "\`$my_srcfile' does not exist."
|
|
|
|
return
|
|
|
|
}
|
2003-10-07 19:12:16 +08:00
|
|
|
|
2005-02-28 05:19:51 +08:00
|
|
|
if test -f "$my_destfile"; then
|
2005-04-01 20:27:56 +08:00
|
|
|
my_src_serial=`$SED -e "$my_sed_script" "$my_srcfile"`
|
2005-02-28 05:19:51 +08:00
|
|
|
test -z "$my_src_serial" && {
|
|
|
|
func_error "warning: no serial number in \`$my_srcfile', not copying."
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2005-04-01 20:27:56 +08:00
|
|
|
my_dest_serial=`$SED -e "$my_sed_script" "$my_destfile"`
|
2005-02-28 05:19:51 +08:00
|
|
|
test -n "$my_dest_serial" || my_dest_serial=0
|
|
|
|
|
|
|
|
func_serial_update_check \
|
|
|
|
"$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial"
|
2005-04-01 20:27:56 +08:00
|
|
|
my_keyword_update_p="$func_serial_update_check_result"
|
2005-02-28 05:19:51 +08:00
|
|
|
fi
|
|
|
|
|
2005-04-01 20:27:56 +08:00
|
|
|
if $my_keyword_update_p || $opt_force; then
|
2005-02-28 05:19:51 +08:00
|
|
|
func_copy "$my_srcfile" "$my_destfile"
|
|
|
|
elif test "X$my_dest_serial" = "X$my_src_serial"; then
|
|
|
|
$opt_quiet \
|
|
|
|
|| func_echo "\`$my_destfile' is already up to date."
|
2003-10-07 19:12:16 +08:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2005-02-28 05:19:51 +08:00
|
|
|
|
2005-04-01 20:27:56 +08:00
|
|
|
# func_ltmain_update filename srcdir destdir
|
|
|
|
# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME
|
|
|
|
# has a newer revision, or DESTFILE does not yet exist, or the user
|
|
|
|
# specified `--force' at the command line.
|
|
|
|
func_ltmain_update ()
|
|
|
|
{
|
|
|
|
$opt_debug
|
|
|
|
my_sed_ltmain=['/^package_revision='\''*[0-9][1-9.]*'\''*/ {
|
|
|
|
s,^package_revision='\''*\([0-9.]*\)'\''*[ ]*$,\1,; p;
|
2005-04-20 00:40:52 +08:00
|
|
|
};
|
|
|
|
d']
|
2005-04-01 20:27:56 +08:00
|
|
|
|
|
|
|
func_keyword_update "$1" "$2" "$3" "$my_sed_ltmain"
|
|
|
|
|
|
|
|
return $my_return_status
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-04-01 20:23:55 +08:00
|
|
|
# func_config_update filename srcdir destdir
|
|
|
|
# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME
|
|
|
|
# has a newer timestamp, or DESTFILE does not yet exist, or the user
|
2004-11-29 21:50:54 +08:00
|
|
|
# specified `--force' at the command line.
|
2003-10-07 19:12:16 +08:00
|
|
|
func_config_update ()
|
|
|
|
{
|
2004-12-28 21:31:12 +08:00
|
|
|
$opt_debug
|
2005-04-01 20:27:56 +08:00
|
|
|
my_sed_config=['/^timestamp='\''*[0-9][1-9-]*'\''*/ {
|
|
|
|
s,^timestamp='\''*\([0-9-]*\)'\''*,\1,; s/-/./g; p;
|
2005-04-20 00:40:52 +08:00
|
|
|
};
|
|
|
|
d']
|
2004-11-29 21:50:54 +08:00
|
|
|
|
2005-04-01 20:27:56 +08:00
|
|
|
func_keyword_update "$1" "$2" "$3" "$my_sed_config"
|
1997-04-02 02:29:23 +08:00
|
|
|
|
2005-04-01 20:27:56 +08:00
|
|
|
return $my_return_status
|
|
|
|
}
|
2005-02-28 05:19:51 +08:00
|
|
|
|
|
|
|
|
2005-04-01 20:27:56 +08:00
|
|
|
# func_install_update filename srcdir destdir
|
|
|
|
# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME
|
|
|
|
# has a newer timestamp, or DESTFILE does not yet exist, or the user
|
|
|
|
# specified `--force' at the command line.
|
|
|
|
func_install_update ()
|
|
|
|
{
|
|
|
|
$opt_debug
|
|
|
|
my_sed_install=['/^scriptversion='\''*[0-9][1-9.-]*'\''*/ {
|
|
|
|
s,^scriptversion='\''*\([0-9.-]*\)'\''*,\1,; s/-/./g; p;
|
2005-04-20 00:40:52 +08:00
|
|
|
};
|
|
|
|
d']
|
2005-02-28 05:19:51 +08:00
|
|
|
|
2005-04-01 20:27:56 +08:00
|
|
|
func_keyword_update "$1" "$2" "$3" "$my_sed_install"
|
|
|
|
|
|
|
|
return $my_return_status
|
2003-10-07 19:12:16 +08:00
|
|
|
}
|
1997-04-02 03:53:01 +08:00
|
|
|
|
|
|
|
|
2005-02-28 05:19:51 +08:00
|
|
|
# func_check_macros
|
|
|
|
# Sanity check macros from aclocal.m4 against installed versions.
|
|
|
|
func_check_macros ()
|
|
|
|
{
|
|
|
|
$opt_debug
|
2005-10-26 18:34:08 +08:00
|
|
|
ac_config_macro_dir_advised=false
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
|
2005-10-26 18:34:08 +08:00
|
|
|
$seen_autoconf || return
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
|
2005-10-26 18:34:08 +08:00
|
|
|
# Suggest modern idioms for storing autoconf macros:
|
|
|
|
if test -z "$macrodir$ltdldir"; then
|
|
|
|
if test x"$m4dir" = x.; then
|
|
|
|
func_echo "Consider adding \`AC_CONFIG_MACRO_DIR([m4])' to $configure_ac and rerunning"
|
|
|
|
func_echo " libtoolize, to keep the correct libtool macros in-tree."
|
|
|
|
else
|
|
|
|
func_echo "Consider adding \`AC_CONFIG_MACRO_DIR([$m4dir])'to $configure.ac,"
|
|
|
|
func_echo "and rerunning libtoolize."
|
|
|
|
fi
|
|
|
|
elif test -z "$m4dir"; then
|
2005-11-01 22:28:20 +08:00
|
|
|
if $opt_ltdl && test "$ltdldir/m4" != "$m4dir"; then
|
2005-10-26 18:34:08 +08:00
|
|
|
acmacrodir="$ltdldir/m4"
|
|
|
|
else
|
|
|
|
acmacrodir="$aclocaldir"
|
|
|
|
fi
|
|
|
|
|
|
|
|
func_echo "You should add the contents of the following files to \`aclocal.m4':"
|
2005-11-20 18:33:27 +08:00
|
|
|
for need in libtool.m4 ltoptions.m4 ltversion.m4 ltsugar.m4 lt~obsolete.m4; do
|
2005-10-26 18:34:08 +08:00
|
|
|
func_echo " \`$acmacrodir/$need'"
|
|
|
|
done
|
|
|
|
if $seen_ltdl || $opt_ltdl; then
|
|
|
|
for need in argz.m4 ltdl.m4; do
|
|
|
|
func_echo " \`$acmacrodir/$need'"
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
if test "$acmacrodir" != "$aclocaldir"; then
|
|
|
|
func_echo "or else add \`AC_CONFIG_MACRO_DIR([[$acmacrodir]])' to $configure_ac."
|
|
|
|
ac_config_macro_dir_advised=:
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
$seen_libtool ||
|
|
|
|
func_echo "Remember to add \`LT_INIT' to $configure_ac."
|
|
|
|
|
|
|
|
if $opt_ltdl; then
|
|
|
|
|
|
|
|
# Suggest using LT_WITH_LTDL if appropriate:
|
|
|
|
$seen_ltdl ||
|
|
|
|
func_echo "Consider adding \`LT_WITH_LTDL' to $configure_ac"
|
|
|
|
|
|
|
|
# Remind the user to call LT_CONFIG_LTDL_DIR:
|
|
|
|
test -n "$ac_ltdldir" ||
|
|
|
|
func_echo "Remember to add \`LT_CONFIG_LTDL_DIR([[$ltdldir]])' to \`$configure_ac'."
|
2005-02-28 05:19:51 +08:00
|
|
|
|
2005-10-26 18:34:08 +08:00
|
|
|
# Offer some suggestions for avoiding duplicate files in a project
|
|
|
|
# that uses libltdl:
|
|
|
|
test "$ltdldir/config" = "$auxdir" ||
|
|
|
|
func_echo "Consider using \`AC_CONFIG_AUX_DIR([[$ltdldir/config]])' in $configure_ac."
|
|
|
|
$ac_config_macro_dir_advised || test "$ltdldir/m4" = "$m4dir" ||
|
|
|
|
func_echo "Consider using \`AC_CONFIG_MACRO_DIR([[$ltdldir/m4]])' in $configure_ac."
|
|
|
|
else
|
|
|
|
# Don't trace for this, we're just checking the user didn't invoke it
|
|
|
|
# directly from configure.ac.
|
|
|
|
$SED 's,[d]nl .*$,,; s,# .*$,,' "$configure_ac" | grep AC_PROG_RANLIB &&
|
|
|
|
func_echo "\`AC_PROG_RANLIB' is rendered obsolete by \`LT_INIT'"
|
|
|
|
fi
|
2005-02-28 05:19:51 +08:00
|
|
|
|
|
|
|
# FIXME: Ensure ltmain.sh, libtool.m4 and ltdl.m4 are from the same release
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
# func_massage_aclocal_DATA [glob_exclude]
|
|
|
|
# @aclocal_DATA\@ is substituted as per its value in Makefile.am;
|
2005-04-01 23:03:23 +08:00
|
|
|
# this function massages it into a suitable format for func_copy_some_files.
|
2005-04-30 17:30:14 +08:00
|
|
|
func_massage_aclocal_DATA ()
|
2005-03-15 19:49:59 +08:00
|
|
|
{
|
2005-04-30 17:30:14 +08:00
|
|
|
pkgmacro_files= # GLOBAL VAR
|
2005-03-15 19:49:59 +08:00
|
|
|
|
|
|
|
my_glob_exclude="$1"
|
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
# Massage a value for pkgmacro_files from the value used in Makefile.am.
|
|
|
|
for my_filename in @aclocal_DATA@; do
|
2005-03-15 19:49:59 +08:00
|
|
|
my_filename=`$ECHO "X$my_filename" | $Xsed -e "$basename"`
|
|
|
|
|
2005-03-24 19:38:25 +08:00
|
|
|
# ignore excluded filenames
|
2005-03-15 19:49:59 +08:00
|
|
|
if test -n "$my_glob_exclude"; then
|
2005-11-19 01:37:40 +08:00
|
|
|
my_cont=false
|
|
|
|
eval 'case $my_filename in '$my_glob_exclude') my_cont=: ;; esac'
|
|
|
|
$my_cont && continue
|
2005-03-15 19:49:59 +08:00
|
|
|
fi
|
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
pkgmacro_files="$pkgmacro_files:$my_filename"
|
2005-03-15 19:49:59 +08:00
|
|
|
done
|
|
|
|
|
|
|
|
# strip spurious leading `:'
|
2005-04-30 17:30:14 +08:00
|
|
|
pkgmacro_files=`$ECHO "X$pkgmacro_files" | $Xsed -e 's,^:*,,'`
|
2005-03-15 19:49:59 +08:00
|
|
|
}
|
|
|
|
|
1997-04-02 02:29:23 +08:00
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
# func_massage_pkgltdl_files [glob_exclude]
|
|
|
|
# @pkgltdl_files\@ is substituted as per its value in Makefile.am; this
|
2005-03-24 19:38:25 +08:00
|
|
|
# function massages it into a suitable format for func_copy_some_files.
|
2005-04-30 17:30:14 +08:00
|
|
|
func_massage_pkgltdl_files ()
|
2005-03-24 19:38:25 +08:00
|
|
|
{
|
2005-04-30 17:30:14 +08:00
|
|
|
pkgltdl_files= # GLOBAL VAR
|
2005-03-24 19:38:25 +08:00
|
|
|
|
|
|
|
my_glob_exclude="$1"
|
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
# Massage a value for pkgltdl_files from the value used in Makefile.am
|
|
|
|
for my_filename in @pkgltdl_files@; do
|
2005-03-24 19:38:25 +08:00
|
|
|
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
# Strip surplus leading 'libltdl/':
|
|
|
|
my_filename=`expr "X$my_filename" : 'Xlibltdl/\(.*\)'`
|
|
|
|
|
2005-03-24 19:38:25 +08:00
|
|
|
# ignore excluded filenames
|
|
|
|
if test -n "$my_glob_exclude"; then
|
2005-11-19 01:37:40 +08:00
|
|
|
my_cont=false
|
|
|
|
eval 'case $my_filename in '$my_glob_exclude') my_cont=: ;; esac'
|
|
|
|
$my_cont && continue
|
2005-03-24 19:38:25 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
# ignore duplicates
|
2005-04-30 17:30:14 +08:00
|
|
|
case :$pkgltdl_files: in
|
2005-03-24 19:38:25 +08:00
|
|
|
*:$my_filename:*) ;;
|
2005-04-30 17:30:14 +08:00
|
|
|
*) pkgltdl_files="$pkgltdl_files:$my_filename" ;;
|
2005-03-24 19:38:25 +08:00
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
# strip spurious leading `:'
|
2005-04-30 17:30:14 +08:00
|
|
|
pkgltdl_files=`$ECHO "X$pkgltdl_files" | $Xsed -e 's,^:*,,'`
|
|
|
|
}
|
|
|
|
|
|
|
|
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
# func_massage_pkgconfig_files [glob_exclude]
|
|
|
|
# @pkgconfig_files\@ is substituted as per its value in Makefile.am; this
|
|
|
|
# function massages it into a suitable format for func_copy_some_files.
|
|
|
|
func_massage_pkgconfig_files ()
|
|
|
|
{
|
|
|
|
pkgconfig_files= # GLOBAL VAR
|
|
|
|
|
|
|
|
my_glob_exclude="$1"
|
|
|
|
|
|
|
|
# Massage a value for pkgconfig_files from the value used in Makefile.am
|
|
|
|
for my_filename in @pkgconfig_files@; do
|
|
|
|
|
|
|
|
# ignore excluded filenames
|
|
|
|
if test -n "$my_glob_exclude"; then
|
2005-11-19 01:37:40 +08:00
|
|
|
my_cont=false
|
|
|
|
eval 'case $my_filename in '$my_glob_exclude') my_cont=: ;; esac'
|
|
|
|
$my_cont && continue
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
# ignore duplicates
|
|
|
|
case :$pkgconfig_files: in
|
|
|
|
*:$my_filename:*) ;;
|
|
|
|
*) pkgconfig_files="$pkgconfig_files:$my_filename" ;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
# strip spurious leading `:'
|
|
|
|
pkgconfig_files=`$ECHO "X$pkgconfig_files" | $Xsed -e 's,^:*,,'`
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
# func_nonemptydir_p dirvar
|
|
|
|
# DIRVAR is the name of a variable to evaluate. Unless DIRVAR names
|
|
|
|
# a directory that exists and is non-empty abort with a diagnostic.
|
|
|
|
func_nonemptydir_p ()
|
|
|
|
{
|
|
|
|
$opt_debug
|
|
|
|
my_dirvar="$1"
|
|
|
|
my_dir=`eval echo "\\\$$my_dirvar"`
|
|
|
|
|
|
|
|
# Is it a directory at all?
|
|
|
|
test -d "$my_dir" \
|
|
|
|
|| func_fatal_error "\$$my_dirvar not a directory: \`$my_dir'"
|
|
|
|
|
|
|
|
# check that the directories contents can be ls'ed
|
|
|
|
test -n "`{ cd $my_dir && ls; } 2>/dev/null`" \
|
|
|
|
|| func_fatal_error "can not list files: \`$my_dir'"
|
2005-03-24 19:38:25 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
## ----------- ##
|
|
|
|
## Main. ##
|
|
|
|
## ----------- ##
|
1997-04-02 02:29:23 +08:00
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
{
|
|
|
|
rerun_aclocal=false
|
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
# Allow the user to override the master libtoolize repository:
|
|
|
|
if test -n "$_lt_pkgdatadir"; then
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
pkgltdldir="$_lt_pkgdatadir"
|
|
|
|
pkgdatadir="$_lt_pkgdatadir/libltdl"
|
|
|
|
aclocaldir="$_lt_pkgdatadir/libltdl/m4"
|
2005-04-30 17:30:14 +08:00
|
|
|
fi
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
func_nonemptydir_p pkgltdldir
|
2005-04-30 17:30:14 +08:00
|
|
|
func_nonemptydir_p pkgdatadir
|
|
|
|
func_nonemptydir_p aclocaldir
|
|
|
|
|
2005-10-26 18:42:05 +08:00
|
|
|
func_scan_files
|
|
|
|
|
|
|
|
# These files are handled specially, depending on ltdl_mode:
|
|
|
|
case $ltdl_mode in
|
|
|
|
*recursive)
|
|
|
|
glob_exclude_pkgltdl_files='Makefile.am|Makefile.in*|aclocal.m4|config*'
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
glob_exclude_pkgltdl_files='Makefile.inc'
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
func_massage_pkgltdl_files "$glob_exclude_pkgltdl_files"
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
func_massage_pkgconfig_files
|
2005-03-24 19:38:25 +08:00
|
|
|
|
2005-03-15 19:49:59 +08:00
|
|
|
# libtool.m4 and ltdl.m4 are handled specially below
|
2005-04-30 17:30:14 +08:00
|
|
|
func_massage_aclocal_DATA 'libtool.m4|ltdl.m4'
|
2004-06-16 23:08:28 +08:00
|
|
|
|
2004-12-20 21:08:35 +08:00
|
|
|
glob_exclude_pkgaux_files='config.guess|config.sub|install-sh|ltmain.sh'
|
2004-01-08 18:34:52 +08:00
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
# Copy all the files from installed libltdl to this project, if the
|
|
|
|
# user specified `--ltdl'.
|
2005-10-03 23:45:47 +08:00
|
|
|
if $opt_ltdl; then
|
2005-10-26 18:42:05 +08:00
|
|
|
|
|
|
|
# For recursive ltdl modes, copy a suitable Makefile.{am,inc}:
|
|
|
|
case $ltdl_mode in
|
|
|
|
recursive) pkgltdl_files="Makefile.am:$pkgltdl_files" ;;
|
|
|
|
esac
|
|
|
|
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
func_copy_some_files "$pkgltdl_files" "$pkgltdldir/libltdl" "$ltdldir"
|
2004-06-22 00:40:01 +08:00
|
|
|
|
2005-12-03 16:49:48 +08:00
|
|
|
case $ltdl_mode in
|
|
|
|
nonrecursive) func_fixup_Makefile_inc "Makefile.inc" "$pkgltdldir/libltdl" "$ltdldir" ;;
|
|
|
|
esac
|
|
|
|
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
# Unless we share CONFIG_MACRO_DIR with our parent project,
|
|
|
|
# copy macros here.
|
|
|
|
if test "$ltdldir/m4" != "$m4dir"; then
|
|
|
|
func_copy_some_files "$pkgmacro_files:libtool.m4:ltdl.m4" \
|
|
|
|
"$aclocaldir" "$ltdldir/m4"
|
|
|
|
fi
|
2003-10-07 19:12:16 +08:00
|
|
|
|
2005-10-26 17:20:45 +08:00
|
|
|
# Copy config aux files into libltdl.
|
|
|
|
func_copy_some_files "$pkgconfig_files" "$pkgdatadir" "$ltdldir"
|
1999-01-17 19:19:40 +08:00
|
|
|
fi
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
|
2005-10-26 17:20:45 +08:00
|
|
|
# Unless we share CONFIG_AUX_DIR with the libltdl subproject, then
|
|
|
|
# if they are newer, copy all the installed utility files to the
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
# auxiliary directory if `--install' was passed, or else copy just
|
|
|
|
# ltmain.sh.
|
|
|
|
if test -n "$auxdir"; then
|
2005-10-26 17:20:45 +08:00
|
|
|
if test "$ltdldir/config" != "$auxdir"; then
|
|
|
|
$opt_quiet || if test "$auxdir" != .; then
|
|
|
|
func_echo "putting files in AC_CONFIG_AUX_DIR, \`$auxdir'."
|
|
|
|
fi
|
|
|
|
if $opt_install; then
|
|
|
|
func_config_update config.guess "$pkgdatadir/config" "$auxdir"
|
|
|
|
func_config_update config.sub "$pkgdatadir/config" "$auxdir"
|
|
|
|
func_install_update install-sh "$pkgdatadir/config" "$auxdir"
|
|
|
|
fi
|
|
|
|
func_ltmain_update ltmain.sh "$pkgdatadir/config" "$auxdir"
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
fi
|
|
|
|
else
|
|
|
|
func_verbose "AC_CONFIG_AUX_DIR not defined, not copying libtool auxilliary files."
|
2003-10-07 19:12:16 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Copy libtool's m4 macros to the macro directory, if they are newer.
|
2004-06-17 16:03:49 +08:00
|
|
|
if test -n "$m4dir"; then
|
|
|
|
$opt_quiet || func_echo "putting macros in AC_CONFIG_MACRO_DIR, \`$m4dir'."
|
2004-01-08 18:34:52 +08:00
|
|
|
|
2005-04-30 17:30:14 +08:00
|
|
|
func_serial_update libtool.m4 "$aclocaldir" "$m4dir" \
|
2004-09-23 09:16:41 +08:00
|
|
|
LT_INIT 'A[[CM]]_PROG_LIBTOOL'
|
2004-06-17 16:03:49 +08:00
|
|
|
|
|
|
|
if $seen_ltdl; then
|
2005-04-30 17:30:14 +08:00
|
|
|
func_serial_update ltdl.m4 "$aclocaldir" "$m4dir" 'LTDL_INIT'
|
2004-06-17 16:03:49 +08:00
|
|
|
else
|
2004-11-29 21:50:54 +08:00
|
|
|
func_verbose "Not copying \`$m4dir/ltdl.m4', libltdl not used."
|
2004-06-17 16:03:49 +08:00
|
|
|
fi
|
1999-03-10 06:57:26 +08:00
|
|
|
|
2005-11-01 22:28:20 +08:00
|
|
|
my_save_IFS="$IFS"
|
|
|
|
IFS=:
|
|
|
|
for file in $pkgmacro_files; do
|
|
|
|
IFS="$my_save_IFS"
|
|
|
|
func_serial_update $file "$aclocaldir" "$m4dir" "$file"
|
|
|
|
done
|
|
|
|
IFS="$my_save_IFS"
|
1999-03-10 06:57:26 +08:00
|
|
|
fi
|
Reorganise the libtool tree to create a bootstrapped libltdl for
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.
2005-08-23 09:49:37 +08:00
|
|
|
|
2005-10-26 18:34:08 +08:00
|
|
|
$opt_quiet || func_check_macros
|
2003-10-07 19:12:16 +08:00
|
|
|
}
|
1999-03-10 06:57:26 +08:00
|
|
|
|
2003-10-07 19:12:16 +08:00
|
|
|
exit $exit_status
|
1997-04-02 02:29:23 +08:00
|
|
|
|
|
|
|
# Local Variables:
|
|
|
|
# mode:shell-script
|
|
|
|
# sh-indentation:2
|
|
|
|
# End:
|