[RFC] Update to current automake/autoconf/libtool versions (take 2)

Klee Dienes
2003-01-12T10:32:01Z

[-- Attachment #1: Type: text/plain, Size: 1259 bytes --]

The following is the current state-of-the art of my autoconf-2.5x
conversion of the gcc/gdb/binutils repositories. It updates the
following directories:

common: libiberty
src: bfd binutils gas gdb gprof ld mmalloc opcodes rda sim utils
gcc: boehm-gc fastjar gcc libf2c libffi libjava libobjc libstdc++-v3
zlib

It does *not* update the following directories:

common: include texinfo config etc contrib
src: blt cgen cpu dejagnu expect intl itcl iwidgets libgloss libgui
newlib readline tcl tk winsup sid"
gcc: libbanshee libchill libio libmudflap libstdc++"

I used the following versions of the various tools:

libtool: 1.4e (top-of-tree, with the attached patch)
autoconf: 2.57 (with the attached patch)
automake: 1.7.2
gettext: 0.11.5
autogen: 5.5

The attached archive contains the following files:

ChangeLog:
setup.sh: Script to convert to autotools-2.5x and build an uberbaum
tree
autoconf.txt: Fixes to autoconf-2.57 required by this patch.
common-diffs.txt Patches to directories shared by 'src' and gcc.
gcc-diffs.txt Patches to the gcc directories.
libtool-diffs.txt Patch to libtool-1.4e required by this patch.
src-diffs.txt Patches to the 'src' directories.
top-diffs.txt Patches to top-level files in both 'src' and gcc.

[-- Attachment #2: ChangeLog --]
[-- Type: application/octet-stream, Size: 10205 bytes --]

.
2003-01-07 Klee Dienes <kdienes@apple.com>

* configure.in: Allow AS_FOR_TARGET explicitly, to avoid confusing
automake (which thinks it's a macro).
Use $target, $build, and $host to get canonical tuples, rather
than $target_alias, $build_alias, and $host_alias. Don't pass
--cache= arguments to sub-configures (they'll default to not using
a cache file).
(baseargs): Strip quotes from single-quoted strings in
ac_configure_args.
(libstdcxx_flags): Assume that testsuite_flags will not prepend a
space; always have a single space between arguments, even if
testsuite_flags returns an empty string.

* config.if: Use $target, $build, and $host to get canonical
tuples, rather than $target_alias, $build_alias, and $host_alias.

* Makefile.tpl: Echo the sub-configures before executing them.
Pass LDFLAGS to sub-makes via the environment.

* .cvsignore: Add autom4te.cache.

libiberty
2003-01-07 Klee Dienes <kdienes@apple.com>

* aclocal.m4: Use AC_LIBOBJ instead of setting LIBOBJS directly.
Use _AC_LANG_COMPILER_GNU and $ac_cv_XXX_compiler_gnu instead of
AC_PROG_CC_GNU and $ac_cv_prog_gcc. Call _AC_COMPILER_OBJEXT to
get the object file extension. Use _AC_PROG_CC_G instead of
AC_PROG_CC_G. Wrap LIB_AC_PROG_CC and LIB_AC_PROG_CXX with
AC_LANG_PUSH.
* configure.in: Use AC_LIBOBJ instead of setting LIBOBJS directly.

newlib
2003-01-07 Klee Dienes <kdienes@apple.com>

* acinclude.m4: Use _AC_LANG_COMPILER_GNU and
$ac_cv_XXX_compiler_gnu instead of AC_PROG_CC_GNU and
$ac_cv_prog_gcc. Call _AC_COMPILER_OBJEXT to get the object file
extension. Use _AC_PROG_CC_G instead of AC_PROG_CC_G. Wrap
LIB_AC_PROG_CC and LIB_AC_PROG_CXX with AC_LANG_PUSH.

* configure.in: Add description strings to AC_DEFINE_UNQUOTED calls.

bfd
2003-01-07 Klee Dienes <kdienes@apple.com>

* acinclude.m4: Remove include of libtool.m4.
* configure.in: Use AC_DISABLE_SHARED and AC_PROG_LIBTOOL
instead of the AM_ versions.

binutils
2003-01-07 Klee Dienes <kdienes@apple.com>

* Makefile.am (YLWRAP): Refer to the top-level ylwrap.
* acinclude.m4: Remove include of libtool.m4.
* configure.in: Use AC_PROG_LEX instead of AM_PROG_LEX.
(EMULATION): Use $target, not $target_alias.

gas
2003-01-07 Klee Dienes <kdienes@apple.com>

* Makefile.am: Update to new ylwrap calling conventions.
* acinclude.m4: Remove include of libtool.m4.
* configure.in: Pass explicit value to AC_CONFIG_FILES, not
${GDBINIT}. Use AC_CONFIG_FILES, AC_CONFIG_COMMANDS, and
AC_OUTPUT, not the multi-argument AC_OUTPUT. Use a fixed pathname
in AC_CONFIG_AUX_DIR; modify ac_aux_dir explicitly to contain the
computed pathname.

gdb
2003-01-07 Klee Dienes <kdienes@apple.com>

* Makefile.in: Update to new ylwrap calling conventions.
* configure.in: Pass description string to AC_DEFINE.

gdb/testsuite
2003-01-07 Klee Dienes <kdienes@apple.com>

* gdb.hp/gdb.objdbg/configure.in: Remove objdbg0* from
AC_CONFIG_SUBDIRS.

gprof
2003-01-07 Klee Dienes <kdienes@apple.com>

* acinclude.m4: Remove include of libtool.m4.

ld
2003-01-07 Klee Dienes <kdienes@apple.com>

* Makefile.am (YLWRAP): Refer to the top-level ylwrap.
* acinclude.m4: Remove include of libtool.m4.

opcodes
2003-01-07 Klee Dienes <kdienes@apple.com>

* acinclude.m4: Remove include of libtool.m4.

rda
2003-01-07 Klee Dienes <kdienes@apple.com>

* configure.in: Use AC_PROG_LIBTOOL instead of AM_PROG_LIBTOOL.

rda/lib
2003-01-07 Klee Dienes <kdienes@apple.com>

* lib/Makefile.am: Remove noinst_LIBRARIES and librda_a_SOURCES
(it's not possible to specify both a libtool version and a
non-libtool version using the same object files).

rda/unix
2003-01-07 Klee Dienes <kdienes@apple.com>

* unix/configure.in: Pass description strings to AC_DEFINE.
Use AC_PROG_LIBTOOL instead of AM_PROG_LIBTOOL.

rda/win32
2003-01-07 Klee Dienes <kdienes@apple.com>

* win32/configure.in: Pass description strings to AC_DEFINE.
Remove spurious check for "foo.h".

utils
2003-01-07 Klee Dienes <kdienes@apple.com>

* configure.in: Call AC_PROG_CC to make sure that LDFLAGS is
propagated properly.

sim/common
2003-01-07 Klee Dienes <kdienes@apple.com>

* Make-common.in: Pass arguments to config.status rather than using
CONFIG_FILES.
* aclocal.m4: Pass description strings to AC_DEFINE. Use
a fixed pathname in AC_CONFIG_AUX_DIR; modify ac_aux_dir
explicitly to contain the computed pathname. Use AC_CONFIG_FILES,
AC_CONFIG_COMMANDS, and AC_OUTPUT, not the multi-argument
AC_OUTPUT.
* configure.in: Use a fixed pathname in AC_CONFIG_AUX_DIR; modify
ac_aux_dir explicitly to contain the computed pathname.

sim/XXX
2003-01-07 Klee Dienes <kdienes@apple.com>

* configure.in: Add call to AC_CONFIG_AUX_DIR.

libobjc
2003-01-07 Klee Dienes <kdienes@apple.com>

* configure.in: Add call to AC_NO_EXECUTABLES.
* Makefile.in (toplevel_srcdir): Use top_srcdir/toprel, not
toplevel_srcdir.
* acinclude.m4: Export toprel directly, rather than a quoted
reference to top_srcdir. Use srcdir/toprel in AC_CONFIG_AUX_DIR,
not top_srcdir/toprel. Use _AC_LANG_COMPILER_GNU and
$ac_cv_XXX_compiler_gnu instead of AC_PROG_CC_GNU and
$ac_cv_prog_gcc. Call _AC_COMPILER_OBJEXT to get the object file
extension. Use _AC_PROG_CC_G instead of AC_PROG_CC_G. Wrap
LIB_AC_PROG_CC and LIB_AC_PROG_CXX with AC_LANG_PUSH. Remove
include of libtool.m4.

libf2c
2003-01-07 Klee Dienes <kdienes@apple.com>

* acinclude.m4: Export toprel directly, rather than a quoted
reference to top_srcdir. Use srcdir/toprel in AC_CONFIG_AUX_DIR,
not top_srcdir/toprel. Use _AC_LANG_COMPILER_GNU and
$ac_cv_XXX_compiler_gnu instead of AC_PROG_CC_GNU and
$ac_cv_prog_gcc. Call _AC_COMPILER_OBJEXT to get the object file
extension. Use _AC_PROG_CC_G instead of AC_PROG_CC_G. Wrap
LIB_AC_PROG_CC and LIB_AC_PROG_CXX with AC_LANG_PUSH. Remove
include of libtool.m4. Move gcc_version_trigger code into
configure.in.
* Makefile.in: Use top_srcdir/toprel, not toplevel_srcdir.
* libF77/configure.in: Use AC_NO_EXECUTABLES.
* libI77/configure.in: Use AC_NO_EXECUTABLES.
* libU77/configure.in: Use AC_NO_EXECUTABLES.
* libf2c/configure.in: Use AC_NO_EXECUTABLES. Move the subdir
code to the top of configure.in. Move gcc_version_code from
aclocal.m4. Reference srcdir/toprel, not toplevel_srcdir.

boehm-gc
2003-01-07 Klee Dienes <kdienes@apple.com>

* Makefile.am: Define CCAS and CCASFLAGS to pacify automake.
Remove test.o hack. Specify gctest_SOURCES, not gctest_OBJECTS.
Remove duplicate setting for AM_CFLAGS.
* acinclude.m4: Use _AC_LANG_COMPILER_GNU and
$ac_cv_XXX_compiler_gnu instead of AC_PROG_CC_GNU and
$ac_cv_prog_gcc. Call _AC_COMPILER_OBJEXT to get the object file
extension. Use _AC_PROG_CC_G instead of AC_PROG_CC_G. Wrap
LIB_AC_PROG_CC and LIB_AC_PROG_CXX with AC_LANG_PUSH.
* configure.in: Move call to AM_PROG_LIBTOOL.

fastjar
2003-01-07 Klee Dienes <kdienes@apple.com>

* Use =, not +=, to set my_makei_flags.

libffi
2003-01-07 Klee Dienes <kdienes@apple.com>

* Makefile.am: Define CCAS and CCASFLAGS to pacify automake.
Specify ffitest_SOURCES, not ffitest_OBJECTS. Remove duplicate
setting for AM_CFLAGS. Add TARGET_OBJ_XXX, corresponding to
TARGET_SRC_XXX. Remove the if @TARGET@ constructs; replace with
libffi_la_{SOURCES,LIBADD,DEPENDENCIES}. Add '-I.' to INCLUDES.
* configure.in: Replace AM_CONFIG_HEADER with AC_CONFIG_HEADER.
Use a fixed pathname in AC_CONFIG_AUX_DIR; modify ac_aux_dir
explicitly to contain the computed pathname. Use AC_CONFIG_FILES,
AC_CONFIG_COMMANDS, and AC_OUTPUT, not the multi-argument
AC_OUTPUT.
* acinclude.m4: Remove include of libtool.m4.

libjava
2003-01-07 Klee Dienes <kdienes@apple.com>

* acinclude.m4: Remove AC_CANONICAL_SYSTEM. Use
_AC_LANG_COMPILER_GNU and $ac_cv_XXX_compiler_gnu instead of
AC_PROG_CC_GNU and $ac_cv_prog_gcc. Call _AC_COMPILER_OBJEXT to
get the object file extension. Use _AC_PROG_CC_G instead of
AC_PROG_CC_G. Wrap LIB_AC_PROG_CC and LIB_AC_PROG_CXX with
AC_LANG_PUSH. Remove include of libtool.m4.

* configure.in: Add GCJ-style dependencies. Call
AC_CONFIG_SUBDIRS for libltdl explicitly, not via $DIRLTDL.
Replace AC_LANG_SAVE with AC_LANG_PUSH. Call AM_PROJ_GCJ.
* Makefile.am: Move ##-style comments out of rules and variable
definitions.
(INCLUDES): Add '-I.'.
(nat_source_files): Rename the gcj natStringBuffer.cc to
natStringBufferg.cc, to prevent a conflict with the one from
java/lang.

libstdc++-v3
2003-01-07 Klee Dienes <kdienes@apple.com>

* acinclude.m4: Use a fixed pathname in AC_CONFIG_AUX_DIR; modify
ac_aux_dir explicitly to contain the computed pathname. Remove
"just to satisfy automake" AC_CONFIG_AUX_DIR hack. Use
_AC_LANG_COMPILER_GNU and $ac_cv_XXX_compiler_gnu instead of
AC_PROG_CC_GNU and $ac_cv_prog_gcc. Call _AC_COMPILER_OBJEXT to
get the object file extension. Use _AC_PROG_CC_G instead of
AC_PROG_CC_G. Wrap LIB_AC_PROG_CC and LIB_AC_PROG_CXX with
AC_LANG_PUSH. Remove include of libtool.m4. Move AM_CONDITIONAL
calls to configure.in.
* configure.in: Move AM_CONDITIONAL_CALLS from acinclude.m4.
* libsupc++/Makefile.am (GCC_INCLUDES): Add '-I..'.

zlib
2003-01-07 Klee Dienes <kdienes@apple.com>

* acinclude.m4: Use _AC_LANG_COMPILER_GNU and
$ac_cv_XXX_compiler_gnu instead of AC_PROG_CC_GNU and
$ac_cv_prog_gcc. Call _AC_COMPILER_OBJEXT to get the object file
extension. Use _AC_PROG_CC_G instead of AC_PROG_CC_G. Wrap
LIB_AC_PROG_CC and LIB_AC_PROG_CXX with AC_LANG_PUSH. Remove
include of libtool.m4.
* configure.in: Add call to AC_NO_EXECUTABLES.
gcc
2003-01-07 Klee Dienes <kdienes@apple.com>

* aclocal.m4: Define AM_GNU_GETTEXT_VERSION as empty function.
* configure.in: Call AM_GNU_GETTEXT_VERSION, to pacify automake.

fastjar
2003-01-07 Klee Dienes <kdienes@apple.com>

* configure.in: Use libtool variant of zlib.
* acinclude.m4: Use _AC_LANG_COMPILER_GNU and
$ac_cv_XXX_compiler_gnu instead of AC_PROG_CC_GNU and
$ac_cv_prog_gcc. Call _AC_COMPILER_OBJEXT to get the object file
extension. Use _AC_PROG_CC_G instead of AC_PROG_CC_G. Wrap
LIB_AC_PROG_CC and LIB_AC_PROG_CXX with AC_LANG_PUSH. Remove
include of libtool.m4.

[-- Attachment #3: Type: text/plain, Size: 2 bytes --]

[-- Attachment #4: autoconf-diffs.tar.gz --]
[-- Type: application/x-gzip, Size: 25776 bytes --]

[-- Attachment #5: Type: text/plain, Size: 936 bytes --]

To run, first read through setup.sh, and make sure it won't do anything
you don't want it to do on your system. Then set the values of
src_gcc, src_src, and dst_root, and run setup.sh. The script will
rsync the checked-out gcc and src sources into a new directory, apply
the patches, and run autoreconf on all the appropriate directories.

I've built directory on i386-unknown-linux-gnu native, targetted to
powerpc-unknown-linux-gnu, and natively on i686-pc-cygwin (I got some
errors building winsup on cygwin, but they were the same errors I got
from the unmodified sources). I've *not* run extensive tests on the
resulting builds --- I'm willing to do that, but it seemed a bit early
at this stage.

I did not attempt to make the patches compatible with both
autoconf-2.13 and autoconf-2.5x --- I suspect that would be a
significant challenge, and converting to automake-1.7 and autoconf-2.5x
was difficult enough.