- Support for automatic de-ANSI-fication has been removed.
+ - The support for the "obscure" multilib feature has been removed
+ from Automake core (but remains available in the 'contrib/'
+ directory of the Automake distribution).
+
- Support for ".log -> .html" conversion and the check-html and
recheck-html targets has been removed from Automake core (but
remains available in the 'contrib/' directory of the Automake
distribution).
- - The support for the "obscure" multilib feature has been deprecated,
- and will be moved out of the automake core in the next major Automake
- release (1.12).
-
- The deprecated `lzma' compression format for distribution archives
has been removed, in favor of `xz' and `lzip'.
# Where version is defined.
my $package_version_location;
-# TRUE if we've seen AM_ENABLE_MULTILIB.
-my $seen_multilib = 0;
-
# TRUE if we've seen AM_PROG_AR
my $seen_ar = 0;
}
}
-# Handle multilib support.
-sub handle_multilib
-{
- if ($seen_multilib && $relative_dir eq '.')
- {
- $output_rules .= &file_contents ('multilib', new Automake::Location);
- push (@all, 'all-multi');
- }
-}
-
# user_phony_rule ($NAME)
# -----------------------
AC_SUBST_TRACE => 1,
AM_AUTOMAKE_VERSION => 1,
AM_CONDITIONAL => 2,
- AM_ENABLE_MULTILIB => 0,
AM_GNU_GETTEXT => 0,
AM_GNU_GETTEXT_INTL_SUBDIR => 0,
AM_INIT_AUTOMAKE => 0,
{
$configure_cond{$args[1]} = $where;
}
- elsif ($macro eq 'AM_ENABLE_MULTILIB')
- {
- $seen_multilib = $where;
- }
elsif ($macro eq 'AM_GNU_GETTEXT')
{
$seen_gettext = $where;
define_pretty_variable ('DIST_SOURCES', TRUE, INTERNAL, @dist_sources);
}
- handle_multilib;
handle_texinfo;
handle_emacs_lisp;
handle_python;
EXTRA_DIST = \
check-html.am \
+ multilib/README \
+ multilib/config-ml.in \
+ multilib/symlink-tree \
+ multilib/multilib.am \
multilib/multi.m4 \
README
--- /dev/null
+Minimal support for multilib builds.
+
+For a little more information, see:
+<http://airs.com/ian/configure/configure_8.html>
+
+The master (and probably more up-to-date) copies of the 'config-ml.in'
+and 'symlink-tree' files are maintained in the GCC development tree
+at <http://gcc.gnu.org/svn.html>. The same is probably true also for
+the 'multi.m4' file.
--- /dev/null
+## automake - create Makefile.in from Makefile.am
+
+## Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+## 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+## Foundation, Inc.
+## This Makefile.in is free software; the Free Software Foundation
+## gives unlimited permission to copy and/or distribute it,
+## with or without modifications, as long as this notice is preserved.
+
+## 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.
+
+MULTISRCTOP =
+MULTIBUILDTOP =
+MULTIDIRS =
+MULTISUBDIR =
+MULTIDO = true
+MULTICLEAN = true
+
+# GNU Make needs to see an explicit $(MAKE) variable in the command it
+# runs to enable its job server during parallel builds. Hence the
+# comments below.
+all-multi:
+ $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
+install-multi:
+ $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
+mostlyclean-multi:
+ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
+clean-multi:
+ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
+distclean-multi:
+ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
+maintainer-clean-multi:
+ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE)
+
+.MAKE .PHONY: all-multi clean-multi distclean-multi install-am \
+ install-multi maintainer-clean-multi mostlyclean-multi
+
+install-exec-local: install-multi
+
+all-local: all-multi
+mostlyclean-local: mostlyclean-multi
+clean-local: clean-multi
+distclean-local: distclean-multi
+maintainer-clean-local: maintainer-clean-multi
* Tags:: Interfacing to cscope, etags and mkid
* Suffixes:: Handling new file extensions
-* Multilibs:: Support for multilibs (deprecated, soon to be removed).
Conditionals
@url{http://savannah.gnu.org/git/?group=config} before making a
release.
-@item config-ml.in
-This file is not a program, it is a @file{configure} fragment used for
-multilib support (@pxref{Multilibs}). Since the Automake multilib
-support has been @emph{deprecated} and targeted for removal, this
-file is going to be @emph{removed from the Automake core} in the next
-major release. The master copy of this file is maintained in the GCC
-tree at @url{http://gcc.gnu.org/svn.html}.
-
@item depcomp
This program understands how to run a compiler so that it will
generate not only the desired output but also dependency information
@item py-compile
This is used to byte-compile Python scripts.
-@item symlink-tree
-This program duplicates a tree of directories, using symbolic links
-instead of copying files. Such an operation is performed when building
-multilibs (@pxref{Multilibs}). Since the Automake multilib support has
-been @emph{deprecated} and targeted for removal, this file is going to
-be @emph{removed from the Automake core} in the next major release.
-The master copy of this file is maintained in the GCC tree at
-@url{http://gcc.gnu.org/svn.html}.
-
@item test-driver
This implements the default test driver offered by the parallel
testsuite harness.
@table @code
-@item AM_ENABLE_MULTILIB
-@acindex AM_ENABLE_MULTILIB
-
-This is used when a ``multilib'' library is being built. Please be
-aware that multilib support @emph{will be removed} from the Automake
-core in the next major release, and then @emph{this macro will go away
-as well} (even if a ``frozen'' version of will remain available in the
-@file{contrib/} directory of the Automake distribution).
-
-The first optional argument is the name of the @file{Makefile} being
-generated; it defaults to @samp{Makefile}. The second optional argument
-is used to find the top source directory; it defaults to the empty
-string (generally this should not be used unless you are familiar with
-the internals). @xref{Multilibs}.
-
@item AM_INIT_AUTOMAKE([OPTIONS])
@itemx AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
@acindex AM_INIT_AUTOMAKE
@menu
* Tags:: Interfacing to cscope, etags and mkid
* Suffixes:: Handling new file extensions
-* Multilibs:: Support for multilibs (deprecated, soon to be removed).
@end menu
@code{SUFFIXES} go at the start of the generated suffixes list, followed
by Automake generated suffixes not already in the list.
-@node Multilibs
-@section Support for Multilibs (deprecated, soon to be removed).
-
-Automake used to support an obscure feature called multilibs. @emph{This
-feature is now deprecated, and will be removed in the next major Automake
-version}. Still, its implementation will remain available in the
-@file{contrib/} directory of the Automake distribution, so it should be
-very easy for motivated users to continue to use it in their projects,
-if they really need to.
-
-A @dfn{multilib} is a library that is built for multiple different ABIs
-at a single time; each time the library is built with a different target
-flag combination. This is only useful when the library is intended to
-be cross-compiled, and it is almost exclusively used for compiler
-support libraries.
-
@node Include
@chapter Include
@c LocalWords: AUX var symlink deps Wno Wnone package's aclocal's distclean
@c LocalWords: ltmain xref LIBSOURCE LIBSOURCES LIBOBJ MEMCMP vs RANLIB CXX
@c LocalWords: LDFLAGS LIBTOOL libtool XTRA LIBS gettext's acdir APIVERSION
-@c LocalWords: dirlist noindent usr MULTILIB multilib Multilibs TIOCGWINSZ sc
+@c LocalWords: dirlist noindent usr TIOCGWINSZ sc
@c LocalWords: GWINSZ termios SRCDIR tarball bzip LISPDIR lispdir XEmacs CCAS
@c LocalWords: emacsen MicroEmacs CCASFLAGS UX GCJ gcj GCJFLAGS posix DMALLOC
@c LocalWords: dmalloc ldmalloc REGEX regex DEPDIR DEP DEFUN aclocaldir fi
@c LocalWords: distdir distcheck distcleancheck listfiles distuninstallcheck
@c LocalWords: VPATH tarfile stdout XFAIL DejaGnu dejagnu DEJATOOL runtest ln
@c LocalWords: RUNTESTDEFAULTFLAGS toolchain RUNTESTFLAGS asis readme DVIPS
-@c LocalWords: installcheck gzipped tarZ std utils etags mkid multilibbing cd
+@c LocalWords: installcheck gzipped tarZ std utils etags mkid cd
@c LocalWords: ARGS taggable ETAGSFLAGS lang ctags CTAGSFLAGS GTAGS gtags idl
@c LocalWords: foocc doit idlC multilibs ABIs cmindex defmac ARG enableval FC
@c LocalWords: MSG xtrue DBG pathchk CYGWIN afile proglink versioned CVS's TE
SUBDIRS = Automake am
-dist_pkgvdata_DATA = COPYING INSTALL texinfo.tex config-ml.in
+dist_pkgvdata_DATA = \
+ COPYING \
+ INSTALL \
+ texinfo.tex
## These must all be executable when installed. However, if we use
## _SCRIPTS, then the program transform will be applied, which is not
depcomp \
compile \
py-compile \
- symlink-tree \
ar-lib \
test-driver \
tap-driver.sh \
ltlibrary.am \
mans-vars.am \
mans.am \
-multilib.am \
program.am \
progs.am \
python.am \
+++ /dev/null
-## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1998, 2001, 2003, 2004 Free Software Foundation, Inc.
-
-## 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, 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. If not, see <http://www.gnu.org/licenses/>.
-## Multilib support variables.
-MULTISRCTOP =
-MULTIBUILDTOP =
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-
-# GNU Make needs to see an explicit $(MAKE) variable in the command it
-# runs to enable its job server during parallel builds. Hence the
-# comments below.
-
-all-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
-install-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
-
-.MAKE .PHONY: all-multi install-multi
-
-
-mostlyclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
-distclean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
-maintainer-clean-multi:
- $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE)
-
-.MAKE .PHONY: mostlyclean-multi clean-multi distclean-multi maintainer-clean-multi
-
-install-exec-am: install-multi
-## No uninstall rule?
-
-
-## These cleaning rules are recursive. They should not be
-## registered as dependencies of *-am rules. For instance
-## otherwise running `make clean' would cause both
-## clean-multi and mostlyclean-multi to be run, while only
-## clean-multi is really expected (since clean-multi recursively
-## call clean, it already do the job of mostlyclean).
-mostlyclean: mostlyclean-multi
-clean: clean-multi
-distclean: distclean-multi
-maintainer-clean: maintainer-clean-multi
minuso.m4 \
missing.m4 \
mkdirp.m4 \
-multi.m4 \
obsol-gt.m4 \
obsol-lt.m4 \
obsolete.m4 \
+++ /dev/null
-## -*- Autoconf -*-
-# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2011,
-# 2012 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# AM_ENABLE_MULTILIB([MAKEFILE], [REL-TO-TOP-SRCDIR])
-# ---------------------------------------------------
-# Add --enable-multilib to configure.
-AC_DEFUN([AM_ENABLE_MULTILIB],
-[m4_warn([obsolete], [$0 will be removed from Automake core soon.
-Files implementing the "multilib" feature are (and will remain) available
-to the 'contrib/' directory in the Automake distribution.])]dnl
-[# Default to --enable-multilib
-AC_ARG_ENABLE([multilib],
-[AS_HELP_STRING(
- [--enable-multilib],
- [build many library versions (default)])],
-[case "$enableval" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) AC_MSG_ERROR([bad value $enableval for multilib option]) ;;
- esac],
- [multilib=yes])
-
-# We may get other options which we leave undocumented:
-# --with-target-subdir, --with-multisrctop, --with-multisubdir
-# See config-ml.in if you want the gory details.
-
-if test "$srcdir" = "."; then
- if test "$with_target_subdir" != "."; then
- multi_basedir="$srcdir/$with_multisrctop../$2"
- else
- multi_basedir="$srcdir/$with_multisrctop$2"
- fi
-else
- multi_basedir="$srcdir/$2"
-fi
-AC_SUBST([multi_basedir])
-
-# Even if the default multilib is not a cross compilation,
-# it may be that some of the other multilibs are.
-if test $cross_compiling = no && test $multilib = yes \
- && test "x${with_multisubdir}" != x ; then
- cross_compiling=maybe
-fi
-
-AC_OUTPUT_COMMANDS([
-# Only add multilib support code if we just rebuilt the top-level
-# Makefile.
-case " $CONFIG_FILES " in
- *" ]m4_default([$1],Makefile)[ "*)
- ac_file=]m4_default([$1],Makefile)[ . ${multi_basedir}/config-ml.in
- ;;
-esac],
- [
-srcdir="$srcdir"
-host="$host"
-target="$target"
-with_multisubdir="$with_multisubdir"
-with_multisrctop="$with_multisrctop"
-with_target_subdir="$with_target_subdir"
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-multi_basedir="$multi_basedir"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-CC="$CC"])])dnl
#! /bin/sh
-# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc.
#
# 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
# Make sure that our macro `AM_ENABLE_MULTILIB' adds proper text to
# the configure help screen.
+# FIXME: the features tested by this script has been moved in contrib.
+# FIXME: We should move this script accordingly.
. ./defs || Exit 1
AM_ENABLE_MULTILIB
END
-$ACLOCAL
+cat "$top_testsrcdir"/contrib/multilib/multi.m4 > aclocal.m4
$AUTOCONF
grep_configure_help --enable-multilib ' many library versions \(default\)'
# Check multilib support.
# Based on a test case from Ralf Corsepius.
+# FIXME: the features tested by this script has been moved in contrib.
+# FIXME: We should move this script accordingly.
required='gcc GNUmake'
. ./defs || Exit 1
-# Multilib support has been deprecated in the Automake core.
+mldir=$top_testsrcdir/contrib/multilib
+mkdir m4
+cp "$mldir"/config-ml.in "$mldir"/symlink-tree .
+cp "$mldir"/multi.m4 m4
-cat >>configure.in <<'END'
-AM_ENABLE_MULTILIB([Makefile], [.])
-END
-
-$ACLOCAL
-$AUTOCONF -Wall -Werror 2>stderr && { cat stderr >&2; Exit 1; }
-cat stderr >&2
-grep '^configure\.in:4:.*AM_ENABLE_MULTILIB.* removed.* soon' stderr
-grep '"multilib".*feature' stderr
-grep 'contrib.* in the Automake distribution' stderr
-
-rm -rf autom4te*.cache aclocal.m4 configure
-
-# Functional tests now.
+ACLOCAL_PATH=${ACLOCAL_PATH+"$ACLOCAL_PATH:"}`pwd`/m4
+export ACLOCAL_PATH
cat >configure.in <<'END'
AC_INIT([multlib], [1.0])
cat >Makefile.am <<'EOF'
SUBDIRS = @subdirs@
EXTRA_DIST = config-ml.in symlink-tree
+check-all:
+ test -f debug/libfoo/libfoo.a
+ test -f debug/libbar/libbar.a
+ test -f libfoo/libfoo.a
+ test -f libbar/libbar.a
EOF
# libfoo tests multilib supports when there are no subdirectories
# libbar tests multilib supports when there are subdirectories
mkdir libfoo
+cp "$mldir"/multilib.am libfoo/
cat >libfoo/configure.in <<'END'
AC_PREREQ(2.57)
cat >libfoo/Makefile.am <<'END'
noinst_LIBRARIES = libfoo.a
libfoo_a_SOURCES = foo.c
+include $(top_srcdir)/multilib.am
END
: > libfoo/foo.c
mkdir libbar
+cp "$mldir"/multilib.am libbar/
cat >libbar/configure.in <<'END'
AC_PREREQ(2.57)
SUBDIRS = sub
noinst_LIBRARIES = libbar.a
libbar_a_SOURCES = bar.c
+include $(top_srcdir)/multilib.am
END
mkdir libbar/sub
-
-: >libbar/sub/Makefile.am
-
+echo 'include $(top_srcdir)/multilib.am' >libbar/sub/Makefile.am
: > libbar/bar.c
-cp "$am_scriptdir"/config-ml.in "$am_scriptdir"/symlink-tree .
-
-$ACLOCAL -Wno-obsolete
-$AUTOCONF -Werror -Wall -Wno-obsolete
+$ACLOCAL
+$AUTOCONF
$AUTOMAKE --add-missing
+
cd libfoo
$ACLOCAL
-$AUTOCONF -Werror -Wall -Wno-obsolete
+$AUTOCONF
$AUTOMAKE --add-missing
-cd ../libbar
+cd ..
+
+cd libbar
$ACLOCAL
-$AUTOCONF -Werror -Wall -Wno-obsolete
+$AUTOCONF
$AUTOMAKE --add-missing
cd ..
-
# Check VPATH builds
mkdir build
cd build
../configure --enable-multilib CC=mycc
$MAKE
+test -f debug/libfoo/libfoo.a
+test -f debug/libbar/libbar.a
+test -f libfoo/libfoo.a
+test -f libbar/libbar.a
$MAKE install
$MAKE distcleancheck
cd ..
# Why to I have to specify --with-target-subdir?
./configure --enable-multilib --with-target-subdir=. CC=mycc
-$MAKE
+$MAKE check
+DISTCHECK_CONFIGURE_FLAGS='--enable-multilib CC=mycc' $MAKE distcheck
+
+: