1998-11-02 16:34:05 +08:00
|
|
|
#! /bin/sh
|
2003-11-25 23:48:23 +08:00
|
|
|
# bootstrap -- Helps bootstrapping libtool, when checked out from CVS.
|
|
|
|
#
|
2005-03-15 19:47:36 +08:00
|
|
|
# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc,
|
2003-11-25 23:48: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
|
|
|
|
# along with this program; see the file COPYING. If not, write to
|
2005-04-22 18:10:31 +08:00
|
|
|
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
|
|
# Boston, MA 02110-1301, USA.
|
1998-11-02 16:34:05 +08:00
|
|
|
|
2003-11-25 23:48:23 +08:00
|
|
|
# It is okay for the bootstrap process to require unreleased autoconf
|
|
|
|
# or automake, as long as any released libtool will work with at least
|
|
|
|
# the newest stable versions of each. Generally, newer versions offer
|
|
|
|
# better features, and configure.ac documents oldest version of each
|
|
|
|
# required for bootstrap (AC_PREREQ, and AM_INIT_AUTOMAKE).
|
2003-08-29 22:09:50 +08:00
|
|
|
|
2005-09-05 14:21:48 +08:00
|
|
|
SHELL=${CONFIG_SHELL-/bin/sh}
|
|
|
|
export SHELL
|
2005-03-15 20:58:40 +08:00
|
|
|
: ${AUTORECONF=autoreconf}
|
|
|
|
: ${AUTOM4TE=autom4te}
|
|
|
|
: ${MAKE=make}
|
|
|
|
: ${GREP=grep}
|
|
|
|
: ${EGREP=egrep}
|
|
|
|
: ${FGREP=fgrep}
|
|
|
|
: ${SED=sed}
|
|
|
|
: ${LN_S='ln -s'}
|
2005-04-05 01:38:31 +08:00
|
|
|
: ${MAKEINFO=makeinfo}
|
2005-08-29 21:58:07 +08:00
|
|
|
: ${WORKING_LIBOBJ_SUPPORT=false}
|
2005-03-15 20:58:40 +08:00
|
|
|
|
My thanks to Alexandre Duret-Lutz <adl@gnu.org> for the insight
required to write this changeset -- especially that ltmain.sh is
the same on any machine for a given release, which I hadn't
noticed for some bizarre reason: It turns out that generating
distributed files from configure causes no end of hassle, as
evidenced by the many patches I've generated over the last few
days to try and get the dist and distcheck make rules to work.
Instead of all that hair, we now simply generate our distributed
files (now including ltmain.sh) with make rules -- and since
automake creates make variables for all AC_SUBSTs, that is really
easy. The code looks a lot more like automake and autoconf
Makefile.ams now, and doesn't have all the rough edges the earlier
hacky solution suffered from. We still generate libtool from
config.status, but that is not a distributed file, and doesn't
break the golden rule. Besides, there is way more going on there
than a bunch of substitutions:
* Makefile.am (edit): New common sed substitutions for files now
generated by make instead of config.status.
(CLEANFILES): Clean new tmp files.
(EXTRA_DIST): Add ltmain.sh.
(vcl-tmp): Reinstated.
(m4/ltversion.m4, config/ltmain.sh): New rules. Generate from
here instead of config.status.
(libtoolize): Ditto.
(libtool): Call config.status to regenerate if necessary.
(dist-hook): Removed.
* config/ltmain.in: Moved here from top_srcdir.
* README-alpha: Update instructions to check AS_SHELL_SANITIZE is
up to date.
* bootstrap: Rewritten. Generate m4/ltversion.m4 and
config/ltmain.sh because configure depends on them.
* configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that
ltmain.in has moved.
(AC_CONFIG_FILES): Don't generate distributed files,
config/ltmain.sh and libtoolize from config.status. We have make
rules to do that now.
2004-07-31 07:02:39 +08:00
|
|
|
test -f ./configure.ac || {
|
|
|
|
echo "bootstrap: can't find ./configure.ac, please rerun from top_srcdir"
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
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
|
|
|
|
|
|
|
# Extract auxdir and m4dir from configure.ac:
|
|
|
|
my_sed_traces='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
|
|
|
|
/AC_CONFIG_AUX_DIR[^_]/ {
|
|
|
|
s,^.*AC_CONFIG_AUX_DIR([[ ]*\([^])]*\).*$,auxdir=\1,; p;
|
|
|
|
};
|
|
|
|
/AC_CONFIG_MACRO_DIR/ {
|
|
|
|
s,^.*AC_CONFIG_MACRO_DIR([[ ]*\([^])]*\).*$,m4dir=\1,; p;
|
|
|
|
};
|
|
|
|
d;'
|
|
|
|
eval `cat configure.ac 2>/dev/null | $SED "$my_sed_traces"`
|
|
|
|
|
|
|
|
|
2003-11-25 23:48:23 +08:00
|
|
|
# Upgrade caveat:
|
2003-08-29 22:09:50 +08:00
|
|
|
cat <<'EOF'
|
|
|
|
WARNING: If bootstrapping with this script fails, it may be due to an
|
|
|
|
WARNING: incompatible installed `libtool.m4' being pulled in to
|
|
|
|
WARNING: `aclocal.m4'. The best way to work around such a problem is to
|
2003-08-30 01:07:17 +08:00
|
|
|
WARNING: uninstall your system libtool files, or failing that, overwrite
|
2004-08-31 18:49:12 +08:00
|
|
|
WARNING: them with all m4 file as shipped with this distribution (except
|
|
|
|
WARNING: `lt~obsolete.m4'). After that, retry this bootstrap.
|
2003-08-29 22:09:50 +08:00
|
|
|
EOF
|
|
|
|
|
2005-09-05 14:21:48 +08:00
|
|
|
find . -name '{arch}' -prune -o \( -name autom4te.cache -o -name libtool \) \
|
|
|
|
-depth -exec rm -rf \{\} \;
|
1998-12-20 18:26:52 +08:00
|
|
|
|
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
|
|
|
# Delete stale files from previous libtool versions.
|
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
|
|
|
rm -f acinclude.m4 libltdl/config.h
|
2004-04-14 18:40:46 +08:00
|
|
|
|
2005-08-29 21:58:07 +08:00
|
|
|
# Workaround for missing LIBOBJDIR support in Autoconf 2.59, Automake 1.9.6:
|
|
|
|
# Have symlinks of the libobj files in top source dir.
|
|
|
|
# Set WORKING_LIBOBJ_SUPPORT=: when calling bootstrap if you have fixed tools.
|
|
|
|
for file in argz.c lt__dirent.c lt__strl.c; do
|
|
|
|
rm -f $file
|
|
|
|
$WORKING_LIBOBJ_SUPPORT || $LN_S libltdl/$file $file
|
|
|
|
done
|
|
|
|
|
2003-10-21 17:28:38 +08:00
|
|
|
if test -z "$reconfdirs"; 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
|
|
|
reconfdirs=". libltdl `ls -1d tests/*demo tests/*demo[0-9]`"
|
2003-10-21 17:28:38 +08:00
|
|
|
fi
|
2001-06-29 06:49:20 +08:00
|
|
|
|
My thanks to Alexandre Duret-Lutz <adl@gnu.org> for the insight
required to write this changeset -- especially that ltmain.sh is
the same on any machine for a given release, which I hadn't
noticed for some bizarre reason: It turns out that generating
distributed files from configure causes no end of hassle, as
evidenced by the many patches I've generated over the last few
days to try and get the dist and distcheck make rules to work.
Instead of all that hair, we now simply generate our distributed
files (now including ltmain.sh) with make rules -- and since
automake creates make variables for all AC_SUBSTs, that is really
easy. The code looks a lot more like automake and autoconf
Makefile.ams now, and doesn't have all the rough edges the earlier
hacky solution suffered from. We still generate libtool from
config.status, but that is not a distributed file, and doesn't
break the golden rule. Besides, there is way more going on there
than a bunch of substitutions:
* Makefile.am (edit): New common sed substitutions for files now
generated by make instead of config.status.
(CLEANFILES): Clean new tmp files.
(EXTRA_DIST): Add ltmain.sh.
(vcl-tmp): Reinstated.
(m4/ltversion.m4, config/ltmain.sh): New rules. Generate from
here instead of config.status.
(libtoolize): Ditto.
(libtool): Call config.status to regenerate if necessary.
(dist-hook): Removed.
* config/ltmain.in: Moved here from top_srcdir.
* README-alpha: Update instructions to check AS_SHELL_SANITIZE is
up to date.
* bootstrap: Rewritten. Generate m4/ltversion.m4 and
config/ltmain.sh because configure depends on them.
* configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that
ltmain.in has moved.
(AC_CONFIG_FILES): Don't generate distributed files,
config/ltmain.sh and libtoolize from config.status. We have make
rules to do that now.
2004-07-31 07:02:39 +08:00
|
|
|
# Extract the package name and version number from configure.ac:
|
2005-09-05 18:15:16 +08:00
|
|
|
set dummy `$SED -n '/AC_INIT/{s/[][,()]/ /g; p;}' configure.ac`
|
2004-12-28 21:50:23 +08:00
|
|
|
shift
|
My thanks to Alexandre Duret-Lutz <adl@gnu.org> for the insight
required to write this changeset -- especially that ltmain.sh is
the same on any machine for a given release, which I hadn't
noticed for some bizarre reason: It turns out that generating
distributed files from configure causes no end of hassle, as
evidenced by the many patches I've generated over the last few
days to try and get the dist and distcheck make rules to work.
Instead of all that hair, we now simply generate our distributed
files (now including ltmain.sh) with make rules -- and since
automake creates make variables for all AC_SUBSTs, that is really
easy. The code looks a lot more like automake and autoconf
Makefile.ams now, and doesn't have all the rough edges the earlier
hacky solution suffered from. We still generate libtool from
config.status, but that is not a distributed file, and doesn't
break the golden rule. Besides, there is way more going on there
than a bunch of substitutions:
* Makefile.am (edit): New common sed substitutions for files now
generated by make instead of config.status.
(CLEANFILES): Clean new tmp files.
(EXTRA_DIST): Add ltmain.sh.
(vcl-tmp): Reinstated.
(m4/ltversion.m4, config/ltmain.sh): New rules. Generate from
here instead of config.status.
(libtoolize): Ditto.
(libtool): Call config.status to regenerate if necessary.
(dist-hook): Removed.
* config/ltmain.in: Moved here from top_srcdir.
* README-alpha: Update instructions to check AS_SHELL_SANITIZE is
up to date.
* bootstrap: Rewritten. Generate m4/ltversion.m4 and
config/ltmain.sh because configure depends on them.
* configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that
ltmain.in has moved.
(AC_CONFIG_FILES): Don't generate distributed files,
config/ltmain.sh and libtoolize from config.status. We have make
rules to do that now.
2004-07-31 07:02:39 +08:00
|
|
|
|
Since the bootstrap process requires that several of the rules for
files generated in doc and tests already lived in
$top_srcdir/Makefile.am, along with proxy rules in sub-Makefiles,
this changeset consolidates almost everything into the top
Makefile.am, simplifying things considerably:
* doc/Makefile.am, tests/Makefile.am: Removed. All rules moved...
* Makefile.am: ...to here and adjusted to run from $top_builddir.
Some reformatting to group rules and declarations by purpose, and
simplify with respect to removing much of the make recursion.
Add `doc/PLATFORMS', `doc/fdl.texi' and `doc/notes.texi'.
`defs.in' and `defs.m4sh' are in directory `tests'.
(uninstall-hook): Don't forget to uninstall libtoolize's libltdl
source tree.
* bootstrap: Simplified dirty makefile management, and bootstrap
file creation in light of having only a single pertinent
Makefile.
* configure.ac (CONF_SUBDIRS): Add tests/ prefix to each subdir to
compensate.
(DIST_MAKEFILE_LIST): Adjust.
(AC_CONFIG_FILES): Remove doc/Makefile and tests/Makefile.
* tests/defs.m4sh (LIBTOOL, scripts): Adjust paths.
* tests/cdemo-conf.test, tests/cdemo-exec.test,
tests/cdemo-make.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/cdemo-undef.test,
tests/demo-conf.test, tests/demo-deplibs.test,
tests/demo-exec.test, tests/demo-hardcode.test,
tests/demo-inst.test, tests/demo-make.test,
tests/demo-nofast.test, tests/demo-noinst-link.test,
tests/demo-nopic.test, tests/demo-pic.test,
tests/demo-relink.test, tests/demo-shared.test,
tests/demo-static.test, tests/demo-unst.test,
tests/depdemo-conf.test, tests/depdemo-exec.test,
tests/depdemo-inst.test, tests/depdemo-make.test,
tests/depdemo-nofast.test, tests/depdemo-relink.test,
tests/depdemo-shared.test, tests/depdemo-static.test,
tests/depdemo-unst.test, tests/f77demo-conf.test,
tests/f77demo-exec.test, tests/f77demo-make.test,
tests/f77demo-shared.test, tests/f77demo-static.test,
tests/link-2.test, tests/link.test, tests/mdemo-conf.test,
tests/mdemo-dryrun.test, tests/mdemo-exec.test,
tests/mdemo-inst.test, tests/mdemo-make.test,
tests/mdemo-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/objectlist.test, tests/pdemo-conf.test,
tests/pdemo-exec.test, tests/pdemo-inst.test,
tests/pdemo-make.test, tests/quote.test, tests/sh.test,
tests/suffix.test, tests/tagdemo-conf.test,
tests/tagdemo-exec.test, tests/tagdemo-make.test,
tests/tagdemo-shared.test, tests/tagdemo-static.test,
tests/tagdemo-undef.test, tests/tagtrace.test (func_cd,
func_require): Adjust paths..
2005-04-13 20:24:35 +08:00
|
|
|
# Whip up a dirty Makefile:
|
|
|
|
test -f Makefile \
|
|
|
|
|| $SED '/^if /,/^endif$/d;/^else$/,/^endif$/d' Makefile.am > Makefile
|
2004-11-24 22:55:55 +08:00
|
|
|
|
My thanks to Alexandre Duret-Lutz <adl@gnu.org> for the insight
required to write this changeset -- especially that ltmain.sh is
the same on any machine for a given release, which I hadn't
noticed for some bizarre reason: It turns out that generating
distributed files from configure causes no end of hassle, as
evidenced by the many patches I've generated over the last few
days to try and get the dist and distcheck make rules to work.
Instead of all that hair, we now simply generate our distributed
files (now including ltmain.sh) with make rules -- and since
automake creates make variables for all AC_SUBSTs, that is really
easy. The code looks a lot more like automake and autoconf
Makefile.ams now, and doesn't have all the rough edges the earlier
hacky solution suffered from. We still generate libtool from
config.status, but that is not a distributed file, and doesn't
break the golden rule. Besides, there is way more going on there
than a bunch of substitutions:
* Makefile.am (edit): New common sed substitutions for files now
generated by make instead of config.status.
(CLEANFILES): Clean new tmp files.
(EXTRA_DIST): Add ltmain.sh.
(vcl-tmp): Reinstated.
(m4/ltversion.m4, config/ltmain.sh): New rules. Generate from
here instead of config.status.
(libtoolize): Ditto.
(libtool): Call config.status to regenerate if necessary.
(dist-hook): Removed.
* config/ltmain.in: Moved here from top_srcdir.
* README-alpha: Update instructions to check AS_SHELL_SANITIZE is
up to date.
* bootstrap: Rewritten. Generate m4/ltversion.m4 and
config/ltmain.sh because configure depends on them.
* configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that
ltmain.in has moved.
(AC_CONFIG_FILES): Don't generate distributed files,
config/ltmain.sh and libtoolize from config.status. We have make
rules to do that now.
2004-07-31 07:02:39 +08:00
|
|
|
# Building distributed files from configure is bad for automake, so we
|
2004-09-03 16:10:21 +08:00
|
|
|
# generate them here, and have Makefile rules to keep them up to date.
|
|
|
|
# We don't have all the substitution values to build ltmain.sh from this
|
|
|
|
# script yet, but we need config/ltmain.sh for the libtool commands in
|
|
|
|
# configure, and ltversion.m4 to generate configure in the first place:
|
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
|
|
|
rm -f $auxdir/ltmain.sh $m4dir/ltversion.m4
|
2004-11-24 22:55:55 +08:00
|
|
|
|
2005-09-05 14:21:48 +08:00
|
|
|
$MAKE ./$auxdir/ltmain.sh ./$m4dir/ltversion.m4 ./doc/notes.txt \
|
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
|
|
|
./libtoolize.in ./tests/defs.in ./tests/package.m4 \
|
|
|
|
./tests/testsuite ./libltdl/Makefile.am \
|
2005-03-15 19:47:36 +08:00
|
|
|
srcdir=. top_srcdir=. PACKAGE="$2" VERSION="$3" \
|
Since the bootstrap process requires that several of the rules for
files generated in doc and tests already lived in
$top_srcdir/Makefile.am, along with proxy rules in sub-Makefiles,
this changeset consolidates almost everything into the top
Makefile.am, simplifying things considerably:
* doc/Makefile.am, tests/Makefile.am: Removed. All rules moved...
* Makefile.am: ...to here and adjusted to run from $top_builddir.
Some reformatting to group rules and declarations by purpose, and
simplify with respect to removing much of the make recursion.
Add `doc/PLATFORMS', `doc/fdl.texi' and `doc/notes.texi'.
`defs.in' and `defs.m4sh' are in directory `tests'.
(uninstall-hook): Don't forget to uninstall libtoolize's libltdl
source tree.
* bootstrap: Simplified dirty makefile management, and bootstrap
file creation in light of having only a single pertinent
Makefile.
* configure.ac (CONF_SUBDIRS): Add tests/ prefix to each subdir to
compensate.
(DIST_MAKEFILE_LIST): Adjust.
(AC_CONFIG_FILES): Remove doc/Makefile and tests/Makefile.
* tests/defs.m4sh (LIBTOOL, scripts): Adjust paths.
* tests/cdemo-conf.test, tests/cdemo-exec.test,
tests/cdemo-make.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/cdemo-undef.test,
tests/demo-conf.test, tests/demo-deplibs.test,
tests/demo-exec.test, tests/demo-hardcode.test,
tests/demo-inst.test, tests/demo-make.test,
tests/demo-nofast.test, tests/demo-noinst-link.test,
tests/demo-nopic.test, tests/demo-pic.test,
tests/demo-relink.test, tests/demo-shared.test,
tests/demo-static.test, tests/demo-unst.test,
tests/depdemo-conf.test, tests/depdemo-exec.test,
tests/depdemo-inst.test, tests/depdemo-make.test,
tests/depdemo-nofast.test, tests/depdemo-relink.test,
tests/depdemo-shared.test, tests/depdemo-static.test,
tests/depdemo-unst.test, tests/f77demo-conf.test,
tests/f77demo-exec.test, tests/f77demo-make.test,
tests/f77demo-shared.test, tests/f77demo-static.test,
tests/link-2.test, tests/link.test, tests/mdemo-conf.test,
tests/mdemo-dryrun.test, tests/mdemo-exec.test,
tests/mdemo-inst.test, tests/mdemo-make.test,
tests/mdemo-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/objectlist.test, tests/pdemo-conf.test,
tests/pdemo-exec.test, tests/pdemo-inst.test,
tests/pdemo-make.test, tests/quote.test, tests/sh.test,
tests/suffix.test, tests/tagdemo-conf.test,
tests/tagdemo-exec.test, tests/tagdemo-make.test,
tests/tagdemo-shared.test, tests/tagdemo-static.test,
tests/tagdemo-undef.test, tests/tagtrace.test (func_cd,
func_require): Adjust paths..
2005-04-13 20:24:35 +08:00
|
|
|
PACKAGE_BUGREPORT="bug-$2@gnu.org" M4SH="$AUTOM4TE --language=m4sh" \
|
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
|
|
|
AUTOTEST="$AUTOM4TE --language=autotest" SED="$SED" MAKEINFO="$MAKEINFO"
|
2004-10-09 05:56:10 +08:00
|
|
|
|
2005-09-05 14:21:48 +08:00
|
|
|
test -f clcommit.m4sh && $MAKE -f Makefile.maint ./commit \
|
2005-04-14 21:09:01 +08:00
|
|
|
srcdir=. top_srcdir=. PACKAGE="$2" VERSION="$3" M4SH="$AUTOM4TE -l m4sh" \
|
Since the bootstrap process requires that several of the rules for
files generated in doc and tests already lived in
$top_srcdir/Makefile.am, along with proxy rules in sub-Makefiles,
this changeset consolidates almost everything into the top
Makefile.am, simplifying things considerably:
* doc/Makefile.am, tests/Makefile.am: Removed. All rules moved...
* Makefile.am: ...to here and adjusted to run from $top_builddir.
Some reformatting to group rules and declarations by purpose, and
simplify with respect to removing much of the make recursion.
Add `doc/PLATFORMS', `doc/fdl.texi' and `doc/notes.texi'.
`defs.in' and `defs.m4sh' are in directory `tests'.
(uninstall-hook): Don't forget to uninstall libtoolize's libltdl
source tree.
* bootstrap: Simplified dirty makefile management, and bootstrap
file creation in light of having only a single pertinent
Makefile.
* configure.ac (CONF_SUBDIRS): Add tests/ prefix to each subdir to
compensate.
(DIST_MAKEFILE_LIST): Adjust.
(AC_CONFIG_FILES): Remove doc/Makefile and tests/Makefile.
* tests/defs.m4sh (LIBTOOL, scripts): Adjust paths.
* tests/cdemo-conf.test, tests/cdemo-exec.test,
tests/cdemo-make.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/cdemo-undef.test,
tests/demo-conf.test, tests/demo-deplibs.test,
tests/demo-exec.test, tests/demo-hardcode.test,
tests/demo-inst.test, tests/demo-make.test,
tests/demo-nofast.test, tests/demo-noinst-link.test,
tests/demo-nopic.test, tests/demo-pic.test,
tests/demo-relink.test, tests/demo-shared.test,
tests/demo-static.test, tests/demo-unst.test,
tests/depdemo-conf.test, tests/depdemo-exec.test,
tests/depdemo-inst.test, tests/depdemo-make.test,
tests/depdemo-nofast.test, tests/depdemo-relink.test,
tests/depdemo-shared.test, tests/depdemo-static.test,
tests/depdemo-unst.test, tests/f77demo-conf.test,
tests/f77demo-exec.test, tests/f77demo-make.test,
tests/f77demo-shared.test, tests/f77demo-static.test,
tests/link-2.test, tests/link.test, tests/mdemo-conf.test,
tests/mdemo-dryrun.test, tests/mdemo-exec.test,
tests/mdemo-inst.test, tests/mdemo-make.test,
tests/mdemo-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/objectlist.test, tests/pdemo-conf.test,
tests/pdemo-exec.test, tests/pdemo-inst.test,
tests/pdemo-make.test, tests/quote.test, tests/sh.test,
tests/suffix.test, tests/tagdemo-conf.test,
tests/tagdemo-exec.test, tests/tagdemo-make.test,
tests/tagdemo-shared.test, tests/tagdemo-static.test,
tests/tagdemo-undef.test, tests/tagtrace.test (func_cd,
func_require): Adjust paths..
2005-04-13 20:24:35 +08:00
|
|
|
SED="$SED" GREP="$GREP" FGREP="$FGREP" EGREP="$EGREP" LN_S="$LN_S"
|
2004-10-09 05:56:10 +08:00
|
|
|
|
Since the bootstrap process requires that several of the rules for
files generated in doc and tests already lived in
$top_srcdir/Makefile.am, along with proxy rules in sub-Makefiles,
this changeset consolidates almost everything into the top
Makefile.am, simplifying things considerably:
* doc/Makefile.am, tests/Makefile.am: Removed. All rules moved...
* Makefile.am: ...to here and adjusted to run from $top_builddir.
Some reformatting to group rules and declarations by purpose, and
simplify with respect to removing much of the make recursion.
Add `doc/PLATFORMS', `doc/fdl.texi' and `doc/notes.texi'.
`defs.in' and `defs.m4sh' are in directory `tests'.
(uninstall-hook): Don't forget to uninstall libtoolize's libltdl
source tree.
* bootstrap: Simplified dirty makefile management, and bootstrap
file creation in light of having only a single pertinent
Makefile.
* configure.ac (CONF_SUBDIRS): Add tests/ prefix to each subdir to
compensate.
(DIST_MAKEFILE_LIST): Adjust.
(AC_CONFIG_FILES): Remove doc/Makefile and tests/Makefile.
* tests/defs.m4sh (LIBTOOL, scripts): Adjust paths.
* tests/cdemo-conf.test, tests/cdemo-exec.test,
tests/cdemo-make.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/cdemo-undef.test,
tests/demo-conf.test, tests/demo-deplibs.test,
tests/demo-exec.test, tests/demo-hardcode.test,
tests/demo-inst.test, tests/demo-make.test,
tests/demo-nofast.test, tests/demo-noinst-link.test,
tests/demo-nopic.test, tests/demo-pic.test,
tests/demo-relink.test, tests/demo-shared.test,
tests/demo-static.test, tests/demo-unst.test,
tests/depdemo-conf.test, tests/depdemo-exec.test,
tests/depdemo-inst.test, tests/depdemo-make.test,
tests/depdemo-nofast.test, tests/depdemo-relink.test,
tests/depdemo-shared.test, tests/depdemo-static.test,
tests/depdemo-unst.test, tests/f77demo-conf.test,
tests/f77demo-exec.test, tests/f77demo-make.test,
tests/f77demo-shared.test, tests/f77demo-static.test,
tests/link-2.test, tests/link.test, tests/mdemo-conf.test,
tests/mdemo-dryrun.test, tests/mdemo-exec.test,
tests/mdemo-inst.test, tests/mdemo-make.test,
tests/mdemo-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/objectlist.test, tests/pdemo-conf.test,
tests/pdemo-exec.test, tests/pdemo-inst.test,
tests/pdemo-make.test, tests/quote.test, tests/sh.test,
tests/suffix.test, tests/tagdemo-conf.test,
tests/tagdemo-exec.test, tests/tagdemo-make.test,
tests/tagdemo-shared.test, tests/tagdemo-static.test,
tests/tagdemo-undef.test, tests/tagtrace.test (func_cd,
func_require): Adjust paths..
2005-04-13 20:24:35 +08:00
|
|
|
rm -f Makefile
|
2004-02-07 01:23:40 +08:00
|
|
|
|
My thanks to Alexandre Duret-Lutz <adl@gnu.org> for the insight
required to write this changeset -- especially that ltmain.sh is
the same on any machine for a given release, which I hadn't
noticed for some bizarre reason: It turns out that generating
distributed files from configure causes no end of hassle, as
evidenced by the many patches I've generated over the last few
days to try and get the dist and distcheck make rules to work.
Instead of all that hair, we now simply generate our distributed
files (now including ltmain.sh) with make rules -- and since
automake creates make variables for all AC_SUBSTs, that is really
easy. The code looks a lot more like automake and autoconf
Makefile.ams now, and doesn't have all the rough edges the earlier
hacky solution suffered from. We still generate libtool from
config.status, but that is not a distributed file, and doesn't
break the golden rule. Besides, there is way more going on there
than a bunch of substitutions:
* Makefile.am (edit): New common sed substitutions for files now
generated by make instead of config.status.
(CLEANFILES): Clean new tmp files.
(EXTRA_DIST): Add ltmain.sh.
(vcl-tmp): Reinstated.
(m4/ltversion.m4, config/ltmain.sh): New rules. Generate from
here instead of config.status.
(libtoolize): Ditto.
(libtool): Call config.status to regenerate if necessary.
(dist-hook): Removed.
* config/ltmain.in: Moved here from top_srcdir.
* README-alpha: Update instructions to check AS_SHELL_SANITIZE is
up to date.
* bootstrap: Rewritten. Generate m4/ltversion.m4 and
config/ltmain.sh because configure depends on them.
* configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that
ltmain.in has moved.
(AC_CONFIG_FILES): Don't generate distributed files,
config/ltmain.sh and libtoolize from config.status. We have make
rules to do that now.
2004-07-31 07:02:39 +08:00
|
|
|
# Make a dummy libtoolize script for autoreconf:
|
2005-09-05 14:21:48 +08:00
|
|
|
cat > $auxdir/libtoolize <<'EOF'
|
2003-10-15 17:27:54 +08:00
|
|
|
#! /bin/sh
|
|
|
|
# This is a dummy file for bootstrapping CVS libtool.
|
|
|
|
echo "$0: Bootstrap detected, no files installed." | sed 's,^.*/,,g'
|
|
|
|
exit 0
|
|
|
|
EOF
|
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
|
|
|
chmod 755 $auxdir/libtoolize
|
* bootstrap: Rewritten to use autoreconf.
* config.guess, config.sub, mkstamp: Moved from here...
* config/config.guess, config/config.sub, config/mkstamp: ...to
here, respectively.
* libtool.m4, ltdl.m4: Moved from here...
* m4/libtool.m4, m4/ltdl.m4: ...to here, respectively.
* configure.ac: Removed various acinclude.m4 hackery, as these
files are no longer needed with automake 1.8.
* Makefile.am: Removed various acinclude.m4 hackery, as these
files are no longer needed with automake 1.8.
(AUTOMAKE_OPTIONS): Require CVS automake.
(CONF_SUBDIRS, CFLAGS, CPPFLAGS, LDFLAGS, LIBS, FFLAGS, FLIBS):
Automake now makes a Make variable from every AC_SUBST, so these
are NOP.
(aclocal_macros): These files are now in their own m4 subdir.
Changed all clients.
(EXTRA_DIST): mkstamp has moved to the new config subdir. Changed
all clients.
(pkgdata_SCRIPTS): Ditto wrt config.guess and config.sub.
(pkgdata_DATA): Ditto wrt ltmain.sh.
* f77demo/configure.ac, libltdl/configure.ac (AM_CONFIG_HEADER):
Is deprecated in favour of AC_CONFIG_HEADERS. Updated to the
latter.
* Makefile.am, cdemo/Makefile.am, demo/Makefile.am,
depdemo/Makefile.am, f77demo/Makefile.am, mdemo/Makefile.am,
mdemo2/Makefile.am, pdemo/Makefile.am, tagdemo/Makefile.am
(EXTRA_DIST): Remove acinclude.m4.
(ACLOCAL_AMFLAGS): Search new `m4' macro directory.
* configure.ac, cdemo/configure.ac, demo/configure.ac,
depdemo/configure.ac, f77demo/configure.ac, mdemo/configure.ac,
mdemo2/configure.ac, pdemo/configure.ac, tagdemo/configure.ac
(AC_CONFIG_AUX_DIR): Declare that config helper scripts are now
kept in the new config subdir.
* libltdl/configure.ac (AC_CONFIG_AUX_DIR): Removed. Defaults to
`.' anyway.
2003-09-25 19:22:29 +08:00
|
|
|
|
2003-10-15 17:27:54 +08:00
|
|
|
# Running the installed `libtoolize' will trash the local (newer) libtool.m4
|
|
|
|
# among others. Call the dummy script we made earlier.
|
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
|
|
|
LIBTOOLIZE=`pwd`/$auxdir/libtoolize
|
2003-10-15 17:27:54 +08:00
|
|
|
export LIBTOOLIZE
|
|
|
|
|
2003-10-20 21:45:51 +08:00
|
|
|
for sub in $reconfdirs; do
|
2005-03-15 20:58:40 +08:00
|
|
|
$AUTORECONF --force --verbose --install $sub
|
* bootstrap: Rewritten to use autoreconf.
* config.guess, config.sub, mkstamp: Moved from here...
* config/config.guess, config/config.sub, config/mkstamp: ...to
here, respectively.
* libtool.m4, ltdl.m4: Moved from here...
* m4/libtool.m4, m4/ltdl.m4: ...to here, respectively.
* configure.ac: Removed various acinclude.m4 hackery, as these
files are no longer needed with automake 1.8.
* Makefile.am: Removed various acinclude.m4 hackery, as these
files are no longer needed with automake 1.8.
(AUTOMAKE_OPTIONS): Require CVS automake.
(CONF_SUBDIRS, CFLAGS, CPPFLAGS, LDFLAGS, LIBS, FFLAGS, FLIBS):
Automake now makes a Make variable from every AC_SUBST, so these
are NOP.
(aclocal_macros): These files are now in their own m4 subdir.
Changed all clients.
(EXTRA_DIST): mkstamp has moved to the new config subdir. Changed
all clients.
(pkgdata_SCRIPTS): Ditto wrt config.guess and config.sub.
(pkgdata_DATA): Ditto wrt ltmain.sh.
* f77demo/configure.ac, libltdl/configure.ac (AM_CONFIG_HEADER):
Is deprecated in favour of AC_CONFIG_HEADERS. Updated to the
latter.
* Makefile.am, cdemo/Makefile.am, demo/Makefile.am,
depdemo/Makefile.am, f77demo/Makefile.am, mdemo/Makefile.am,
mdemo2/Makefile.am, pdemo/Makefile.am, tagdemo/Makefile.am
(EXTRA_DIST): Remove acinclude.m4.
(ACLOCAL_AMFLAGS): Search new `m4' macro directory.
* configure.ac, cdemo/configure.ac, demo/configure.ac,
depdemo/configure.ac, f77demo/configure.ac, mdemo/configure.ac,
mdemo2/configure.ac, pdemo/configure.ac, tagdemo/configure.ac
(AC_CONFIG_AUX_DIR): Declare that config helper scripts are now
kept in the new config subdir.
* libltdl/configure.ac (AC_CONFIG_AUX_DIR): Removed. Defaults to
`.' anyway.
2003-09-25 19:22:29 +08:00
|
|
|
done
|
2001-06-29 06:49:20 +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
|
|
|
# Autoheader valiantly tries to prevent needless reconfigurations by
|
|
|
|
# not changing the timestamp of config-h.in unless the file contents
|
|
|
|
# are updated. Unfortunately config-h.in depends on aclocal.m4 which
|
|
|
|
# *is* updated, so running 'libtoolize --ltdl=. && configure && make'
|
|
|
|
# causes autoheader to be called... undesireable for users that do not
|
|
|
|
# have it! Fudge the timestamp to prevent that:
|
|
|
|
sleep 2 && touch libltdl/config-h.in
|
|
|
|
|
My thanks to Alexandre Duret-Lutz <adl@gnu.org> for the insight
required to write this changeset -- especially that ltmain.sh is
the same on any machine for a given release, which I hadn't
noticed for some bizarre reason: It turns out that generating
distributed files from configure causes no end of hassle, as
evidenced by the many patches I've generated over the last few
days to try and get the dist and distcheck make rules to work.
Instead of all that hair, we now simply generate our distributed
files (now including ltmain.sh) with make rules -- and since
automake creates make variables for all AC_SUBSTs, that is really
easy. The code looks a lot more like automake and autoconf
Makefile.ams now, and doesn't have all the rough edges the earlier
hacky solution suffered from. We still generate libtool from
config.status, but that is not a distributed file, and doesn't
break the golden rule. Besides, there is way more going on there
than a bunch of substitutions:
* Makefile.am (edit): New common sed substitutions for files now
generated by make instead of config.status.
(CLEANFILES): Clean new tmp files.
(EXTRA_DIST): Add ltmain.sh.
(vcl-tmp): Reinstated.
(m4/ltversion.m4, config/ltmain.sh): New rules. Generate from
here instead of config.status.
(libtoolize): Ditto.
(libtool): Call config.status to regenerate if necessary.
(dist-hook): Removed.
* config/ltmain.in: Moved here from top_srcdir.
* README-alpha: Update instructions to check AS_SHELL_SANITIZE is
up to date.
* bootstrap: Rewritten. Generate m4/ltversion.m4 and
config/ltmain.sh because configure depends on them.
* configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that
ltmain.in has moved.
(AC_CONFIG_FILES): Don't generate distributed files,
config/ltmain.sh and libtoolize from config.status. We have make
rules to do that now.
2004-07-31 07:02:39 +08:00
|
|
|
# Remove our dummy libtoolize
|
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
|
|
|
rm -f $auxdir/libtoolize
|
1999-05-21 01:54:09 +08:00
|
|
|
|
My thanks to Alexandre Duret-Lutz <adl@gnu.org> for the insight
required to write this changeset -- especially that ltmain.sh is
the same on any machine for a given release, which I hadn't
noticed for some bizarre reason: It turns out that generating
distributed files from configure causes no end of hassle, as
evidenced by the many patches I've generated over the last few
days to try and get the dist and distcheck make rules to work.
Instead of all that hair, we now simply generate our distributed
files (now including ltmain.sh) with make rules -- and since
automake creates make variables for all AC_SUBSTs, that is really
easy. The code looks a lot more like automake and autoconf
Makefile.ams now, and doesn't have all the rough edges the earlier
hacky solution suffered from. We still generate libtool from
config.status, but that is not a distributed file, and doesn't
break the golden rule. Besides, there is way more going on there
than a bunch of substitutions:
* Makefile.am (edit): New common sed substitutions for files now
generated by make instead of config.status.
(CLEANFILES): Clean new tmp files.
(EXTRA_DIST): Add ltmain.sh.
(vcl-tmp): Reinstated.
(m4/ltversion.m4, config/ltmain.sh): New rules. Generate from
here instead of config.status.
(libtoolize): Ditto.
(libtool): Call config.status to regenerate if necessary.
(dist-hook): Removed.
* config/ltmain.in: Moved here from top_srcdir.
* README-alpha: Update instructions to check AS_SHELL_SANITIZE is
up to date.
* bootstrap: Rewritten. Generate m4/ltversion.m4 and
config/ltmain.sh because configure depends on them.
* configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that
ltmain.in has moved.
(AC_CONFIG_FILES): Don't generate distributed files,
config/ltmain.sh and libtoolize from config.status. We have make
rules to do that now.
2004-07-31 07:02:39 +08:00
|
|
|
# These files can cause an infinite configure loop if left behind.
|
2004-02-13 05:57:07 +08:00
|
|
|
rm -f Makefile libltdl/Makefile libtool vcl.tmp
|
1998-12-20 18:26:52 +08:00
|
|
|
|
2004-09-03 16:10:21 +08:00
|
|
|
# This file is misgenerated earlier in bootstrap to satisfy automake 1.9.1
|
|
|
|
# and earlier, but has a new enough timestamp to not be updated. Force it
|
|
|
|
# to be regenerated at make-time with proper substitutions in place:
|
2005-08-23 19:14:55 +08:00
|
|
|
touch $auxdir/ltmain.m4sh
|
2004-09-03 16:10:21 +08:00
|
|
|
|
2004-10-09 05:56:10 +08:00
|
|
|
# Commit script caveat:
|
2005-08-23 19:14:55 +08:00
|
|
|
cat <<EOF
|
|
|
|
WARNING: You might want to regenerate \`commit' and \`$auxdir/mailnotify'
|
|
|
|
WARNING: after you have run \`configure' to discover the real whereabouts
|
|
|
|
WARNING: of \`sed', \`grep' etc. like this:
|
2004-10-09 05:56:10 +08:00
|
|
|
WARNING:
|
2005-08-23 19:14:55 +08:00
|
|
|
WARNING: rm -f commit $auxdir/mailnotify
|
2005-09-05 14:21:48 +08:00
|
|
|
WARNING: make -f Makefile.maint ./commit ./$auxdir/mailnotify
|
2004-10-09 05:56:10 +08:00
|
|
|
EOF
|
|
|
|
|
1998-11-02 16:34:05 +08:00
|
|
|
exit 0
|