1486 lines
61 KiB
Plaintext
1486 lines
61 KiB
Plaintext
New in 1.11:
|
||
|
||
* Version requirements:
|
||
|
||
- Autoconf 2.62 or greater is required.
|
||
|
||
* Changes to aclocal:
|
||
|
||
- The autoconf version check implemented by aclocal in aclocal.m4
|
||
(and new in Automake 1.10) is degraded to a warning. This helps
|
||
in the common case where the Autoconf versions used are compatible.
|
||
|
||
* Changes to automake:
|
||
|
||
- The automake program can run multiple threads for creating most
|
||
Makefile.in files concurrently, if at least Perl 5.7.2 is available
|
||
with interpreter-based threads enabled. Set the environment variable
|
||
AUTOMAKE_JOBS to the maximum number of threads to use, in order to
|
||
enable this experimental feature.
|
||
|
||
* Changes to Libtool support:
|
||
|
||
- Libtool generic flags are now passed to the install and uninstall
|
||
modes as well.
|
||
|
||
- distcheck works with Libtool 2.x even when LT_OUTPUT is used, as
|
||
config.lt is removed correctly now.
|
||
|
||
* Languages changes:
|
||
|
||
- subdir-object mode works now with Fortran (F77, FC, preprocessed
|
||
Fortran, and Ratfor).
|
||
|
||
- For files with extension .f90, .f95, .f03, or .f08, the flag
|
||
$(FCFLAGS_f[09]x) computed by AC_FC_SRCEXT is now used in compile rules.
|
||
|
||
- Files with extension .sx are also treated as preprocessed assembler.
|
||
|
||
- The default source file extension (.c) can be overridden with
|
||
AM_DEFAULT_SOURCE_EXT now.
|
||
|
||
- Python 3.0 is supported now, Python releases prior to 2.0 are no
|
||
longer supported.
|
||
|
||
- AM_PATH_PYTHON honors python's idea about the site directory.
|
||
|
||
- There is initial support for the Vala programming language, when using
|
||
Vala 0.7.0 or later.
|
||
|
||
* Miscellaneous changes:
|
||
|
||
- Automake development is done in a git repository on Savannah now, see
|
||
|
||
http://git.sv.gnu.org/gitweb/?p=automake.git
|
||
|
||
A read-only CVS mirror is provided at
|
||
|
||
cvs -d :pserver:anonymous@pserver.git.sv.gnu.org:/automake.git \
|
||
checkout -d automake HEAD
|
||
|
||
- "make dist" can now create xz-compressed tarballs,
|
||
as well as (deprecated?) lzma-compressed tarballs.
|
||
|
||
- `automake --add-missing' will by default install the GPLv3 file as
|
||
COPYING if it is missing. It will also warn that the license file
|
||
should be added to source control. Note that Automake will never
|
||
overwrite an existing COPYING file, even when the `--force-missing'
|
||
option is used.
|
||
|
||
- The manual is now distributed under the terms of the GNU FDL 1.3.
|
||
|
||
- Automake ships and installs man pages for automake and aclocal now.
|
||
|
||
- New shorthand `$(pkglibexecdir)' for `$(libexecdir)/@PACKAGE@'.
|
||
|
||
- install-sh supports -C, which does not update the installed file
|
||
(and its time stamps) if the contents did not change.
|
||
|
||
- The `gnupload' script has been revamped.
|
||
|
||
- The `depcomp' and `compile' scripts now work with MSVC under MSYS.
|
||
|
||
- The targets `install' and `uninstall' are more efficient now, in that
|
||
for example multiple files from one Automake variable such as
|
||
`bin_SCRIPTS' are copied in one `install' (or `libtool --mode=install')
|
||
invocation if they do not have to be renamed.
|
||
|
||
Both install and uninstall may sometimes enter (`cd' into) the target
|
||
installation directory now, when no build-local scripts are used.
|
||
|
||
Both install and uninstall do not fail anymore but do nothing if an
|
||
installation directory variable like `bindir' is set to the empty string.
|
||
|
||
For built-in rules, `make install' now fails reliably if installation
|
||
of a file failed. Conversely, `make uninstall' even succeeds when
|
||
issued multiple times.
|
||
|
||
These changes may need some adjustments from users: For example,
|
||
some `install' programs refuse to install multiple copies of the
|
||
same file in one invocation, so you may need to remove duplicate
|
||
entries from file lists.
|
||
|
||
Also, within one set of files, say, nobase_data_DATA, the order of
|
||
installation may be changed, or even unstable among different hosts,
|
||
due to the use of associative arrays in awk. The increased use of
|
||
awk matches a similar move in Autoconf to provide for better scaling.
|
||
|
||
Further, most undocumented per-rule install command variables such as
|
||
binSCRIPT_INSTALL have been removed because they are not needed any
|
||
more. Packages which use them should be using the appropriate one of
|
||
INSTALL_{DATA,PROGRAM,SCRIPT} or their install_sh_{DATA,PROGRAM,SCRIPT}
|
||
counterpart, depending on the type of files and the need for automatic
|
||
target directory creation.
|
||
|
||
- The "deleted header file problem" for *.m4 files is avoided by
|
||
stub rules. This allows `make' to trigger a rerun of `aclocal'
|
||
also if some previously needed macro file has been removed.
|
||
|
||
- Rebuild rules now also work for a removed `subdir/Makefile.in' in
|
||
an otherwise up to date tree.
|
||
|
||
- The `color-tests' option causes colored test result output on terminals.
|
||
|
||
- The `parallel-tests' option enables a new test driver that allows for
|
||
parallel test execution, inter-test dependencies, lazy test execution
|
||
for unit-testing, re-testing only failed tests, and formatted result output
|
||
as RST (reStructuredText) and HTML. Enabling this option may require some
|
||
changes to your test suite setup; see the manual for details.
|
||
|
||
- The `silent-rules' option enables Linux kernel-style silent build output.
|
||
This option requires the widely supported but non-POSIX `make' feature
|
||
of recursive variable expansion, so do not use it if your package needs
|
||
to build with `make' implementations that do not support it.
|
||
|
||
To enable less verbose build output, the developer has to use the Automake
|
||
option `silent-rules' in `AM_INIT_AUTOMAKE', or call the `AM_SILENT_RULES'
|
||
macro. The user may then set the default verbosity by passing the
|
||
`--enable-silent-rules' option to `configure'. At `make' run time, this
|
||
default may be overridden using `make V=0' for less verbose, and `make V=1'
|
||
for backward-compatible verbose output.
|
||
|
||
- New prefix `notrans_' for manpages which should not be transformed
|
||
by --program-transform.
|
||
|
||
- New macro AM_COND_IF for conditional evaluation and conditional
|
||
config files.
|
||
|
||
- For AC_CONFIG_LINKS, if source and destination are equal, do not
|
||
remove the file in a non-VPATH build. Such setups work with Autoconf
|
||
2.62 or newer.
|
||
|
||
- AM_MAINTAINER_MODE now allows for an optional argument specifying
|
||
the default setting.
|
||
|
||
- AM_SUBST_NOTMAKE may prevent substitution of AC_SUBSTed variables,
|
||
useful especially for multi-line values.
|
||
|
||
- Automake's early configure-time sanity check now diagnoses an
|
||
unsafe absolute source directory name and makes configure fail.
|
||
|
||
- The Automake macros and rules cope better with whitespace in the
|
||
current directory name, as long as the relative path to `configure'
|
||
does not contain whitespace. To this end, the values of `$(MISSING)'
|
||
and `$(install_sh)' may contain suitable quoting, and their expansion
|
||
might need `eval'uation if used outside of a makefile. These
|
||
undocumented variables may be used in several documented macros such
|
||
as $(AUTOCONF) or $(MAKEINFO).
|
||
|
||
Bugs fixed in 1.11:
|
||
|
||
* Long standing bugs:
|
||
|
||
- Fix aix dependency tracking for libtool objects.
|
||
|
||
- Work around AIX sh quoting issue in AC_PROG_CC_C_O, leading to
|
||
unnecessary use of the `compile' script.
|
||
|
||
- For nobase_*_LTLIBRARIES with nonempty directory components, the
|
||
correct `-rpath' argument is used now.
|
||
|
||
- `config.status --file=Makefile depfiles' now also works with the
|
||
extra quoting used internally by Autoconf 2.62 and newer
|
||
(it used to work only without the `--file=' bit).
|
||
|
||
- The `missing' script works better with versioned tool names.
|
||
|
||
- Semantics for `missing help2man' have been revamped:
|
||
|
||
Previously, if `help2man' was not present, `missing help2man' would have
|
||
the following semantics: if some man page was out of date but present, then
|
||
a warning would be printed, but the exit status was 0. If the man page was
|
||
not present at all, then `missing' would create a replacement man page
|
||
containing an error message, and exit with a status of 2. This does not play
|
||
well with `make': the next run will see this particular man page as being up
|
||
to date, and will only error out on the next generated man page, if any;
|
||
repeat until all pages are done. This was not desirable.
|
||
|
||
These are the new semantics: if some man page is not present, and help2man
|
||
is not either, then `missing' will warn and generate the replacement page
|
||
containing the error message, but exit successfully. However, `make dist'
|
||
will ensure that no such bogus man pages are packaged into a tarball.
|
||
|
||
- Targets provided by automake behave better with `make -n', in that they
|
||
take care not to create files.
|
||
|
||
- `config.status Makefile... depfiles' works fine again in the presence of
|
||
disabled dependency tracking.
|
||
|
||
- The default no-op recursive rules for these targets also work with BSD make
|
||
now: html, install-html, install-dvi, install-pdf, install-pdf, install-info.
|
||
|
||
- `make distcheck' works also when both a directory and some file below it
|
||
have been added to a distribution variable, such as EXTRA_DIST or *_SOURCES.
|
||
|
||
- Texinfo dvi, ps, pdf, and html output files are not removed upon
|
||
`make mostlyclean' any more; only the LaTeX by-products are.
|
||
|
||
- Renamed objects also work with the `subdir-objects' option and
|
||
source file languages which Automake does not know itself.
|
||
|
||
- `automake' now correctly complains about variable assignments which are
|
||
preceded by a comment, extend over multiple lines with backslash-escaped
|
||
newlines, and end in a comment sign. Previous versions would silently
|
||
and wrongly ignore such assignments completely.
|
||
|
||
* Bugs introduced by 1.10:
|
||
|
||
- Fix output of dummy dependency files in presence of post-processed
|
||
Makefile.in's again, but also cope with long lines.
|
||
|
||
- $(EXEEXT) is automatically appended to filenames of XFAIL_TESTS
|
||
that have been declared as programs in the same Makefile.
|
||
This is for consistency with the analogous change to TESTS in 1.10.
|
||
|
||
- Fix order of standard includes to again be `-I. -I$(srcdir)',
|
||
followed by directories containing config headers.
|
||
|
||
New in 1.10:
|
||
|
||
* Version requirements:
|
||
|
||
- Autoconf 2.60 or greater is required.
|
||
|
||
- Perl 5.6 or greater is required.
|
||
|
||
* Changes to aclocal:
|
||
|
||
- aclocal now also supports -Wmumble and -Wno-mumble options.
|
||
|
||
- `dirlist' entries (for the aclocal search path) may use shell
|
||
wildcards such as `*', `?', or `[...]'.
|
||
|
||
- aclocal supports an --install option that will cause system-wide
|
||
third-party macros to be installed in the local directory
|
||
specified with the first -I flag. This option also uses #serial
|
||
lines in M4 files to upgrade local macros.
|
||
|
||
The new aclocal options --dry-run and --diff help to review changes
|
||
before they are installed.
|
||
|
||
- aclocal now outputs an autoconf version check in aclocal.m4 in
|
||
projects using automake.
|
||
|
||
For a few years, automake and aclocal have been calling autoconf
|
||
(or its underlying engine autom4te) to accurately retrieve the
|
||
data they need from configure.ac and its siblings. Doing so can
|
||
only work if all autotools use the same version of autoconf. For
|
||
instance a Makefile.in generated by automake for one version of
|
||
autoconf may stop working if configure is regenerated with another
|
||
version of autoconf, and vice versa.
|
||
|
||
This new version check ensures that the whole build system has
|
||
been generated using the same autoconf version.
|
||
|
||
* Support for new Autoconf macros:
|
||
|
||
- The new AC_REQUIRE_AUX_FILE Autoconf macro is supported.
|
||
|
||
- If `subdir-objects' is set, and AC_CONFIG_LIBOBJ_DIR is specified,
|
||
$(LIBOBJS), $(LTLIBOBJS), $(ALLOCA), and $(LTALLOCA) can be used
|
||
in different directories. However, only one instance of such a
|
||
library objects directory is supported.
|
||
|
||
* Change to Libtool support:
|
||
|
||
- Libtool generic flags (those that go before the --mode=MODE option)
|
||
can be specified using AM_LIBTOOLFLAGS and target_LIBTOOLFLAGS.
|
||
|
||
* Yacc and Lex changes:
|
||
|
||
- The rebuild rules for distributed Yacc and Lex output will avoid
|
||
overwriting existing files if AM_MAINTAINER_MODE and maintainer-mode
|
||
is not enabled.
|
||
|
||
- ylwrap is now always used for lex and yacc source files,
|
||
regardless of whether there is more than one source per directory.
|
||
|
||
* Languages changes:
|
||
|
||
- Preprocessed assembler (*.S) compilation now honors CPPFLAGS,
|
||
AM_CPPFLAGS and per-target _CPPFLAGS, and supports dependency
|
||
tracking, unlike non-preprocessed assembler (*.s).
|
||
|
||
- subdir-object mode works now with Assembler. Automake assumes
|
||
that the compiler understands `-c -o'.
|
||
|
||
- Preprocessed assembler (*.S) compilation now also honors
|
||
$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES).
|
||
|
||
- Improved support for Objective C:
|
||
- Autoconf's new AC_PROG_OBJC will enable automatic dependency tracking.
|
||
- A new section of the manual documents the support.
|
||
|
||
- New support for Unified Parallel C:
|
||
- AM_PROG_UPC looks for a UPC compiler.
|
||
- A new section of the manual documents the support.
|
||
|
||
- Per-target flags are now correctly handled in link rules.
|
||
|
||
For instance maude_CFLAGS correctly overrides AM_CFLAGS; likewise
|
||
for maude_LDFLAGS and AM_LDFLAGS. Previous versions bogusly
|
||
preferred AM_CFLAGS over maude_CFLAGS while linking, and they
|
||
used both AM_LDFLAGS and maude_LDFLAGS on the same link command.
|
||
|
||
The fix for compiler flags (i.e., using maude_CFLAGS instead of
|
||
AM_CFLAGS) should not hurt any package since that is how _CFLAGS
|
||
is expected to work (and actually works during compilation).
|
||
|
||
However using maude_LDFLAGS "instead of" AM_LDFLAGS rather than
|
||
"in addition to" breaks backward compatibility with older versions.
|
||
If your package used both variables, as in
|
||
|
||
AM_LDFLAGS = common flags
|
||
bin_PROGRAMS = a b c
|
||
a_LDFLAGS = more flags
|
||
...
|
||
|
||
and assumed *_LDFLAGS would sum up, you should rewrite it as
|
||
|
||
AM_LDFLAGS = common flags
|
||
bin_PROGRAMS = a b c
|
||
a_LDFLAGS = $(AM_LDFLAGS) more flags
|
||
...
|
||
|
||
This new behavior of *_LDFLAGS is more coherent with other
|
||
per-target variables, and the way *_LDFLAGS variables were
|
||
considered internally.
|
||
|
||
* New installation targets:
|
||
|
||
- New targets mandated by GNU Coding Standards:
|
||
install-dvi
|
||
install-html
|
||
install-ps
|
||
install-pdf
|
||
By default they will only install Texinfo manuals.
|
||
You can customize them with *-local variants:
|
||
install-dvi-local
|
||
install-html-local
|
||
install-ps-local
|
||
install-pdf-local
|
||
|
||
- The undocumented recursive target `uninstall-info' no longer exists.
|
||
(`uninstall' is in charge of removing all possible documentation
|
||
flavors, including optional formats such as dvi, ps, or info even
|
||
when `no-installinfo' is used.)
|
||
|
||
* Miscellaneous changes:
|
||
|
||
- Automake no longer complains if input files for AC_CONFIG_FILES
|
||
are specified using shell variables.
|
||
|
||
- clean, distribution, or rebuild rules are normally disabled for
|
||
inputs and outputs of AC_CONFIG_FILES, AC_CONFIG_HEADERS, and
|
||
AC_CONFIG_LINK specified using shell variables. However, if these
|
||
variables are used as ${VAR}, and AC_SUBSTed, then Automake will
|
||
be able to output rules anyway.
|
||
(See the Automake documentation for AC_CONFIG_FILES.)
|
||
|
||
- $(EXEEXT) is automatically appended to filenames of TESTS
|
||
that have been declared as programs in the same Makefile.
|
||
This is mostly useful when some check_PROGRAMS are listed in TESTS.
|
||
|
||
- `-Wportability' has finally been turned on by default for `gnu' and
|
||
`gnits' strictness. This means, automake will complain about %-rules
|
||
or $(GNU Make functions) unless you switch to `foreign' strictness or
|
||
use `-Wno-portability'.
|
||
|
||
- Automake now uses AC_PROG_MKDIR_P (new in Autoconf 2.60), and uses
|
||
$(MKDIR_P) instead of $(mkdir_p) to create directories. The
|
||
$(mkdir_p) variable is still defined (to the same value as
|
||
$(MKDIR_P)) but should be considered obsolete. If you are using
|
||
$(mkdir_p) in some of your rules, please plan to update them to
|
||
$(MKDIR_P) at some point.
|
||
|
||
- AM_C_PROTOTYPES and ansi2knr are now documented as being obsolete.
|
||
They still work in this release, but may be withdrawn in a future one.
|
||
|
||
- Inline compilation rules for gcc3-style dependency tracking are
|
||
more readable.
|
||
|
||
- Automake installs a "Hello World!" example package in $(docdir).
|
||
This example is used throughout the new "Autotools Introduction"
|
||
chapter of the manual.
|
||
|
||
New in 1.9:
|
||
|
||
* Makefile.in bloat reduction:
|
||
|
||
- Inference rules are used to compile sources in subdirectories when
|
||
the `subdir-objects' option is used and no per-target flags are
|
||
used. This should reduce the size of some projects a lot, because
|
||
Automake used to output an explicit rule for each such object in
|
||
the past.
|
||
|
||
- Automake no longer outputs three rules (.o, .obj, .lo) for each
|
||
object that must be built with explicit rules. It just outputs
|
||
the rules required to build the kind of object considered: either
|
||
the two .o and .obj rules for usual objects, or the .lo rule for
|
||
libtool objects.
|
||
|
||
* Change to Libtool support:
|
||
|
||
- Libtool tags are used with libtool versions that support them.
|
||
(I.e., with Libtool 1.5 or greater.)
|
||
|
||
- Automake is now able to handle setups where a libtool library is
|
||
conditionally installed in different directories, as in
|
||
|
||
if COND
|
||
lib_LTLIBRARIES = liba.la
|
||
else
|
||
pkglib_LTLIBRARIES = liba.la
|
||
endif
|
||
liba_la_SOURCES = ...
|
||
|
||
* Changes to aclocal:
|
||
|
||
- aclocal now ensures that AC_DEFUNs and AU_DEFUNs it discovers are
|
||
really evaluated, before it decides to include them in aclocal.m4.
|
||
This solves nasty problems with conditional redefinitions of
|
||
Autoconf macros in /usr/share/aclocal/*.m4 files causing extraneous
|
||
*.m4 files to be included in any project using these macros.
|
||
(Calls to AC_PROG_EGREP causing libtool.m4 to be included is the
|
||
most famous instance of this bug.)
|
||
|
||
- Do not complain about missing conditionally AC_REQUIREd macros
|
||
that are not actually used. In 1.8.x aclocal would correctly
|
||
determine which of these macros were really needed (and include
|
||
only these in the package); unfortunately it would also require
|
||
all of them to be present in order to run. This created
|
||
situations were aclocal would not work on a tarball distributing
|
||
all the macros it uses. For instance running aclocal on a project
|
||
containing only the subset of the Gettext macros in use by the
|
||
project did not work, because gettext conditionally requires other
|
||
macros.
|
||
|
||
* Portability improvements:
|
||
|
||
- Tar format can be chosen with the new options tar-v7, tar-ustar, and
|
||
tar-pax. The new option filename-length-max=99 helps diagnosing
|
||
filenames that are too long for tar-v7. (PR/414)
|
||
|
||
- Variables aumented with `+=' are now automatically flattened (i.e.,
|
||
trailing backslashes removed) and then wrapped around 80 colummns
|
||
(adding trailing backslashes). In previous versions, a long series
|
||
of
|
||
VAR += value1
|
||
VAR += value2
|
||
VAR += value3
|
||
...
|
||
would result in a single-line definition of VAR that could possibly
|
||
exceed the maximum line length of some make implementations.
|
||
|
||
Non-augmented variables are still output as they are defined in
|
||
the Makefile.am.
|
||
|
||
* Miscellaneous:
|
||
|
||
- Support Fortran 90/95 with the new "fc" and "ppfc" languages.
|
||
Works the same as the old Fortran 77 implementation; just replace
|
||
F77 with FC everywhere (exception: FFLAGS becomes FCFLAGS).
|
||
Requires a version of autoconf which provides AC_PROG_FC (>=2.59).
|
||
|
||
- Support for conditional _LISP.
|
||
|
||
- Support for conditional -hook and -local rules (PR/428).
|
||
|
||
- Diagnose AC_CONFIG_AUX_DIR calls following AM_INIT_AUTOMAKE. (PR/49)
|
||
|
||
- Automake will not write any Makefile.ins after the first error it
|
||
encounters. The previous Makefile.ins (if any) will be left in
|
||
place. (Warnings will not prevent output, but remember they can
|
||
be turned into errors with -Werror.)
|
||
|
||
- The restriction that SUBDIRS must contain direct children is gone.
|
||
Do not abuse.
|
||
|
||
- The manual tells more about SUBDIRS vs. DIST_SUBDIRS.
|
||
It also gives an example of nested packages using AC_CONFIG_SUBDIRS.
|
||
|
||
Bugs fixed in 1.8.5:
|
||
|
||
* Long standing bugs:
|
||
|
||
- Define DIST_SUBDIRS even when the `no-dist' or `cygnus' options are used
|
||
so that `make distclean' and `make maintainer-clean' can work.
|
||
|
||
- Define AR and ARFLAGS even when only EXTRA_LIBRARIES are defined.
|
||
|
||
- Fix many rules to please FreeBSD make, which runs commands with `sh -e'.
|
||
|
||
- Polish diagnostic when no input file is found.
|
||
|
||
Bugs fixed in 1.8.4:
|
||
|
||
* Long standing bugs:
|
||
|
||
- Fix AM_PATH_PYTHON to correctly display $PYTHON when it has been
|
||
overridden by the user.
|
||
|
||
- Honor PATH_SEPARATOR in various places of the Automake package, for
|
||
the sake of OS/2.
|
||
|
||
- Adjust dependency tracking mode detection to ICC 8.0's new output.
|
||
(PR/416)
|
||
|
||
- Fix install-sh so it can install the `mv' binary... using `mv'.
|
||
|
||
- Fix tru64 dependency tracking for libtool objects.
|
||
|
||
- Work around Exuberant Ctags when creating a TAGS files in a directory
|
||
without files to scan but with subdirectories to include.
|
||
|
||
* Bugs introduced by 1.8:
|
||
|
||
- Fix an "internal error" when @LIBOBJS@ is used in a variable that is
|
||
not defined in the same conditions as the _LDADD that uses it.
|
||
|
||
- Do not warn when JAVAROOT is overridden, this is legitimate.
|
||
|
||
Bugs fixed in 1.8.3:
|
||
|
||
* Long standing bugs:
|
||
|
||
- Quote filenames in installation rules, in case $DESTDIR, $prefix,
|
||
or any of the other *dir variables contain a space.
|
||
|
||
Please note that Automake does not and cannot support spaces in
|
||
filenames that are involved during the build. This change affects
|
||
only installation paths, so that `make install' does not bomb out
|
||
in packages configured with
|
||
./configure --prefix '/c/Program Files'
|
||
|
||
- Fix the depfiles output so it works with GNU sed (<4.1) even when
|
||
POSIXLY_CORRECT is set.
|
||
|
||
- Do not AC_SUBST(LIBOBJS) in AM_WITH_REGEX. This macro was unusable
|
||
since Autoconf 2.54, which defines LIBOBJS itself.
|
||
|
||
- Fix a potential (but unlikely) race condition in parallel elisp
|
||
builds. (Introduced in 1.7.3.)
|
||
|
||
- Do not assume that users override _DEPENDENCIES in all conditions
|
||
where Automake will try to define them.
|
||
|
||
- Do not use `mkdir -p' in mkinstalldirs, unless this is GNU mkdir.
|
||
Solaris 8's `mkdir -p' is not thread-safe and can break parallel
|
||
builds.
|
||
|
||
This fix also affects the $(mkdir_p) variable defined since
|
||
Automake 1.8. It will be set to `mkdir -p' only if mkdir is GNU
|
||
mkdir, and to `mkinstalldirs' or `install-sh -d' otherwise.
|
||
|
||
- Secure temporary directory creation in `make distcheck'. (PR/413)
|
||
|
||
- Do not generate two build rules for `parser.h' when the
|
||
parser appears in two different conditionals.
|
||
|
||
- Work around a Solaris 8 /bin/sh bug in the test for dependency
|
||
checking. Usually ./configure will not pick this shell; so this
|
||
fix only helps cases where the shell is forced to /bin/sh.
|
||
|
||
* Bugs introduced by 1.8:
|
||
|
||
- In some situations (hand-written `m4_include's), aclocal would
|
||
call the `File::Spec->rel2abs' method, which was only introduced
|
||
in Perl 5.6. This new version reestablish support Perl 5.005.
|
||
|
||
It is likely that the next major Automake releases will require at
|
||
least Perl 5.6. Consider upgrading your development environment
|
||
if you are still using the five-year-old Perl 5.005.
|
||
|
||
- Automake would sometimes fail to define rules for targets listed
|
||
in variables defined in multiple conditions. For instance on
|
||
if C1
|
||
bin_PROGRAMS = a
|
||
else
|
||
bin_PROGRAMS = b
|
||
endif
|
||
it would define only the `a.$(OBJEXT): a.c' rule and omit the
|
||
`b.$(OBJEXT): b.c' rule.
|
||
|
||
* New sections in manual:
|
||
|
||
- Third-Party Makefiles: how to interface third party Makefiles.
|
||
- Upgrading: upgrading packages to newer Automake versions.
|
||
- Multiple Outputs: handling tools that produce many outputs.
|
||
|
||
Bug fixed in 1.8.2:
|
||
|
||
* A (well known) portability bug slipped in the changes made to
|
||
install-sh in Automake 1.8.1. The broken install-sh would refuse to
|
||
install anything on Tru64.
|
||
|
||
* Fix install rules for conditionally built python files. (This never
|
||
really worked.)
|
||
|
||
Bug fixed in 1.8.1:
|
||
|
||
* Bugs introduced by 1.8:
|
||
|
||
- Fix Config.pm import error with old Perl versions (at least
|
||
5.005_03). One symptom is that aclocal could not find its macro
|
||
directory.
|
||
|
||
- Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
|
||
created by `make install' are always world readable, even if the
|
||
installer happens to have an overly restrictive umask (e.g. 077).
|
||
This was a mistake and has been reverted. There are at least two
|
||
reasons why we must not use `-m 0755':
|
||
- it causes special bits like SGID to be ignored,
|
||
- it may be too restrictive (some setups expect 775 directories).
|
||
|
||
- Fix aclocal to honor definitions located in files which have been
|
||
m4_included manually. aclocal 1.8 had been updated to check
|
||
m4_included files for new requirements, but forgot that these
|
||
m4_included files can also provide new definitions.
|
||
|
||
Note that if you have such a setup, we recommend you get rid of
|
||
it. In the past, there was a reason to m4_include files manually:
|
||
aclocal used to duplicate entire M4 files into aclocal.m4, even
|
||
files that were distributed. Some packages were therefore
|
||
m4_including the distributed file directly, and playing some
|
||
tricks to ensure aclocal would not copy that file to aclocal.m4,
|
||
in order to limit the amount of duplication. Since aclocal 1.8.x
|
||
will precisely output m4_includes for local M4 files, we recommend
|
||
that you clean up your setup, removing all manual m4_includes and
|
||
letting aclocal output them.
|
||
|
||
- Output detailed menus in the Info version if the Automake manual,
|
||
so that Emacs can locate the indexes.
|
||
|
||
- configure.ac and configure were listed twice in DIST_COMMON (an
|
||
internal variable where Automake lists configury files to
|
||
distribute). This was harmless, but unaesthetic.
|
||
|
||
- Use `chmod a-w' instead of `chmod -w' as the latter honors umask.
|
||
This was an issue only in the Automake package itself, not in
|
||
its output.
|
||
|
||
- Automake assumed that all AC_CONFIG_LINKS arguments had the form
|
||
DEST:SRC. This was wrong, as some packages do
|
||
AC_CONFIG_LINKS($computedlinks). This version no longer abort in
|
||
that situation.
|
||
|
||
- Contrary to mkinstalldirs, $(mkdir_p) was expecting exactly one
|
||
argument. This caused two kinds of failures:
|
||
- Rules installing data in a conditionally defined directory
|
||
failed when that directory was undefined. In this case no
|
||
argument was supplied.
|
||
- `make installdirs' failed, because several directories were
|
||
passed to $(mkdir_p). This was an issue only on platform
|
||
were $(mkdir_p) is implemented with `install-sh -d'.
|
||
$(mkdir_p) as been changed to accept 0 or more arguments, as
|
||
mkinstalldirs did.
|
||
|
||
* Long-standing bugs:
|
||
|
||
- Fix an unexpected diagnostic occurring when users attempt
|
||
to override some internal variables that Automake appends to.
|
||
|
||
- aclocal now scans configure.ac for macro definitions (PR/319).
|
||
|
||
- Fix a portability issue with OSF1/Tru64 Make. If a directory
|
||
distributes files which are outside itself (this usually occurs
|
||
when using AC_CONFIG_AUX_DIR([../dir]) to use auxiliary files
|
||
from a parent package), then `make distcheck' fails due to an
|
||
optimization performed by OSF1/Tru64 Make in its VPATH handling.
|
||
(tests/subpkg2.test failure)
|
||
|
||
- Fix another portability issue with Sun and OSF1/Tru64 Make.
|
||
In a VPATH-build configuration, `make install' would install
|
||
nobase_ files to wrong locations.
|
||
|
||
- Fix a Perl `uninitialized value' diagnostic occurring when
|
||
automake complains that a Texinfo file does not have a
|
||
@setfilename statement.
|
||
|
||
- Erase config.status.lineno during `make distclean'. This file
|
||
can be created by config.status. Automake already knew about
|
||
configure.lineno, but forgot config.status.lineno.
|
||
|
||
- Distribute all files, even those which are built and installed
|
||
conditionally. This change affects files listed in conditionally
|
||
defined *_HEADERS and *_PYTHON variable (unless they are nodist_*)
|
||
as well as those listed in conditionally defined dist_*_DATA,
|
||
dist_*_JAVA, dist_*_LISP, and dist_*_SCRIPTS variables.
|
||
|
||
- Fix AM_PATH_LISPDIR to avoid \? in sed regular expressions; it
|
||
doesn't conform to POSIX.
|
||
|
||
- Normalize help strings for configure variables and options added
|
||
by Automake macros.
|
||
|
||
* Anticipation:
|
||
|
||
- Check for python2.4 in AM_PATH_PYTHON.
|
||
|
||
* Spurious failures in test suite:
|
||
|
||
- tests/libtool5.test, tests/ltcond.test, tests/ltcond2.test,
|
||
tests/ltconv.test: fix failures with CVS Libtool.
|
||
- tests/aclocal6.test: fix failure if autom4te.cache is disabled.
|
||
- tests/txinfo24.test, tests/txinfo25.test, tests/txinfo28.test:
|
||
fix failures with old Texinfo versions.
|
||
|
||
New in 1.8:
|
||
|
||
* Meta-News
|
||
|
||
- The NEWS file is more verbose.
|
||
|
||
* Requirements
|
||
|
||
- Autoconf 2.58 or greater is required.
|
||
|
||
* New features
|
||
|
||
- Default source file names in the absence of a _SOURCES declaration
|
||
are made by removing any target extension before appending `.c', so
|
||
to make the libtool module `foo.la' from `foo.c', you only need to
|
||
do this:
|
||
|
||
lib_LTLIBRARIES = foo.la
|
||
foo_la_LDFLAGS = -module
|
||
|
||
For backward compatibility, foo_la.c will be used instead of
|
||
foo.c if this file exists or is the explicit target of a rule.
|
||
However -Wobsolete will warn about this deprecated naming.
|
||
|
||
- AR's `cru' flags are now set in a global ARFLAGS variable instead
|
||
of being hard-coded in each $(AR) invocation, so they can be
|
||
substituted from configure.ac. This has been requested by people
|
||
dealing with non-POSIX ar implementations.
|
||
|
||
- New warning option: -Woverride. This will warn about any user
|
||
target or variable definitions which override Automake
|
||
definitions.
|
||
|
||
- Texinfo rules back up and restore info files when makeinfo fails.
|
||
|
||
- Texinfo rules now support the `html' target.
|
||
Running this requires Texinfo 4.0 or greater.
|
||
|
||
`html' is a new recursive target, so if your package mixes
|
||
hand-crafted `Makefile.in's with Automake-generated
|
||
`Makefile.in's, you should adjust the former to support (or
|
||
ignore) this target so that `make html' recurses successfully. If
|
||
you had a custom `html' rule in your `Makefile.am', it's better to
|
||
rename it as `html-local', otherwise your rule will override
|
||
Automake's new rule (you can check that by running `automake
|
||
-Woverride') and that will stop the recursion to subdirectories.
|
||
|
||
Last but not least, this `html' rule is declared PHONY, even when
|
||
overridden. Fortunately, it appears that few packages use a
|
||
non-PHONY `html' rule.
|
||
|
||
- Any file which is m4_included from configure.ac will appear as a
|
||
configure and Makefile.in dependency, and will be automatically
|
||
distributed.
|
||
|
||
- The rules for rebuilding Makefiles and Makefile.ins will now
|
||
rebuild all Makefiles and all Makefile.ins at once when one of
|
||
configure's dependencies has changed. This is considerably faster
|
||
than previous implementations, where config.status and automake
|
||
were run separately in each directory (this still happens when you
|
||
change a Makefile.am locally, without touching configure.ac or
|
||
friends). Doing this also solves a longstanding issue: these
|
||
rebuild rules failed to work when adding new directories to the
|
||
tree, forcing you to run automake manually.
|
||
|
||
- For similar reasons, the rules to rebuild configure,
|
||
config.status, and aclocal.m4 are now defined in all directories.
|
||
Note that if you were using the CONFIG_STATUS_DEPENDENCIES and
|
||
CONFIGURE_DEPENDENCIES (formerly undocumented) variables, you
|
||
should better define them in all directories. This is easily done
|
||
using an AC_SUBST (make sure you prefix these dependencies with
|
||
$(top_srcdir) since this variable will appear at different
|
||
levels of the build tree).
|
||
|
||
- aclocal will now use `m4_include' instead of copying local m4
|
||
files into aclocal.m4. (Local m4 files are those you ship with
|
||
your project, other files will be copied as usual.)
|
||
|
||
Because m4_included files are automatically distributed, it means
|
||
for most projects there is no point in EXTRA_DISTing the list of
|
||
m4 files which are used. (You can probably get rid of
|
||
m4/Makefile.am if you had one.)
|
||
|
||
- aclocal will avoid touching aclocal.m4 when possible, so that
|
||
Autom4te's cache isn't needlessly invalidated. This behavior can
|
||
be switched off with the new `--force' option.
|
||
|
||
- aclocal now uses Autoconf's --trace to detect macros which are
|
||
actually used and will no longer include unused macros simply
|
||
because they where mentioned. This was often the case for macros
|
||
called conditionally.
|
||
|
||
- New options no-dist and no-dist-gzip.
|
||
|
||
- compile, depcomp, elisp-comp, install-sh, mdate-sh, mkinstalldirs,
|
||
py-compile, and ylwrap, now all understand --version and --help.
|
||
|
||
- Automake will now recognize AC_CONFIG_LINKS so far as removing created
|
||
links as part of the distclean target and including source files in
|
||
distributions.
|
||
|
||
- AM_PATH_PYTHON now supports ACTION-IF-FOUND and ACTION-IF-NOT-FOUND
|
||
argument. The latter can be used to override the default behavior
|
||
(which is to abort).
|
||
|
||
- Automake will exit with $? = 63 on version mismatch. (So does
|
||
Autoconf 2.58) missing knows this, and in this case it will
|
||
emulate the tools as if they were absent. Because older versions
|
||
of Automake and Autoconf did not use this exit code, this change
|
||
will only be useful in projects generated with future versions of
|
||
these tools.
|
||
|
||
- When using AC_CONFIG_FILES with multiple input files, Automake
|
||
generates the first ".in" input file for which a ".am" exists.
|
||
(Former versions would try to use only the first input file.)
|
||
|
||
- lisp_DATA is now allowed. If you are using the empty ELCFILES
|
||
idiom to disable byte-compilation of lisp_LISP files, it is
|
||
recommended that you switch to using lisp_DATA. Note that
|
||
this is not strictly equivalent: lisp_DATA will install elisp
|
||
files even if emacs is not installed, while *_LISP do not
|
||
install anything unless emacs is found.
|
||
|
||
- Makefiles will prefer `mkdir -p' over mkinstalldirs if it is
|
||
available. This selection is achieved through the Makefile
|
||
variable $(mkdir_p) that is set by AM_INIT_AUTOMAKE to either
|
||
`mkdir -m 0755 -p --', `$(mkinstalldirs) -m 0755', or
|
||
`$(install_sh) -m 0755 -d'.
|
||
|
||
* Obsolete features
|
||
|
||
- Because `mkdir -p' is available on most platforms, and we can use
|
||
`install-sh -d' when it is not, the use of the mkinstalldirs
|
||
script is being phased out. `automake --add-missing' no longer
|
||
installs it, and if you remove mkinstalldirs from your package,
|
||
automake will define $(mkinstalldirs) as an alias for $(mkdir_p).
|
||
|
||
Gettext 0.12.1 still requires mkinstalldirs. Fortunately
|
||
gettextize and autopoint will install it when needed. Automake
|
||
will continue to define the $(mkinstalldirs) and to distribute
|
||
mkinstalldirs when this script is in the source tree.
|
||
|
||
- AM_PROG_CC_STDC is now empty. The content of this macro was
|
||
merged in AC_PROG_CC. If your code uses $am_cv_prog_cc_stdc, you
|
||
should adjust it to use $ac_cv_prog_cc_stdc instead. (This
|
||
renaming should be safe, even if you have to support several,
|
||
versions of Automake, because AC_PROG_CC defines this variable
|
||
since Autoconf 2.54.)
|
||
|
||
- Some users where using the undocumented ACLOCAL_M4_SOURCES
|
||
variable to override the aclocal.m4 dependencies computed
|
||
(inaccurately) by older versions of Automake. Because Automake
|
||
now tracks configure's m4 dependencies accurately (see m4_include
|
||
above), the use of ACLOCAL_M4_SOURCES should be considered
|
||
obsolete and will be flagged as such when running `automake
|
||
-Wobsolete'.
|
||
|
||
* Bug fixes
|
||
|
||
- Defining programs conditionally using Automake conditionals no
|
||
longer leads to a combinatorial explosion. The following
|
||
construct used to be troublesome when used with dozens of
|
||
conditions.
|
||
|
||
bin_PROGRAMS = a
|
||
if COND1
|
||
bin_PROGRAMS += a1
|
||
endif
|
||
if COND2
|
||
bin_PROGRAMS += a2
|
||
endif
|
||
if COND3
|
||
bin_PROGRAMS += a3
|
||
endif
|
||
...
|
||
|
||
Likewise for _SOURCES, _LDADD, and _LIBADD variables.
|
||
|
||
- Due to implementation constraints, previous versions of Automake
|
||
proscribed multiple conditional definitions of some variables
|
||
like bin_PROGRAMS:
|
||
|
||
if COND1
|
||
bin_PROGRAMS = a1
|
||
endif
|
||
if COND2
|
||
bin_PROGRAMS = a2
|
||
endif
|
||
|
||
All _PROGRAMS, _LDADD, and _LIBADD variables were affected.
|
||
This restriction has been lifted, and these variables now
|
||
support multiple conditional definitions as do other variables.
|
||
|
||
- Cleanup the definitions of $(distdir) and $(top_distdir).
|
||
$(top_distdir) now points to the root of the distribution
|
||
directory created during `make dist', as it did in Automake 1.4,
|
||
not to the root of the build tree as it did in intervening
|
||
versions. Furthermore these two variables are now only defined in
|
||
the top level Makefile, and passed to sub-directories when running
|
||
`make dist'.
|
||
|
||
- The --no-force option now correctly checks the Makefile.in's
|
||
dependencies before deciding not to update it.
|
||
|
||
- Do not assume that make files are called Makefile in cleaning rules.
|
||
|
||
- Update .info files in the source tree, not in the build tree. This
|
||
is what the GNU Coding Standard recommend. Only Automake 1.7.x
|
||
used to update these files in the build tree (previous versions did
|
||
it in the source tree too), and it caused several problems, varying
|
||
from mere annoyance to portability issues.
|
||
|
||
- COPYING, COPYING.LIB, and COPYING.LESSER are no longer overwritten
|
||
when --add-missing and --force-missing are used. For backward
|
||
compatibility --add-missing will continue to install COPYING (in
|
||
`gnu' strictness) when none of these three files exist, but this
|
||
use is deprecated: you should better choose a license yourself and
|
||
install it once for all in your source tree (and in your code
|
||
management system).
|
||
|
||
- Fix ylwrap so that it does not overwrite header files that haven't
|
||
changed, as the inline rule already does.
|
||
|
||
- User-defined rules override automake-defined rules for the same
|
||
targets, even when rules do not have commands. This is not new
|
||
(and was documented), however some of the automake-generated
|
||
rules have escaped this principle in former Automake versions.
|
||
Rules for the following targets are affected by this fix:
|
||
|
||
clean, clean-am, dist-all, distclean, distclean-am, dvi, dvi-am,
|
||
info, info-am, install-data-am, install-exec-am, install-info,
|
||
install-info-am, install-man, installcheck-am, maintainer-clean,
|
||
maintainer-clean-am, mostlyclean, mostlyclean-am, pdf, pdf-am,
|
||
ps, ps-am, uninstall-am, uninstall-info, uninstall-man
|
||
|
||
Practically it means that an attempt to supplement the dependencies
|
||
of some target, as in
|
||
|
||
clean: my-clean-rule
|
||
|
||
will now *silently override* the automake definition of the
|
||
rule for this target. Running `automake -Woverride' will diagnose
|
||
all such overriding definitions.
|
||
|
||
It should be noted that almost all these targets support a *-local
|
||
variant that is meant to supplement the automake-defined rule
|
||
(See node `Extending' in the manual). The above rule should
|
||
be rewritten as
|
||
|
||
clean-local: my-clean-rule
|
||
|
||
These *-local targets have been documented since at least
|
||
Automake 1.2, so you should not fear the change if you have
|
||
to support multiple automake versions.
|
||
|
||
* Miscellaneous
|
||
|
||
- The Automake manual is now distributed under the terms of the GNU FDL.
|
||
|
||
- Targets dist-gzip, dist-bzip2, dist-tarZ, dist-zip are always defined.
|
||
|
||
- core dumps are no longer removed by the cleaning rules. There are
|
||
at least three reasons for this:
|
||
1. These files should not be created by any build step,
|
||
so their removal do not fit any of the cleaning rules.
|
||
Actually, they may be precious to the developer.
|
||
2. If such file is created during a build, then it's clearly a
|
||
bug Automake should not hide. Not removing the file will
|
||
cause `make distcheck' to complain about its presence.
|
||
3. Operating systems have different naming conventions for
|
||
core dump files. A core file on one system might be a
|
||
completely legitimate data file on another system.
|
||
|
||
- RUNTESTFLAGS, CTAGSFLAGS, ETAGSFLAGS, JAVACFLAGS are no longer
|
||
defined by Automake. This means that any definition in the
|
||
environment will be used, unless overridden in the Makefile.am or
|
||
on the command line. The old behavior, where these variables were
|
||
defined empty in each Makefile, can be obtained by AC_SUBSTing or
|
||
AC_ARG_VARing each variable from configure.ac.
|
||
|
||
- CONFIGURE_DEPENDENCIES and CONFIG_STATUS_DEPENDENCIES are now
|
||
documented. (The is not a new feature, these variables have
|
||
been there since at least Automake 1.4.)
|
||
|
||
Bugs fixed in 1.7.9:
|
||
* Fix install-strip to work with nobase_ binaries.
|
||
* Fix renaming of #line directives in ylwrap.
|
||
* Rebuild with Autoconf 2.59. (1.7.8 was not installable with pdksh.)
|
||
|
||
Bugs fixed in 1.7.8:
|
||
* Remove spurious blank lines in cleaning rules introduced in 1.7.7.
|
||
* Fix detection of Debian's install-info, broken since version 1.5.
|
||
(Debian bug #213524).
|
||
* Honor -module if it appears in AM_LDFLAGS (i.e., relax name checking)
|
||
This was only done for libfoo_LDFLAGS and LDFLAGS in previous versions.
|
||
|
||
Bugs fixed in 1.7.7:
|
||
* The implementation of automake's --no-force option is unreliable,
|
||
so this option is ignored in this version. A real fix will appear in
|
||
Automake 1.8. (Debian Bug #206299)
|
||
* AM_PATH_PYTHON: really check the whole list of interpreters if no
|
||
argument is given. (PR/399)
|
||
* Do not warn about leading `_' in variable names, even with -Wportability.
|
||
* Support user redefinitions of TEXINFO_TEX.
|
||
* depcomp: support AIX Compiler version 6.
|
||
* Fix missing rebuilds during `make dist' with BSD make.
|
||
(Could produce tarballs containing out-of-date files.)
|
||
* Resurrect multilib support.
|
||
* Noteworthy manual updates:
|
||
- Extending aclocal: how to write m4 macros that won't trigger warnings
|
||
with Automake 1.8.
|
||
- A Shared Library: Rewrite and split into subsections.
|
||
|
||
Bugs fixed in 1.7.6:
|
||
* Fix depcomp's icc mode for ICC 7.1.
|
||
* Diagnose calls to AC_CONFIG_FILES and friends with not enough arguments.
|
||
* Fix maintainer-clean's removal of autom4te.cache in VPATH builds.
|
||
* Fix AM_PATH_LISPDIR to work with POSIXLY_CORRECT=1.
|
||
* Fix the location reported in some diagnostics related to AUTOMAKE_OPTIONS.
|
||
* Remove Latin-1 characters from elisp-comp.
|
||
* Update the manual's @dircategory to match the Free Software Directory.
|
||
|
||
Bugs fixed in 1.7.5:
|
||
* Update install-sh's license to remove an advertising clause.
|
||
(Debian bug #191717)
|
||
* Fix a bug introduced in 1.7.4, related to BUILT_SOURCE handling,
|
||
that caused invalid Makefile.ins to be generated.
|
||
* Make sure AM_MAKE_INCLUDE doesn't fail when a `doit' file exists.
|
||
* New FAQ entry: renamed objects.
|
||
|
||
Bugs fixed in 1.7.4:
|
||
* Tweak the TAGS rule to support Exuberant Ctags (in addition to
|
||
the Emacs implementation)
|
||
* Fix output of aclocal.m4 dependencies in subdirectories.
|
||
* Use `mv -f' instead of `mv' in fastdep rules.
|
||
* Upgrade mdate-sh to work on OS/2.
|
||
* Don't byte-compile elisp files when ELCFILES is set empty.
|
||
(this documented feature was broken by 1.7.3)
|
||
* Diagnose trailing backslashes on last line of Makefile.am.
|
||
* Diagnose whitespace following trailing backslashes.
|
||
* Multiple tests are now correctly supported in DEJATOOL. (PR/388)
|
||
* Fix rebuilt rules for AC_CONFIG_FILES([Makefile:Makefile.in:Makefile.bot])
|
||
Makefiles. (PR/389)
|
||
* `make install' will build `BUILT_SOURCES' first.
|
||
* Minor documentation fixes.
|
||
|
||
Bugs fixed in 1.7.3:
|
||
* Fix stamp files numbering (when using multiple AC_CONFIG_HEADERS).
|
||
* Query distutils for `pythondir' and `pythonexecdir', instead of
|
||
using an hardcoded path. This should allow builds on 64-bit
|
||
distributions that usually use lib64/ instead of lib/.
|
||
* AM_PATH_PYTHON will also search for python2.3.
|
||
* elisp files are now built all at once instead of one by one. Besides
|
||
incurring a speed-up, this is required to support interdependent elisp files.
|
||
* Support for DJGPP:
|
||
- `make distcheck' will now work in `_inst/' and `_build' instead
|
||
of `=inst/' and `=build/'
|
||
- use `_dirstamp' when the file-system doesn't support `.dirstamp'
|
||
- install/uninstall `*.i[0-9][0-9]'-style info files
|
||
- more changes that affect only the Automake package (not its output)
|
||
* Fix some incompatibilities with upcoming perl-5.10.
|
||
* Properly quote AC_PACKAGE_TARNAME and AC_PACKAGE_VERSION when defining
|
||
PACKAGE and VERSION.
|
||
* depcomp fixes:
|
||
- dashmstdout and dashXmstdout modes: don't use `-o /dev/null', this
|
||
is troublesome with gcc and Solaris compilers. (PR/385)
|
||
- makedepend mode: work with Libtool. (PR/385 too)
|
||
- support for ICC.
|
||
* better support for unusual gettext setups, such as multiple po/ directories
|
||
(PR/381):
|
||
- Flag missing po/ and intl/ directories as warnings, not errors.
|
||
- Disable these warnings if po/ does not exist.
|
||
* Noteworthy manual updates:
|
||
- New FAQ chapter.
|
||
- Document how AC_CONFIG_AUX_DIR interacts with missing files.
|
||
(Debian Bug #39542)
|
||
- Document `AM_YFLAGS = -d'. (PR/382)
|
||
|
||
Bugs fixed in 1.7.2:
|
||
* Fix installation and uninstallation of Info files built in subdirectories.
|
||
* Do not run `./configure --with-included-gettext' during `make distcheck'
|
||
if AM_GNU_GETTEXT([external]) is used.
|
||
* Correctly uninstall renamed man pages.
|
||
* Do not strip escaped newline in variables defined in one condition
|
||
and augmented in another condition.
|
||
* Fix ansi2knr rules for LIBOBJS sources.
|
||
* Clean all known Texinfo index files, not only those which appear to
|
||
be used, because we cannot know wich indexes are used in included files.
|
||
(PR/375, Debian Bug #168671)
|
||
* Honor only the first @setfilename seen in a Texinfo file.
|
||
* Treat "required file X not found" diagnostics as errors (exit status 1).
|
||
* Don't complain that a required file is not found when it is a Makefile
|
||
target. (PR/357)
|
||
* Don't use single suffix inference rules when building `.info'-less
|
||
Info files, for the sake of Solaris make.
|
||
* The `check' target now depends on `$(BUILT_SOURCES)'. (PR/359)
|
||
* Recognize multiple inference rules such as `.a.b .c.d:'. (PR/371)
|
||
* Warn about multiple inference rules when -Wportability is used. (PR/372)
|
||
* Fix building of deansified files from subdirectories. (PR/370)
|
||
* Add missing `fi' in the .c->.obj rules.
|
||
* Improve install-sh to work even when names contain spaces or certain
|
||
(but not all) shell metachars.
|
||
* Fix the following spurious failures in the test suite:
|
||
depcomp2.test, gnits2.test, gnits3.test, python3.test, texinfo13.test
|
||
* Noteworthy manual updates:
|
||
- Augment the section about BUILT_SOURCES.
|
||
- Mention that AM_PROG_CC_STDC is a relic that is better avoided today.
|
||
|
||
Bugs fixed in 1.7.1:
|
||
* Honor `ansi2knr' for files built in subdirectories, or using per-targets
|
||
flags.
|
||
* Aclocal should now recognize macro names containing parentheses, e.g.
|
||
AC_DEFUN([AC_LANG_PREPROC(Fortran 90)], [...]).
|
||
* Erase *.sum and *.log files created by DejaGnu, during `make distclean'.
|
||
(Debian Bug#153697)
|
||
* Install Python files even if they were built. (PR/369)
|
||
* Have stamp-vti dependent upon configure instead of configure.ac, as the
|
||
version might not be defined in the latter. (PR/358)
|
||
* Reorder arguments passed to a couple of commands, so things works
|
||
when POSIXLY_CORRECT=1.
|
||
* Fix a regex that can cause Perl to segfault on large input.
|
||
(Debian Bug#162583)
|
||
* Fix distribution of packages that have some sources defined conditionally,
|
||
as in the `Conditional compilation using Automake conditionals' example
|
||
of the manual.
|
||
* Fix spurious test suite failures on IRIX.
|
||
* Don't report a required variable as undefined if it has been
|
||
defined conditionally for the "right" conditions.
|
||
* Fix cleaning of the /tmp subdirectory used by `make distcheck', in case
|
||
`make distcheck' fails.
|
||
* Fix distribution of included Makefile fragment, so we don't create
|
||
spurious directories in the distribution. (PR/366)
|
||
* Don't complain that a target lacks `.$(EXEEXT)' when it has it.
|
||
|
||
New in 1.7:
|
||
* Autoconf 2.54 is required.
|
||
* `aclocal' and `automake' will no longer warn about obsolete
|
||
configure macros. This is done by `autoconf -Wobsolete'.
|
||
* AM_CONFIG_HEADER, AM_SYS_POSIX_TERMIOS and
|
||
AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL are obsolete (although still
|
||
supported). You should use AC_CONFIG_HEADERS, AC_SYS_POSIX_TERMIOS,
|
||
and AC_HEADER_TIOCGWINSZ instead. `autoupdate' can upgrade
|
||
`configure.ac' for you.
|
||
* Support for per-program and per-library `_CPPFLAGS'.
|
||
* New `ctags' target (builds CTAGS files).
|
||
* Support for -Wmumble and -Wno-mumble, where mumble is a warning category
|
||
(see `automake --help' or the manual for a list of them).
|
||
* Honor the WARNINGS environment variable.
|
||
* Omit the call to depcomp when using gcc3: call the compiler directly.
|
||
* A new option, std-options, tests that programs support --help and --version
|
||
when `make installcheck' is run. This is enabled by --gnits.
|
||
* Texinfo rules now support the `ps' and `pdf' targets.
|
||
* Info files are now created in the build directory, not the source directory.
|
||
* info_TEXINFOS supports files in subdirectories (this requires Texinfo 4.1
|
||
or greater).
|
||
* `make distcheck' will enforce DESTDIR support by attempting
|
||
a DESTDIR install.
|
||
* `+=' can be used in conditionals, even if the augmented variable
|
||
was defined for another condition.
|
||
* Makefile fragments (inserted with `include') are always distributed.
|
||
* Use Autoconf's --trace interface to inspect configure.ac and get
|
||
a more accurate view of it.
|
||
* Add support for extending aclocal's default macro search path
|
||
using a `dirlist' file within the aclocal directory.
|
||
* automake --output-dir is deprecated.
|
||
* The part of the distcheck target that checks whether uninstall actually
|
||
removes all installed files has been moved in a separate target,
|
||
distuninstallcheck, so it can be overridden easily.
|
||
* Many bug fixes.
|
||
|
||
New in 1.6.3:
|
||
* Support for AM_INIT_GETTEXT([external])
|
||
* Bug fixes, including:
|
||
- Fix Automake's own `make install' so it works even if `ln' doesn't.
|
||
- nobase_ programs and scripts honor --program-transform correctly.
|
||
- Erase configure.lineno during `make distclean'.
|
||
- Erase YACC and LEX outputs during `make maintainer-clean'.
|
||
|
||
New in 1.6.2:
|
||
* Many bug fixes, including:
|
||
- Requiring the current version works.
|
||
- Fix "$@" portability issues (for Zsh).
|
||
- Fix output of dummy dependency files in presence of post-processed
|
||
Makefile.in's.
|
||
- Don't compute dependencies in background to avoid races with libtool.
|
||
- Fix handling of _OBJECTS variables for targets sharing source variables.
|
||
- Check dependency mode for Java when AM_PROG_GCJ is used.
|
||
|
||
New in 1.6.1:
|
||
* automake --output-dir is deprecated
|
||
* Many bug fixes, including:
|
||
- Don't choke on AM_LDFLAGS definitions.
|
||
- Clean libtool objects from subdirectories.
|
||
- Allow configure variables with reserved suffix and unknown prefix
|
||
(e.g. AC_SUBST(mumble_LDFLAGS) when 'mumble' is not a target).
|
||
- Fix the definition of AUTOMAKE and ACLOCAL in configure.
|
||
|
||
New in 1.6:
|
||
* Autoconf 2.52 is required.
|
||
* automake no longer run libtoolize.
|
||
This is the job of autoreconf (from GNU Autoconf).
|
||
* `dist' generates all the archive flavors, as did `dist-all'.
|
||
* `dist-gzip' generates the Gzip tar file only.
|
||
* Combining Automake Makefile conditionals no longer lead to a combinatorial
|
||
explosion. Makefile.in's keep a reasonable size.
|
||
* AM_FUNC_ERROR_AT_LINE, AM_FUNC_STRTOD, AM_FUNC_OBSTACK, AM_PTRDIFF_T
|
||
are no longer shipped, since Autoconf 2.52 provides them (both as AM_
|
||
and AC_).
|
||
* `#line' of Lex and Yacc files are properly set.
|
||
* EXTRA_DIST can contain generated directories.
|
||
* Support for dot-less extensions in suffix rules.
|
||
* The part of the distcheck target that checks whether distclean actually
|
||
cleans all built files has been moved in a separate target, distcleancheck,
|
||
so it can be overridden easily.
|
||
* `make distcheck' will pass additional options defined in
|
||
$(DISTCHECK_CONFIGURE_FLAGS) to configure.
|
||
* Fixed CDPATH portability problems, in particular for MacOS X.
|
||
* Fixed handling of nobase_ targets.
|
||
* Fixed support of implicit rules leading to .lo objects.
|
||
* Fixed late inclusion of --add-missing files (e.g. depcomp) in DIST_COMMON
|
||
* Added uninstall-hook target
|
||
* `AC_INIT AM_INIT_AUTOMAKE(tarname,version)' is an obsolete construct.
|
||
You can now use `AC_INIT(pkgname,version) AM_INIT_AUTOMAKE' instead.
|
||
(Note that "pkgname" is not "tarname", see the manual for details.)
|
||
It is also possible to pass a list of global Automake options as
|
||
first argument to this new form of AM_INIT_AUTOMAKE.
|
||
* Compiler-based assembler is now called `CCAS'; people expected `AS'
|
||
to be a real assembler.
|
||
* AM_INIT_AUTOMAKE will set STRIP itself when it needs it. Adding
|
||
AC_CHECK_TOOL([STRIP], [strip]) manually is no longer required.
|
||
* aclocal and automake are also installed with the version number
|
||
appended, and some of the install directory names have changed.
|
||
This lets you have multiple versions installed simultaneously.
|
||
* Support for parsers and lexers in subdirectories.
|
||
|
||
New in 1.5:
|
||
* Support for `configure.ac'.
|
||
* Support for `else COND', `endif COND' and negated conditions `!COND'.
|
||
* `make dist-all' is much faster.
|
||
* Allows '@' AC_SUBSTs in macro names.
|
||
* Faster AM_INIT_AUTOMAKE (requires update of `missing' script)
|
||
* User-side dependency tracking. Developers no longer need GNU make
|
||
* Python support
|
||
* Uses DIST_SUBDIRS in some situations when SUBDIRS is conditional
|
||
* Most files are correctly handled if they appear in subdirs
|
||
For instance, a _DATA file can appear in a subdir
|
||
* GNU tar is no longer required for `make dist'
|
||
* Added support for `dist_' and `nodist_' prefixes
|
||
* Added support for `nobase_' prefix
|
||
* Compiled Java support
|
||
* Support for per-executable and per-library compilation flags
|
||
* Many bug fixes
|
||
|
||
New in 1.4:
|
||
* Added support for the Fortran 77 programming language.
|
||
* Re-indexed the Automake Texinfo manual.
|
||
* Added `AM_FOOFLAGS' variable for each compiler invocation;
|
||
e.g. AM_CFLAGS can be used in Makefile.am to set C compiler flags
|
||
* Support for latest autoconf, including support for objext
|
||
* Can now put `.' in SUBDIRS to control build order
|
||
* `include' command and `+=' support for macro assignment
|
||
* Dependency tracking no long susceptible to deleted header file problem
|
||
* Maintainer mode now a conditional. @MAINT@ is now an anachronism.
|
||
* Bug fixes
|
||
|
||
New in 1.3:
|
||
* Bug fixes
|
||
* Better Cygwin32 support
|
||
* Support for suffix rules with _SOURCES variables
|
||
* New options `readme-alpha' and `check-news'; Gnits mode sets these
|
||
* @LEXLIB@ no longer required when lex source seen
|
||
Lex support in `missing', and new lex macro. Update your missing script.
|
||
* Built-in support for assembly
|
||
* aclocal gives error if `AM_' macro not found
|
||
* Passed YFLAGS, not YACCFLAGS, to yacc
|
||
* AM_PROG_CC_STDC does not have to come before AC_PROG_CPP
|
||
* Dependencies computed as a side effect of compilation
|
||
* Preliminary support for Java
|
||
* DESTDIR support at "make install" time
|
||
* Improved ansi2knr support; you must use the latest ansi2knr.c (included)
|
||
|
||
New in 1.2:
|
||
* Bug fixes
|
||
* Better DejaGnu support
|
||
* Added no-installinfo option
|
||
* Added Emacs Lisp support
|
||
* Added --no-force option
|
||
* Included `aclocal' program
|
||
* Automake will now generate rules to regenerate aclocal.m4, if appropriate
|
||
* Now uses `AM_' macro names everywhere
|
||
* ansi2knr option can have directory prefix (eg `../lib/ansi2knr')
|
||
ansi2knr now works correctly on K&R sources
|
||
* Better C++, yacc, lex support
|
||
* Will compute _DEPENDENCIES variables automatically if not supplied
|
||
* Will interpolate $(...) and ${...} when examining contents of a variable
|
||
* .deps files now in build directory, not source directory; dependency
|
||
handling generally rewritten
|
||
* DATA, MANS and BUILT_SOURCES no longer included in distribution
|
||
* can now put config.h into a subdir
|
||
* Added dist-all target
|
||
* Support for install-info program (see texinfo 3.9)
|
||
* Support for "yacc -d"
|
||
* configure substitutions are automatically discovered and included
|
||
in generated Makefile.in
|
||
* Special --cygnus mode
|
||
* OMIT_DEPENDENCIES can now hold list of dependencies to be omitted
|
||
when making distribution. Some dependencies are auto-ignored.
|
||
* Changed how libraries are specified in _LIBRARIES variable
|
||
* Full libtool support, from Gord Matzigkeit
|
||
* No longer have to explicitly touch stamp-h when using AC_CONFIG_HEADER;
|
||
AM_CONFIG_HEADER handles it automatically
|
||
* Texinfo output files no longer need .info extension
|
||
* Added `missing' support
|
||
* Cygwin32 support
|
||
* Conditionals in Makefile.am, from Ian Taylor
|
||
|
||
New in 1.0:
|
||
* Bug fixes
|
||
* distcheck target runs install and installcheck targets
|
||
* Added preliminary support for DejaGnu.
|
||
|
||
New in 0.33:
|
||
* More bug fixes
|
||
* More checking
|
||
* More libtool fixes from Gord Matzigkeit; libtool support is still
|
||
preliminary however
|
||
* Added support for jm_MAINTAINER_MODE
|
||
* dist-zip support
|
||
* New "distcheck" target
|
||
|
||
New in 0.32:
|
||
* Many bug fixes
|
||
* mkinstalldirs and mdate-sh now appear in directory specified by
|
||
AC_CONFIG_AUX_DIR.
|
||
* Removed DIST_SUBDIRS, DIST_OTHER
|
||
* AC_ARG_PROGRAM only required when an actual program exists
|
||
* dist-hook target now run before distribution packaged up; idea from
|
||
Dieter Baron. Other hooks exist, too.
|
||
* Preliminary (unfinished) support for libtool
|
||
* Added short option names.
|
||
* Better "dist" support when gluing together multiple packages
|
||
|
||
New in 0.31:
|
||
* Bug fixes
|
||
* Documentation updates (many from Fran<61>ois Pinard)
|
||
* strictness `normal' now renamed to `foreign'
|
||
* Renamed --install-missing to --add-missing
|
||
* Now handles AC_CONFIG_AUX_DIR
|
||
* Now handles TESTS macro
|
||
* DIST_OTHER renamed to EXTRA_DIST
|
||
* DIST_SUBDIRS is deprecated
|
||
* @ALLOCA@ and @LIBOBJS@ now work in _LDADD variables
|
||
* Better error messages in many cases
|
||
* Program names are canonicalized
|
||
* Added "check" prefix; from Gord Matzigkeit
|
||
|
||
New in 0.30:
|
||
* Bug fixes
|
||
* configure.in scanner knows about AC_PATH_XTRA, AC_OUTPUT ":" syntax
|
||
* Beginnings of a test suite
|
||
* Automatically adds -I options for $(srcdir), ".", and path to config.h
|
||
* Doesn't print anything when running
|
||
* Beginnings of MAINT_CHARSET support
|
||
* Can specify version in AUTOMAKE_OPTIONS
|
||
* Most errors recognizable by Emacs' M-x next-error
|
||
* Added --verbose option
|
||
* All "primary" variables now obsolete; use EXTRA_PRIMARY to supply
|
||
configure-generated names
|
||
* Required macros now distributed in aclocal.m4
|
||
* New documentation
|
||
* --strictness=gnu is default
|
||
|
||
New in 0.29:
|
||
* Many bug fixes
|
||
* More sophisticated configure.in scanning; now understands ALLOCA and
|
||
LIBOBJS directly, handles AC_CONFIG_HEADER more precisely, etc.
|
||
* TEXINFOS and MANS now obsolete; use info_TEXINFOS and man_MANS instead.
|
||
* CONFIG_HEADER variable now obsolete
|
||
* Can handle multiple Texinfo sources
|
||
* Allow hierarchies deeper than 2. From Gord Matzigkeit.
|
||
* HEADERS variable no longer needed; now can put .h files directly into
|
||
foo_SOURCES variable.
|
||
* Automake automatically rebuilds files listed in AC_OUTPUT. The
|
||
corresponding ".in" files are included in the distribution.
|
||
|
||
New in 0.28:
|
||
* Added --gnu and --gnits options
|
||
* More standards checking
|
||
* Bug fixes
|
||
* Cleaned up 'dist' targets
|
||
* Added AUTOMAKE_OPTIONS variable and several options
|
||
* Now scans configure.in to get some information (preliminary)
|
||
|
||
New in 0.27:
|
||
* Works with Perl 4 again
|
||
|
||
New in 0.26:
|
||
* Added --install-missing option.
|
||
* Pretty-prints generated macros and rules
|
||
* Comments in Makefile.am are placed more intelligently in Makefile.in
|
||
* Generates .PHONY target
|
||
* Rule or macro in Makefile.am now overrides contents of Automake file
|
||
* Substantial cleanups from Fran<61>ois Pinard
|
||
|
||
New in 0.25:
|
||
* Bug fixes.
|
||
* Works with Perl 4 again.
|
||
|
||
New in 0.24:
|
||
* New uniform naming scheme.
|
||
* --strictness option
|
||
* Works with Perl 5
|
||
* '.c' files corresponding to '.y' or '.l' files are automatically
|
||
distributed.
|
||
* Many bug fixes and cleanups
|
||
|
||
New in 0.23:
|
||
* Allow objects to be conditionally included in libraries via lib_LIBADD.
|
||
|
||
New in 0.22:
|
||
* Bug fixes in 'clean' code.
|
||
* Now generates 'installdirs' target.
|
||
* man page installation reworked.
|
||
* 'make dist' no longer re-creates all Makefile.in's.
|
||
|
||
New in 0.21:
|
||
* Reimplemented in Perl
|
||
* Added --amdir option (for debugging)
|
||
* Texinfo support cleaned up.
|
||
* Automatic de-ANSI-fication cleaned up.
|
||
* Cleaned up 'clean' targets.
|
||
|
||
New in 0.20:
|
||
* Automatic dependency tracking
|
||
* More documentation
|
||
* New variables DATA and PACKAGEDATA
|
||
* SCRIPTS installed using $(INSTALL_SCRIPT)
|
||
* No longer uses double-colon rules
|
||
* Bug fixes
|
||
* Changes in advance of internationalization
|
||
|
||
-----
|
||
|
||
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
||
2004, 2005, 2006, 2007 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/>.
|