| New in 2.0: | |
| * Compilation and object files: | |
| - If a source file is placed in a subdirectory, the corresponding compiled | |
| object will *always* be put into the subdirectory named after the source | |
| file, rather than in the current directory. For instance, 'src/file.c' | |
| and 'src/file.f90' will be compiled to 'src/file.o', and 'sub/dir/mu.cc' | |
| will be compiled to 'sub/dir/mu.o'. Put in another way, Automake 2.0 | |
| and later will *unconditionally* behave as older Automake versions did | |
| when the 'subdir-objects' option was given. | |
| * Texinfo support: | |
| - Automake used to implement an undocumented hack causing '.info' files | |
| that appeared to be cleaned (by e.g. being listed in the CLEANFILES | |
| variable) to also be built in the builddir rather than in the srcdir; | |
| this was for backward compatibility with packages such as Texinfo, | |
| which did things like: | |
| info_TEXINFOS = texinfo.txi info-stnd.texi info.texi | |
| DISTCLEANFILES = texinfo texinfo-* info*.info* | |
| # Do not create info files for distribution. | |
| dist-info: | |
| @: | |
| in order not to distribute .info files. | |
| Now that we have the 'info-in-builddir' option that explicitly causes | |
| generated '.info' files to be placed in the builddir, this hack is no | |
| longer necessary. We have thus removed\ it. | |
| * Aclocal search path: | |
| - Third-party m4 files located in the system-wide aclocal directory, | |
| as well as in any directory listed in the ACLOCAL_PATH environment | |
| variable, now take precedence over "built-in" Automake macros. | |
| For example, assuming Automake is installed in the '/usr/local' | |
| hierarchy, a definition of the AM_PROG_VALAC macro found in file | |
| (say) '/usr/local/share/aclocal/my-vala.m4' should take precedence | |
| over the same-named automake-provided macro, as defined in file | |
| '/usr/local/share/aclocal-2.0/vala.m4'. | |
| * Obsolescent features flagged: | |
| - Use of the special makefile variable 'ACLOCAL_AMFLAGS' is deprecated. | |
| To specify locations of extra m4 files, the 'AC_CONFIG_MACRO_DIR' or | |
| 'AC_CONFIG_MACRO_DIRS' (the latter introduced with autoconf 2.70) | |
| should be used instead. And use of the '--install' aclocal option in | |
| 'ACLOCAL_AMFLAGS' has proved to be a bad idea anyway -- see automake | |
| bug#9037. | |
| * Obsolete features removed: | |
| - Support for the long-deprecated name 'configure.in' for the Autoconf | |
| input file has been removed altogether. Just use the modern name | |
| 'configure.ac' instead. | |
| - Support for the long-obsolete variable $(ACLOCAL_M4_SOURCES) has | |
| been removed. It should be safe to simply remove any definition | |
| of it you have in your Makefiles. | |
| * Removed support for obsolete platforms: | |
| - Support for automatic dependency tracking with the SGI C/C++ compilers | |
| on IRIX has been removed. The SGI depmode had been reported broken | |
| "in the wild" already, and we don't think investing time in debugging | |
| and fixing it would have been worthwhile, especially considering that | |
| SGI has last updated those compilers in 2006, and is expected to retire | |
| support for them in December 2013: | |
| <http://www.sgi.com/services/support/irix_mips_support.html> | |
| - Support for DJGPP on MS-DOS and/or Windows 95/98/ME has been removed. | |
| Note that both Cygwin and MSYS/MinGW on modern Windows versions will | |
| continue to be fully supported. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| * WARNING: Future backward-incompatibilities! | |
| - Makefile recipes generated by Automake 2.0 will expect to use an | |
| 'rm' program that doesn't complain when called without any non-option | |
| argument if the '-f' option is given (so that commands like "rm -f" | |
| and "rm -rf" will act as a no-op, instead of raising usage errors). | |
| This behavior of 'rm' is very widespread in the wild, and it will be | |
| required in the next POSIX version: | |
| <http://austingroupbugs.net/view.php?id=542> | |
| Accordingly, AM_INIT_AUTOMAKE now expands some shell code that checks | |
| that the default 'rm' program in PATH satisfies this requirement, | |
| aborting the configure process if this is not the case. For the | |
| moment, it's still possible to force the configuration process to | |
| succeed even with a broken 'rm', that that will no longer be the case | |
| for Automake 2.0. | |
| - Automake 2.0 will require Autoconf 2.70 or later (which is still | |
| unreleased at the moment of writing, but is planned to be released | |
| before Automake 2.0 is). | |
| - Automake 2.0 will drop support for the long-deprecated 'configure.in' | |
| name for the Autoconf input file. You are advised to start using the | |
| recommended name 'configure.ac' instead, ASAP. | |
| - The ACLOCAL_AMFLAGS special make variable will be fully deprecated in | |
| Automake 2.0: it will raise warnings in the "obsolete" category (but | |
| still no hard error of course, for compatibilities with the many, many | |
| packages that still relies on that variable). You are advised to | |
| start relying on the new Automake support for AC_CONFIG_MACRO_DIRS | |
| instead (which was introduced in Automake 1.13). | |
| - Automake 2.0 will remove support for automatic dependency tracking | |
| with the SGI C/C++ compilers on IRIX. The SGI depmode has been | |
| reported broken "in the wild" already, and we don't think investing | |
| time in debugging and fixing is worthwhile, especially considering | |
| that SGI has last updated those compilers in 2006, and retired | |
| support for them in December 2013: | |
| <http://www.sgi.com/services/support/irix_mips_support.html> | |
| - Automake 2.0 will remove support for MS-DOS and Windows 95/98/ME | |
| (support for them was offered by relying on the DJGPP project). | |
| Note however that both Cygwin and MSYS/MinGW on modern Windows | |
| versions will continue to be fully supported. | |
| - Automake-provided scripts and makefile recipes might (finally!) | |
| start assuming a POSIX shell in Automake 2.0. There still is no | |
| certainty about this though: we'd first like to wait and see | |
| whether future Autoconf versions will be enhanced to guarantee | |
| that such a shell is always found and provided by the checks in | |
| ./configure. | |
| - Starting from Automake 2.0, third-party m4 files located in the | |
| system-wide aclocal directory, as well as in any directory listed | |
| in the ACLOCAL_PATH environment variable, will take precedence | |
| over "built-in" Automake macros. For example (assuming Automake | |
| is installed in the /usr/local hierarchy), a definition of the | |
| AM_PROG_VALAC macro found in '/usr/local/share/aclocal/my-vala.m4' | |
| should take precedence over the same-named automake-provided macro | |
| (defined in '/usr/local/share/aclocal-2.0/vala.m4'). | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in ?.?.?: | |
| * Miscellaneous changes | |
| - When subdir-objects is in effect, Automake will now construct | |
| shorter object file names when no programs and libraries name | |
| clashes are encountered. This should make the discouraged use of | |
| 'foo_SHORTNAME' unnecessary in many cases. | |
| * Bugs fixed: | |
| - Automatic dependency tracking has been fixed to work also when the | |
| 'subdir-object' option is used and some 'foo_SOURCES' definition | |
| contains unexpanded references to make variables, as in, e.g.: | |
| a_src = sources/libs/aaa | |
| b_src = sources/bbb | |
| foo_SOURCES = $(a_src)/bar.c $(b_src)/baz.c | |
| With such a setup, the created makefile fragment containing dependency | |
| tracking information will be correctly placed under the directories | |
| named 'sources/libs/aaa/.deps' and 'sources/bbb/.deps', rather than | |
| mistakenly under directories named (literally!) '$(src_a)/.deps' and | |
| '$(src_b)/.deps' (this was the first part of automake bug#13928). | |
| Notice that in order to fix this bug we had to slightly change the | |
| semantics of how config.status bootstraps the makefile fragments | |
| required for the dependency tracking to work: rather than attempting | |
| to parse the Makefiles via grep and sed trickeries only, we actually | |
| invoke 'make' on a slightly preprocessed version of those Makefiles, | |
| using a private target that is only meant to bootstrap the required | |
| makefile fragments. | |
| - The 'subdir-object' option no longer causes object files corresponding | |
| to source files specified with an explicit '$(srcdir)' component to be | |
| placed in the source tree rather than in the build tree. | |
| For example, if Makefile.am contains: | |
| AUTOMAKE_OPTIONS = subdir-objects | |
| foo_SOURCES = $(srcdir)/foo.c $(srcdir)/s/bar.c $(top_srcdir)/baz.c | |
| then "make all" will create 'foo.o' and 's/bar.o' in $(builddir) rather | |
| than in $(srcdir), and will create 'baz.o' in $(top_builddir) rather | |
| than in $(top_srcdir). | |
| This was the second part of automake bug#13928. | |
| - Installed 'aclocal' m4 macros can now accept installation directories | |
| containing '@' characters (automake bug#20903) | |
| - When combining AC_LIBOBJ or AC_FUNC_ALLOCA with the | |
| "--disable-dependency-tracking" configure option in an out of source | |
| build, the build sub-directory defined by AC_CONFIG_LIBOBJ_DIR is now | |
| properly created. (automake bug#27781) | |
| - The time printed by 'mdate-sh' is now using the UTC time zone to support | |
| the reproducible build effort. (automake bug#20314) | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.15.1: | |
| * Bugs fixed: | |
| - The code has been adapted to remove a warning present since Perl | |
| 5.22 stating that "Unescaped left brace in regex is deprecated". | |
| This warning has become an hard error in Perl 5.26 (bug#22372). | |
| - The generated Makefiles do not rely on the obsolescent GZIP | |
| environment variable which was used for passing arguments to | |
| 'gzip'. Compatibility with old versions has been | |
| preserved. (bug#20132) | |
| * Miscellaneous changes: | |
| - Support the Windows version of the Intel C Compiler (icl) in the | |
| 'compile' script in the same way the (compatible) Microsoft C | |
| Compiler is supported. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.15: | |
| * Improvements and refactorings in the install-sh script: | |
| - It has been modernized, and now makes the following assumptions | |
| *unconditionally*: | |
| (1) a working 'dirname' program is available; | |
| (2) the ${var:-value} shell parameters substitution works; | |
| (3) the "set -f" and "set +f" shell commands work, and, respectively, | |
| disable and enable shell globbing. | |
| - The script implements stricter error checking, and now it complains | |
| and bails out if any of the following expectations is not met: | |
| (1) the options -d and -t are never used together; | |
| (2) the argument passed to option -t is a directory; | |
| (3) if there are two or more SOURCEFILE arguments, the | |
| DESTINATION argument must be a directory. | |
| * Automake-generated testsuites: | |
| - The default test-driver used by the Automake-generated testsuites | |
| now appends the result and exit status of each "plain" test to the | |
| associated log file (automake bug#11814). | |
| - The perl implementation of the TAP testsuite driver is no longer | |
| installed in the Automake's scripts directory, and is instead just | |
| distributed as a "contrib" addition. There should be no reason to | |
| use this implementation anyway in real packages, since the awk+shell | |
| implementation of the TAP driver (which is documented in the manual) | |
| is more portable and has feature parity with the perl implementation. | |
| - The rule generating 'test-suite.log' no longer risk incurring in an | |
| extra useless "make all" recursive invocation in some corner cases | |
| (automake bug#16302). | |
| * Distribution: | |
| - Automake bug#18286: "make distcheck" could sometimes fail to detect | |
| files missing from the distribution tarball, especially in those cases | |
| where both the generated files and their dependencies are explicitly | |
| in $(srcdir). An important example of this are *generated* makefile | |
| fragments included at Automake time in Makefile.am; e.g.: | |
| ... | |
| $(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh | |
| cd $(srcdir) && $(SHELL) preproc.sh <data.txt >fragment.am | |
| include $(srcdir)/fragment.am | |
| ... | |
| If the use forgot to add data.txt and/or preproc.sh in the distribution | |
| tarball, "make distcheck" would have erroneously succeeded! This issue | |
| is now fixed. | |
| - As a consequence of the previous change, "make distcheck" will run | |
| using '$(distdir)/_build/sub' as the build directory, rather than | |
| simply '$(distdir)/_build' (as it was the case for Automake 1.14 and | |
| earlier). Consequently, the './configure' and 'make' invocations | |
| issued by the distcheck recipe now have $(srcdir) equal to '../..', | |
| rather than to just '..'. Dependent and similar variables (e.g., | |
| '$(top_srcdir)') are also changed accordingly. | |
| Thus, Makefiles that made assumptions about the exact values of the | |
| build and source directories used by "make distcheck" will have to | |
| be adjusted. Notice that making such assumptions was a bad and | |
| unsupported practice anyway, since the exact locations of those | |
| directories should be considered implementation details, and we | |
| reserve the right to change them at any time. | |
| * Miscellaneous bugs fixed: | |
| - The expansion of AM_INIT_AUTOMAKE ends once again with a trailing | |
| newline (bug#16841). Regression introduced in Automake 1.14. | |
| - We no longer risk to use '$ac_aux_dir' before it's defined (see | |
| automake bug#15981). Bug introduced in Automake 1.14. | |
| - The code used to detect whether the currently used make is GNU make | |
| or not (relying on the private macro 'am__is_gnu_make') no longer | |
| risks causing "Arg list too long" for projects using automatic | |
| dependency tracking and having a ton of source files (bug#18744). | |
| - Automake tries to offer a more deterministic output for generated | |
| Makefiles, in the face of the newly-introduced randomization for | |
| hash keys order in Perl 5.18. | |
| - In older Automake versions, if a user defined one single Makefile | |
| fragment (say 'foo.am') to be included via Automake includes in | |
| his main Makefile.am, and defined a custom make rule to generate that | |
| file from other data, Automake used to spuriously complain with some | |
| message like "... overrides Automake target '$(srcdir)/foo.am". | |
| This bug is now fixed. | |
| - The user can now extend the special .PRECIOUS target, the same way | |
| he could already do with the .MAKE .and .PHONY targets. | |
| - Some confusing typos have been fixed in the manual and in few warning | |
| messages (automake bug#16827 and bug#16997). | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.14.1: | |
| * Bugs fixed: | |
| - The user is no longer allowed to override the --srcdir nor the --prefix | |
| configure options used by "make distcheck" (bug#14991). | |
| - Fixed a gross inefficiency in the recipes for installing byte-compiled | |
| python files, that was causing an O(N^2) performance on the number N of | |
| files, instead of the expected O(N) performance. Note that this bug | |
| was only relevant when the number of python files was high (which is | |
| unusual in practice). | |
| - Automake try to offer a more deterministic output for warning messages, | |
| in the face of the newly-introduced randomization for hash keys order | |
| in Perl 5.18. | |
| - The 'test-driver' script now actually error out with a clear error | |
| message on the most common invalid usages. | |
| - Several spurious failures/hangs in the testsuite (bugs #14706, #14707, | |
| #14760, #14911, #15181, #15237). | |
| * Documentation fixes: | |
| - Fixed typos in the 'fix-timestamp.sh' example script that made it | |
| nonsensical. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.14: | |
| * C compilation, and the AC_PROG_CC and AM_PROG_CC_C_O macros: | |
| - The 'compile' script is now unconditionally required for all packages | |
| that perform C compilation (if you are using the '--add-missing' | |
| option, automake will fetch that script for you, so you shouldn't | |
| need any explicit adjustment). This new behaviour is needed to avoid | |
| obscure errors when the 'subdir-objects' option is used, and the | |
| compiler is an inferior one that doesn't grasp the combined use of | |
| both the "-c -o" options; see discussion about automake bug#13378 for | |
| more details: | |
| <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35> | |
| <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44> | |
| - The next major Automake version (2.0) will unconditionally activate | |
| the 'subdir-objects' option. In order to smooth out the transition, | |
| we now give a warning (in the category 'unsupported') whenever a | |
| source file is present in a subdirectory but the 'subdir-object' is | |
| not enabled. For example, the following usage will trigger such a | |
| warning: | |
| bin_PROGRAMS = sub/foo | |
| sub_foo_SOURCES = sub/main.c sub/bar.c | |
| - Automake will automatically enhance the autoconf-provided macro | |
| AC_PROG_CC to force it to check, at configure time, that the | |
| C compiler supports the combined use of both the '-c' and '-o' | |
| options. The result of this check is saved in the cache variable | |
| 'am_cv_prog_cc_c_o', and said result can be overridden by | |
| pre-defining that variable. | |
| - The AM_PROG_CC_C_O macro can still be called, albeit that should no | |
| longer be necessary. This macro is now just a thin wrapper around the | |
| Automake-enhanced AC_PROG_CC. This means, among the other things, | |
| that its behaviour is changed in three ways: | |
| 1. It no longer invokes the Autoconf-provided AC_PROG_CC_C_O | |
| macro behind the scenes. | |
| 2. It caches the check result in the 'am_cv_prog_cc_c_o' variable, | |
| and not in a 'ac_cv_prog_cc_*_c_o' variable whose exact name is | |
| dynamically computed only at configure runtime (really!) from | |
| the content of the '$CC' variable. | |
| 3. It no longer automatically AC_DEFINE the C preprocessor | |
| symbol 'NO_MINUS_C_MINUS_O'. | |
| * Texinfo support: | |
| - Automake can now be instructed to place '.info' files generated from | |
| Texinfo input in the builddir rather than in the srcdir; this is done | |
| specifying the new automake option 'info-in-builddir'. This feature | |
| was requested by the developers of GCC, GDB, GNU binutils and the GNU | |
| bfd library. See the extensive discussion about automake bug#11034 | |
| for more details. | |
| - For quite a long time, Automake has been implementing an undocumented | |
| hack which ensured that '.info' files which appeared to be cleaned | |
| (by being listed in the CLEANFILES or DISTCLEANFILES variables) were | |
| built in the builddir rather than in the srcdir; this hack was | |
| introduced to ensure better backward-compatibility with package | |
| such as Texinfo, which do things like: | |
| info_TEXINFOS = texinfo.txi info-stnd.texi info.texi | |
| DISTCLEANFILES = texinfo texinfo-* info*.info* | |
| # Do not create info files for distribution. | |
| dist-info: | |
| @: | |
| in order not to distribute generated '.info' files. | |
| Now that we have the 'info-in-builddir' option that explicitly causes | |
| generated '.info' files to be placed in the builddir, this hack should | |
| be longer necessary, so we deprecate it with runtime warnings. | |
| It will be removed altogether in Automake 2.0. | |
| * Relative directory in Makefile fragments: | |
| - The special Automake-time substitutions '%reldir%' and '%canon_reldir%' | |
| (and their short versions, '%D%' and '%C%' respectively) can now be used | |
| in an included Makefile fragment. The former is substituted with the | |
| relative directory of the included fragment (compared to the top-level | |
| including Makefile), and the latter with the canonicalized version of | |
| the same relative directory. | |
| # in 'Makefile.am': | |
| bin_PROGRAMS = # will be updated by included Makefile fragments | |
| include src/Makefile.inc | |
| # in 'src/Makefile.inc': | |
| bin_PROGRAMS += %reldir%/foo | |
| %canon_reldir%_foo_SOURCES = %reldir%/bar.c | |
| This should be especially useful for packages using a non-recursive | |
| build system. | |
| * Deprecated distribution formats: | |
| - The 'shar' and 'compress' distribution formats are deprecated, and | |
| scheduled for removal in Automake 2.0. Accordingly, the use of the | |
| 'dist-shar' and 'dist-tarZ' will cause warnings at automake runtime | |
| (in the 'obsolete' category), and the recipes of the Automake-generated | |
| targets 'dist-shar' and 'dist-tarZ' will unconditionally display | |
| (non-fatal) warnings at make runtime. | |
| * New configure runtime warnings about "rm -f" support: | |
| - To simplify transition to Automake 2.0, the shell code expanded by | |
| AM_INIT_AUTOMAKE now checks (at configure runtime) that the default | |
| 'rm' program in PATH doesn't complain when called without any | |
| non-option argument if the '-f' option is given (so that commands like | |
| "rm -f" and "rm -rf" act as a no-op, instead of raising usage errors). | |
| If this is not the case, the configure script is aborted, to call the | |
| attention of the user on the issue, and invite him to fix his PATH. | |
| The checked 'rm' behavior is very widespread in the wild, and will be | |
| required by future POSIX versions: | |
| <http://austingroupbugs.net/view.php?id=542> | |
| The user can still force the configure process to complete even in the | |
| presence of a broken 'rm' by defining the ACCEPT_INFERIOR_RM_PROGRAM | |
| environment variable to "yes". And the generated Makefiles should | |
| still work correctly even when such broken 'rm' is used. But note | |
| that this will no longer be the case with Automake 2.0 though, so, if | |
| you encounter the warning, please report it to us ASAP (and try to fix | |
| your environment as well). | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.13.4: | |
| * Bugs fixed: | |
| - Fix a minor regression introduced in Automake 1.13.3: when two or more | |
| user-defined suffix rules were present in a single Makefile.am, | |
| automake would needlessly include definition of some make variables | |
| related to C compilation in the generated Makefile.in (bug#14560). | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.13.3: | |
| * Documentation fixes: | |
| - The documentation no longer mistakenly reports that the obsolete | |
| 'AM_MKDIR_PROG_P' macro and '$(mkdir_p)' make variable are going | |
| to be removed in Automake 2.0. | |
| * Bugs fixed: | |
| - Byte-compilation of Emacs lisp files could fail spuriously on | |
| Solaris, when /bin/ksh or /usr/xpg4/bin/sh were used as shell. | |
| - If the same user-defined suffixes were transformed into different | |
| Automake-known suffixes in different Makefile.am files in the same | |
| project, automake could get confused and generate inconsistent | |
| Makefiles (automake bug#14441). | |
| For example, if 'Makefile.am' contained a ".ext.cc:" suffix rule, | |
| and 'sub/Makefile.am' contained a ".ext.c:" suffix rule, automake | |
| would have mistakenly placed into 'Makefile.in' rules to compile | |
| "*.c" files into object files, and into 'sub/Makefile.in' rules to | |
| compile "*.cc" files into object files --- rather than the other | |
| way around. This is now fixed. | |
| * Testsuite work: | |
| - The test cases no longer have the executable bit set. This should | |
| make it clear that they are not meant to be run directly; as | |
| explained in t/README, they can only be run through the custom | |
| 'runtest' script, or by a "make check" invocation. | |
| - The testsuite has seen the introduction of a new helper function | |
| 'run_make', and several related changes. These serve a two-fold | |
| purpose: | |
| 1. Remove brittleness due to the use of "make -e" in test cases. | |
| 2. Seamlessly allow the use of parallel make ("make -j...") in the | |
| test cases, even where redirection of make output is involved | |
| (see automake bug#11413 for a description of the subtle issues | |
| in this area). | |
| - Several spurious failures have been fixed (they hit especially | |
| MinGW/MSYS builds). See automake bugs #14493, #14494, #14495, | |
| #14498, #14499, #14500, #14501, #14517 and #14528. | |
| - Some other minor miscellaneous changes and fixlets. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.13.2: | |
| * Documentation fixes: | |
| - The long-deprecated but still supported two-arguments invocation form | |
| of AM_INIT_AUTOMAKE is documented once again. This seems the sanest | |
| thing to do, given that support for such usage might need to remain | |
| in place for an unspecified amount of time in order to cater to people | |
| who want to define the version number for their package dynamically at | |
| configure runtime (unfortunately, Autoconf does not yet support this | |
| scenario, so we cannot delegate the work to it). | |
| - The serial testsuite harness is no longer reported as "deprecated", | |
| but as "discouraged". We have no plan to remove it, nor to make its | |
| use cause runtime warnings. | |
| - The parallel testsuite is no longer reported as "experimental"; it | |
| is well tested, and should be stable now. | |
| - The 'shar' and 'tarZ' distribution formats and the 'dist-shar' and | |
| 'dist-tarZ' options are obsolescent, and their use is deprecated | |
| in the documentation. | |
| - Other minor miscellaneous fixes and improvements; in particular, | |
| some improvements in cross-references. | |
| * Obsolescent features: | |
| - Use of suffix-less info files (that can be specified through the | |
| '@setfilename' macro in Texinfo input files) is discouraged, and | |
| its use will raise warnings in the 'obsolete' category. Simply | |
| use the '.info' extension for all your info files, transforming | |
| usages like: | |
| @setfilename myprogram | |
| into: | |
| @setfilename myprogram.info | |
| - Use of Texinfo input files with '.txi' or '.texinfo' extensions | |
| is discouraged, and its use will raise warnings in the 'obsolete' | |
| category. You are advised to simply use the '.texi' extension | |
| instead. | |
| * Bugs fixed: | |
| - When the 'ustar' option is used, the generated configure script no | |
| longer risks hanging during the tests for the availability of the | |
| 'pax' utility, even if the user running configure has a UID or GID | |
| that requires more than 21 bits to be represented. | |
| See automake bug#8343 and bug#13588. | |
| - The obsolete macros AM_CONFIG_HEADER or AM_PROG_CC_STDC work once | |
| again, as they did in Automake 1.12.x (albeit printing runtime | |
| warnings in the 'obsolete' category). Removing them has turned | |
| out to be a very bad idea, because it complicated distro packing | |
| enormously. Making them issue fatal warnings, as we did in | |
| Automake 1.13, has turned out to be a similarly very bad idea, | |
| for exactly the same reason. | |
| - aclocal will no longer error out if the first local m4 directory | |
| (as specified by the '-I' option or the 'AC_CONFIG_MACRO_DIRS' or | |
| 'AC_CONFIG_MACRO_DIR' macros) doesn't exist; it will merely report | |
| a warning in the 'unsupported' category. This is done to support | |
| some pre-existing real-world usages. See automake bug#13514. | |
| - aclocal will no longer consider directories for extra m4 files more | |
| than once, even if they are specified multiple times. This ensures | |
| packages that specify both | |
| AC_CONFIG_MACRO_DIR([m4]) in configure.ac | |
| ACLOCAL_AMFLAGS = -I m4 in Makefile.am | |
| will work correctly, even when the 'm4' directory contains no | |
| package-specific files, but is used only to install third-party | |
| m4 files (as can happen with e.g., "libtoolize --install"). | |
| See automake bug#13514. | |
| - Analysis of make flags in Automake-generated rules has been made more | |
| robust, and more future-proof. For example, in presence of make that | |
| (like '-I') take an argument, the characters in said argument will no | |
| longer be spuriously considered as a set of additional make options. | |
| In particular, automake-generated rules will no longer spuriously | |
| believe to be running in dry mode ("make -n") if run with an invocation | |
| like "make -I noob"; nor will they believe to be running in keep-going | |
| mode ("make -k") if run with an invocation like "make -I kool" | |
| (automake bug#12554). | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.13.1: | |
| * Bugs fixed: | |
| - Use of the obsolete macros AM_CONFIG_HEADER or AM_PROG_CC_STDC now | |
| causes a clear and helpful error message, instead of obscure ones | |
| (issue introduced in Automake 1.13). | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.13: | |
| * Bugs fixed: | |
| - ylwrap renames properly header guards in generated header files | |
| (*.h), instead of leaving Y_TAB_H. | |
| - ylwrap now also converts header guards in implementation files | |
| (*.c). Because ylwrap failed to rename properly #include in the | |
| implementation files, current versions of Bison (e.g., 2.7) | |
| duplicate the generated header file in the implementation file. | |
| The header guard then protects the implementation file from | |
| duplicate definitions from the header file. | |
| * Version requirements: | |
| - Autoconf 2.65 or greater is now required. | |
| - The rules to build PDF and DVI output from Texinfo input now | |
| require Texinfo 4.9 or later. | |
| * Obsolete features: | |
| - Support for the "Cygnus-style" trees (once enabled by the 'cygnus' | |
| option) has been removed. See discussion about automake bug#11034 | |
| for more background: <https://debbugs.gnu.org/11034>. | |
| - The deprecated aclocal option '--acdir' has been removed. You | |
| should use the options '--automake-acdir' and '--system-acdir' | |
| instead (which have been introduced in Automake 1.11.2). | |
| - The following long-obsolete m4 macros have been removed: | |
| AM_PROG_CC_STDC: superseded by AC_PROG_CC since October 2002 | |
| fp_PROG_CC_STDC: broken alias for AM_PROG_CC_STDC | |
| fp_WITH_DMALLOC: old alias for AM_WITH_DMALLOC | |
| AM_CONFIG_HEADER: superseded by AC_CONFIG_HEADERS since July 2002 | |
| ud_PATH_LISPDIR: old alias for AM_PATH_LISPDIR | |
| jm_MAINTAINER_MODE: old alias for AM_MAINTAINER_MODE | |
| ud_GNU_GETTEXT: old alias for AM_GNU_GETTEXT | |
| gm_PROG_LIBTOOL: old alias for AC_PROG_LIBTOOL | |
| fp_C_PROTOTYPES: old alias for AM_C_PROTOTYPES (which was part | |
| of the now-removed automatic de-ANSI-fication | |
| support of Automake) | |
| - All the "old alias" macros in 'm4/obsolete.m4' have been removed. | |
| - Use of the long-deprecated two- and three-arguments invocation forms | |
| of the AM_INIT_AUTOMAKE is no longer documented. It's still supported | |
| though (albeit with a warning in the 'obsolete' category), to cater | |
| for people who want to define the version number for their package | |
| dynamically (e.g., from the current VCS revision). We'll have to | |
| continue this support until Autoconf itself is fixed to allow better | |
| support for such dynamic version numbers. | |
| * Elisp byte-compilation: | |
| - The byte compilation of '.el' files into '.elc' files is now done | |
| with a suffix rule. This has simplified the compilation process, and | |
| more importantly made it less brittle. The downside is that emacs is | |
| now invoked once for each '.el' files, which cause some noticeable | |
| slowdowns. These should however be mitigated on multicore machines | |
| (which are becoming the norm today) if concurrent make ("make -j") | |
| is used. | |
| - Elisp files placed in a subdirectory are now byte-compiled to '.elc' | |
| files in the same subdirectory; for example, byte-compiling of file | |
| 'sub/foo.el' file will result in 'sub/foo.elc' rather than in | |
| 'foo.elc'. This behaviour is backward-incompatible with older | |
| Automake versions, but it is more natural and more sane. See also | |
| automake bug#7441. | |
| - The Emacs invocation performing byte-compilation of '.el' files honors | |
| the $(AM_ELCFLAGS) and $(ELCFLAGS) variables; as typical, the former | |
| one is developer-reserved and the latter one user-reserved. | |
| - The 'elisp-comp' script, once provided by Automake, has been rendered | |
| obsoleted by the just-described changes, and thus removed. | |
| * Changes to Automake-generated testsuite harnesses: | |
| - The parallel testsuite harness (previously only enabled by the | |
| 'parallel-tests' option) is the default one; the older serial | |
| testsuite harness will still be available through the use of the | |
| 'serial-tests' option (introduced in Automake 1.12). | |
| - The 'color-tests' option is now unconditionally activated by default. | |
| In particular, this means that testsuite output is now colorized by | |
| default if the attached terminal seems to support ANSI escapes, and | |
| that the user can force output colorization by setting the variable | |
| AM_COLOR_TESTS to "always". The 'color-tests' is still recognized | |
| for backward-compatibility, although it's a handled as a no-op now. | |
| * Silent rules support: | |
| - Support for silent rules is now always active in Automake-generated | |
| Makefiles. So, although the verbose output is still the default, | |
| the user can now always use "./configure --enable-silent-rules" or | |
| "make V=0" to enable quieter output in the package he's building. | |
| - The 'silent-rules' option has now become a no-op, preserved for | |
| backward-compatibility only. In particular, its use no longer | |
| disables the warnings in the 'portability-recursive' category. | |
| * Texinfo Support: | |
| - The rules to build PDF and DVI files from Texinfo input now require | |
| Texinfo 4.9 or later. | |
| - The rules to build PDF and DVI files from Texinfo input now use the | |
| '--build-dir' option, to keep the auxiliary files used by texi2dvi | |
| and texi2pdf around without cluttering the build directory, and to | |
| make it possible to run the "dvi" and "pdf" recipes in parallel. | |
| * Automatic remake rules and 'missing' script: | |
| - The 'missing' script no longer tries to update the timestamp of | |
| out-of-date files that require a maintainer-specific tool to be | |
| remade, in case the user lacks such a tool (or has a too-old version | |
| of it). It just gives a useful warning, and in some cases also a | |
| tip about how to obtain such a tool. | |
| - The missing script has thus become useless as a (poor) way to work | |
| around the sketched-timestamps issues that can happen for projects | |
| that keep generated files committed in their VCS repository. Such | |
| projects are now encouraged to write a custom "fix-timestamps.sh" | |
| script to avoid such issues; a simple example is provided in the | |
| "CVS and generated files" chapter of the automake manual. | |
| * Recursive targets: | |
| - The user can now define his own recursive targets that recurse | |
| in the directories specified in $(SUBDIRS). This can be done by | |
| specifying the name of such targets in invocations of the new | |
| 'AM_EXTRA_RECURSIVE_TARGETS' m4 macro. | |
| * Tags: | |
| - Any failure in the recipe of the "tags", "ctags", "cscope" or | |
| "cscopelist" targets in a subdirectory is now propagated to the | |
| top-level make invocation. | |
| - Tags are correctly computed also for files in _SOURCES variables that | |
| only list files with non-standard suffixes (see automake bug#12372). | |
| * Improvements to aclocal and related rebuilds rules: | |
| - Autoconf-provided macros AC_CONFIG_MACRO_DIR and AC_CONFIG_MACRO_DIRS | |
| are now traced by aclocal, and can be used to declare the local m4 | |
| include directories. Formerly, one had to specify it with an explicit | |
| '-I' option to the 'aclocal' invocation. | |
| - The special make variable ACLOCAL_AMFLAGS is deprecated; future | |
| Automake versions will warn about its use, and later version will | |
| remove support for it altogether. | |
| * The depcomp script: | |
| - Dropped support for libtool 1.4. | |
| - Various internal refactorings. They should cause no visible change, | |
| but the chance for regression is there anyway, so please report any | |
| unexpected or suspicious behaviour. | |
| - Support for pre-8.0 versions of the Intel C Compiler has been dropped. | |
| This should cause no problem, since icc 8.0 has been released in | |
| December 2003 -- almost nine years ago. | |
| - Support for tcc (the Tiny C Compiler) has been improved, and is now | |
| handled through a dedicated 'tcc' mode. | |
| * The ylwrap script: | |
| - ylwrap generates header guards with a single '_' for series of non | |
| alphabetic characters, instead of several. This is what Bison >= | |
| 2.5.1 does. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| Bugs fixed in 1.12.6: | |
| * Python-related bugs: | |
| - The default installation location for python modules has been improved | |
| for Python 3 on Debian and Ubuntu systems, changing from: | |
| ${prefix}/lib/python3/dist-packages | |
| to | |
| ${prefix}/lib/python3.x/site-packages | |
| This change should ensure modules installed using the default ${prefix} | |
| "/usr/local" are found by default by system python 3.x installations. | |
| See automake bug#10227. | |
| - Python byte-compilation supports the new layout mandated by PEP-3147, | |
| with its __pycache__ directory (automake bug#8847). | |
| * Build system issues: | |
| - The maintainer rebuild rules for Makefiles and aclocal.m4 in | |
| Automake's own build system works correctly again (bug introduced | |
| in Automake 1.12.5). | |
| * Testsuite issues: | |
| - The Vala-related tests has been changed to adjust to the removal of | |
| the 'posix' profile in the valac compiler. See automake bug#12934 | |
| a.k.a. bug#12522. | |
| - Some spurious testsuite failures related to older tools and systems | |
| have been fixed. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.12.5: | |
| * Vala support: | |
| - The AM_PROG_VALAC macro has been enhanced to takes two further | |
| optional arguments; it's signature now being | |
| AM_PROG_VALAC([MINIMUM-VERSION], [ACTION-IF-FOUND], | |
| [ACTION-IF-NOT-FOUND]) | |
| - By default, AM_PROG_VALAC no longer aborts the configure invocation | |
| if the Vala compiler found is too old, but simply prints a warning | |
| messages (as it did when the Vala compiler was not found). This | |
| should avoid unnecessary difficulties for end users that just want | |
| to compile the unmodified, distributed Vala-generated C sources, | |
| but happens to have an old Vala compiler in their PATH. This fixes | |
| automake bug#12688. | |
| - If no proper Vala compiler is found at configure runtime, AM_PROG_VALAC | |
| will set the AC_SUBST'd variable 'VALAC' to 'valac' rather than to ':'. | |
| This is a better default, because with it a triggered makefile rule | |
| invoking a Vala compilation will clearly fail with an informative error | |
| message like "valac: command not found", rather than silently, with | |
| the error possibly going unnoticed or triggering harder-to-diagnose | |
| fallout failures in later steps. | |
| * Miscellaneous changes: | |
| - automake and aclocal no longer honours the 'perllibdir' environment | |
| variable. That had always been intended only as an hack required in | |
| the testsuite, not meant for any use beyond that. | |
| Bugs fixed in 1.12.5: | |
| * Long-standing bugs: | |
| - Automake no longer generates spurious remake rules invoking autoheader | |
| to regenerate the template corresponding to header files specified after | |
| the first one in AC_CONFIG_HEADERS (automake bug#12495). | |
| - When wrapping Microsoft tools, the 'compile' script falls back to | |
| finding classic 'libname.a' style libraries when 'name.lib' and | |
| 'name.dll.lib' aren't available. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.12.4: | |
| * Warnings and deprecations: | |
| - Warnings in the 'obsolete' category are enabled by default both in | |
| automake and aclocal. | |
| * Miscellaneous changes: | |
| - Some testsuite weaknesses and spurious failures have been fixed. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.12.3: | |
| * Miscellaneous changes: | |
| - The '.m4' files provided by Automake no longer define serial numbers. | |
| This should cause no difference in the behaviour of aclocal though. | |
| - Some testsuite weaknesses and spurious failures have been fixed. | |
| - There is initial support for automatic dependency tracking with the | |
| Portland Group C/C++ compilers, thanks to the new new depmode 'pgcc'. | |
| Bugs fixed in 1.12.3: | |
| * Long-standing bugs: | |
| - Instead of renaming only self-references of files (typically for | |
| #lines), ylwrap now also renames references to the other generated | |
| files. This fixes support for GLR and C++ parsers from Bison (PR | |
| automake/491 and automake bug#7648): 'parser.c' now properly | |
| #includes 'parser.h' instead of 'y.tab.h'. | |
| - Generated files unknown to ylwrap are now preserved. This fixes | |
| C++ support for Bison (automake bug#7648): location.hh and the | |
| like are no longer discarded. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.12.2: | |
| * Warnings and deprecations: | |
| - Automake now issues a warning (in the 'portability' category) if | |
| 'configure.in' is used instead of 'configure.ac' as the Autoconf | |
| input file. Such a warning will also be present in the next | |
| Autoconf version (2.70). | |
| * Cleaning rules: | |
| - Recursive cleaning rules descends into the $(SUBDIRS) in the natural | |
| order (as done by the other recursive rules), rather than in the | |
| inverse order. They used to do that in order to work a round a | |
| limitation in an older implementation of the automatic dependency | |
| tracking support, but that limitation had been lifted years ago | |
| already, when the automatic dependency tracking based on side-effects | |
| of compilation had been introduced. | |
| - Cleaning rules for compiled objects (both "plain" and libtool) work | |
| better when subdir objects are involved, not triggering a distinct | |
| 'rm' invocation for each such object. They do so by removing *any* | |
| compiled object file that is in the same directory of a subdir | |
| object. See automake bug#10697. | |
| * Silent rules support: | |
| - A new predefined $(AM_V_P) make variable is provided; it expands | |
| to a shell conditional that can be used in recipes to know whether | |
| make is being run in silent or verbose mode. | |
| Bugs fixed in 1.12.2: | |
| * SECURITY VULNERABILITIES! | |
| - The 'distcheck' recipe no longer grants temporary world-write | |
| permissions on the extracted distdir. Even if such rights were | |
| only granted for a vanishingly small time window, the implied | |
| race condition proved to be enough to allow a local attacker | |
| to run arbitrary code with the privileges of the user running | |
| "make distcheck". This is CVE-2012-3386. | |
| * Long-standing bugs: | |
| - The "recheck" targets behaves better in the face of build failures | |
| related to previously failed tests. For example, if a test is a | |
| compiled program that must be rerun by "make recheck", and its | |
| compilation fails, it will still be rerun by further "make recheck" | |
| invocations. See automake bug#11791. | |
| * Bugs introduced by 1.12.1: | |
| - Automake provides once again the '$(mkdir_p)' make variable and the | |
| '@mkdir_p@' substitution (both as simple aliases for '$(MKDIR_P)'), | |
| for better backward-compatibility. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.12.1: | |
| * New supported languages: | |
| - Support for Objective C++ has been added; it should work similarly to | |
| the support for Objective C. | |
| * Deprecated obsolescent features: | |
| - Use of the long-deprecated two- and three-arguments invocation forms | |
| of the AM_INIT_AUTOMAKE macro now elicits a warning in the 'obsolete' | |
| category. Starting from some future major Automake release (likely | |
| post-1.13), such usages will no longer be allowed. | |
| - Support for the "Cygnus-style" trees (enabled by the 'cygnus' option) is | |
| now deprecated (its use triggers a warning in the 'obsolete' category). | |
| It will be removed in the next major Automake release (1.13). | |
| - The long-obsolete (since 1.10) automake-provided $(mkdir_p) make | |
| variable, @mkdir_p@ configure-time substitution and AM_PROG_MKDIR | |
| m4 macro are deprecated, eliciting a warning in the 'obsolete' | |
| category. | |
| * Miscellaneous changes: | |
| - The Automake test cases now require a proper POSIX-conforming shell. | |
| Older non-POSIX Bourne shells (like Solaris 10 /bin/sh) will no longer | |
| be accepted. In most cases, the user shouldn't have to specify such | |
| POSIX shell explicitly, since it will be looked up at configure time. | |
| Still, when this lookup fails, or when the user wants to override its | |
| conclusion, the variable 'AM_TEST_RUNNER_SHELL' can be used (pointing | |
| to the shell that will be used to run the Automake test cases). | |
| Bugs fixed in 1.12.1: | |
| * Bugs introduced by 1.12: | |
| - Several weaknesses in Automake's own build system and test suite | |
| have been fixed. | |
| * Bugs introduced by 1.11.3: | |
| - When given non-option arguments, aclocal rejects them, instead of | |
| silently ignoring them. | |
| * Long-standing bugs: | |
| - When the 'color-tests' option is in use, forcing of colored testsuite | |
| output through "AM_COLOR_TESTS=always" works even if the terminal is | |
| a non-ANSI one, i.e., if the TERM environment variable has a value of | |
| "dumb". | |
| - Several inefficiencies and poor performances in the implementation | |
| of the parallel-tests 'check' and 'recheck' targets have been fixed. | |
| - The post-processing of output "#line" directives done the ylwrap | |
| script is more faithful w.r.t. files in a subdirectory; for example, | |
| if the processed file is "src/grammar.y", ylwrap will correctly | |
| produce directives like: | |
| #line 7 "src/grammar.y" | |
| rather than like | |
| #line 7 "grammar.y" | |
| as it did before. | |
| * Bugs with new Perl versions: | |
| - Aclocal works correctly with perl 5.16.0 (automake bug#11543). | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.12: | |
| * Obsolete features removed: | |
| - The never documented nor truly used script 'acinstall' has been | |
| removed. | |
| - 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 deprecated 'lzma' compression format for distribution archives | |
| has been removed, in favor of 'xz' and 'lzip'. | |
| - The obsolete AM_WITH_REGEX macro has been removed. | |
| - The long-deprecated options '--output-dir', '--Werror' and | |
| '--Wno-error' have been removed. | |
| - The chapter on the history of Automake has been moved out of the | |
| reference manual, into a new dedicated Texinfo file. | |
| * New targets: | |
| - New 'cscope' target to build a cscope database for the source tree. | |
| * Changes to Automake-generated testsuite harnesses: | |
| - The new automake option 'serial-tests' has been introduced. It can | |
| be used to explicitly instruct automake to use the older serial | |
| testsuite harness. This is still the default at the moment, but it | |
| might change in future versions. | |
| - The 'recheck' target (provided by the parallel testsuite harness) now | |
| depends on the 'all' target. This allows for a better user-experience | |
| in test-driven development. See automake bug#11252. | |
| - Test scripts that exit with status 99 to signal an "hard error" (e.g., | |
| and unexpected or internal error, or a failure to set up the test case | |
| scenario) have their outcome reported as an 'ERROR' now. Previous | |
| versions of automake reported such an outcome as a 'FAIL' (the only | |
| difference with normal failures being that hard errors were counted | |
| as failures even when the test originating them was listed in | |
| XFAIL_TESTS). | |
| - The testsuite summary displayed by the parallel-test harness has a | |
| completely new format, that always list the numbers of passed, failed, | |
| xfailed, xpassed, skipped and errored tests, even when these numbers | |
| are zero (but using smart coloring when the color-tests option is in | |
| effect). | |
| - The default testsuite driver offered by the 'parallel-tests' option is | |
| now implemented (partly at least) with the help of automake-provided | |
| auxiliary scripts (e.g., 'test-driver'), instead of relying entirely | |
| on code in the generated Makefile.in. | |
| This has two noteworthy implications. The first one is that projects | |
| using the 'parallel-tests' option should now either run automake with | |
| the '--add-missing' option, or manually copy the 'test-driver' script | |
| into their tree. The second, and more important, implication is that | |
| now, when the 'parallel-tests' option is in use, TESTS_ENVIRONMENT can | |
| no longer be used to define a test runner, and the command specified | |
| in LOG_COMPILER (and <ext>_LOG_COMPILER) must be a *real* executable | |
| program or script. For example, this is still a valid usage (albeit | |
| a little contorted): | |
| TESTS_ENVIRONMENT = \ | |
| if test -n '$(STRICT_TESTS)'; then \ | |
| maybe_errexit='-e'; \ | |
| else \ | |
| maybe_errexit=''; \ | |
| fi; | |
| LOG_COMPILER = $(SHELL) $$maybe_errexit | |
| OTOH, this is no longer a valid usage: | |
| TESTS_ENVIRONMENT = \ | |
| $(SHELL) `test -n '$(STRICT_TESTS_CHECKING)' && echo ' -e'` | |
| neither is this: | |
| TESTS_ENVIRONMENT = \ | |
| run_with_perl_or_shell () \ | |
| { \ | |
| if grep -q '^#!.*perl' $$1; then | |
| $(PERL) $$1; \ | |
| else \ | |
| $(SHELL) $$1; \ | |
| fi; \ | |
| } | |
| LOG_COMPILER = run_with_perl_or_shell | |
| - The package authors can now use customary testsuite drivers within | |
| the framework provided by the 'parallel-tests' testsuite harness. | |
| Consistently with the existing syntax, this can be done by defining | |
| special makefile variables 'LOG_DRIVER' and '<ext>_LOG_DRIVER'. | |
| - A new developer-reserved variable 'AM_TESTS_FD_REDIRECT' can be used | |
| to redirect/define file descriptors used by the test scripts. | |
| - The parallel-tests harness generates now, in addition the '.log' files | |
| holding the output produced by the test scripts, a new set of '.trs' | |
| files, holding "metadata" derived by the execution of the test scripts; | |
| among such metadata are the outcomes of the test cases run by a script. | |
| - Initial and still experimental support for the TAP test protocol is | |
| now provided. | |
| * Changes to Yacc and Lex support: | |
| - C source and header files derived from non-distributed Yacc and/or | |
| Lex sources are now removed by a simple "make clean" (while they were | |
| previously removed only by "make maintainer-clean"). | |
| - Slightly backward-incompatible change, relevant only for use of Yacc | |
| with C++: the extensions of the header files produced by the Yacc | |
| rules are now modelled after the extension of the corresponding | |
| sources. For example, yacc files named "foo.y++" and "bar.yy" will | |
| produce header files named "foo.h++" and "bar.hh" respectively, where | |
| they would have previously produced header files named simply "foo.h" | |
| and "bar.h". This change offers better compatibility with 'bison -o'. | |
| * Miscellaneous changes: | |
| - The AM_PROG_VALAC macro now causes configure to exit with status 77, | |
| rather than 1, if the vala compiler found is too old. | |
| - The build system of Automake itself now avoids the use of make | |
| recursion as much as possible. | |
| - Automake now prefers to quote 'like this' or "like this", rather | |
| than `like this', in diagnostic message and generated Makefiles, | |
| to accommodate the new GNU Coding Standards recommendations. | |
| - Automake has a new option '--print-libdir' that prints the path of the | |
| directory containing the Automake-provided scripts and data files. | |
| - The 'dist' and 'dist-all' targets now can run compressors in parallel. | |
| - The rules to create pdf, dvi and ps output from Texinfo files now | |
| works better with modern 'texi2dvi' script, by explicitly passing | |
| it the '--clean' option to ensure stray auxiliary files are not | |
| left to clutter the build directory. | |
| - Automake can now generate silenced rules for texinfo outputs. | |
| - Some auxiliary files that are automatically distributed by Automake | |
| (e.g., 'install-sh', or the 'depcomp' script for packages compiling | |
| C sources) might now be listed in the DIST_COMMON variable in many | |
| Makefile.in files, rather than in the top-level one. | |
| - Messages of types warning or error from 'automake' and 'aclocal' | |
| are now prefixed with the respective type, and presence of -Werror | |
| is noted. | |
| - Automake's early configure-time sanity check now tries to avoid | |
| sleeping for a second, which slowed down cached configure runs | |
| noticeably. In that case, it will check back at the end of the | |
| configure script to ensure that at least one second has passed, to | |
| avoid time stamp issues with makefile rules rerunning autotools | |
| programs. | |
| - The warnings in the category 'extra-portability' are now enabled by | |
| '-Wall'. In previous versions, one has to use '-Wextra-portability' | |
| to enable them. | |
| Bugs fixed in 1.12: | |
| - Various minor bugfixes for recent or long-standing bugs. | |
| * Bugs introduced by 1.11: | |
| - The AM_COND_IF macro also works if the shell expression for the | |
| conditional is no longer valid for the condition. | |
| - The automake-provided parallel testsuite harness no longer fails | |
| with BSD make used in parallel mode when there are test scripts in | |
| a subdirectory, like in: | |
| TESTS = sub/foo.test sub/bar.test | |
| * Long-standing bugs: | |
| - Automake's own build system finally have a real "installcheck" target. | |
| - Vala-related cleanup rules are now more complete, and work better in | |
| a VPATH setup. | |
| - Files listed with the AC_REQUIRE_AUX_FILE macro in configure.ac are | |
| now automatically distributed also if the directory of the auxiliary | |
| files coincides with the top-level directory. | |
| - Automake now detects the presence of the '-d' flag in the various | |
| '*YFLAGS' variables even when their definitions involve indirections | |
| through other variables, such as in: | |
| foo_opts = -d | |
| AM_YFLAGS = $(foo_opts) | |
| - Automake now complains if a '*YFLAGS' variable has any conditional | |
| content, not only a conditional definition. | |
| - Explicit enabling and/or disabling of Automake warning categories | |
| through the '-W...' options now always takes precedence over the | |
| implicit warning level implied by Automake strictness (foreign, gnu | |
| or gnits), regardless of the order in which such strictness and | |
| warning flags appear. For example, a setting like: | |
| AUTOMAKE_OPTIONS = -Wall --foreign | |
| will cause the warnings in category 'portability' to be enabled, even | |
| if those warnings are by default disabled in 'foreign' strictness. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| Bugs fixed in 1.11.5: | |
| * Bugs introduced by 1.11.3: | |
| - Vala files with '.vapi' extension are now recognized and handled | |
| correctly again. See automake bug#11222. | |
| - Vala support work again for projects that contain some program | |
| built from '.vala' (and possibly '.c') sources and some other | |
| program built from '.c' sources *only*. See automake bug#11229. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.11.4: | |
| * Miscellaneous changes: | |
| - The 'ar-lib' script now ignores the "s" (symbol index) and "S" (no | |
| symbol index) modifiers as well as the "s" action, as the symbol index | |
| is created unconditionally by Microsoft lib. Also, the "q" (quick) | |
| action is now a synonym for "r" (replace). Also, the script has been | |
| ignoring the "v" (verbose) modifier already since Automake 1.11.3. | |
| - When the 'compile' script is used to wrap MSVC, it now accepts an | |
| optional space between the -I, -L and -l options and their respective | |
| arguments, for better POSIX compliance. | |
| - There is an initial, experimental support for automatic dependency | |
| tracking with tcc (the Tiny C Compiler). Its associated depmode is | |
| currently recognized as "icc" (but this and other details are likely | |
| to change in future versions). | |
| - Automatic dependency tracking now works also with the IBM XL C/C++ | |
| compilers, thanks to the new new depmode 'xlc'. | |
| Bugs fixed in 1.11.4: | |
| * Bugs introduced by 1.11.2: | |
| - A definition of 'noinst_PYTHON' before 'python_PYTHON' (or similar) | |
| no longer cause spurious failures upon "make install". | |
| - The user can now instruct the 'uninstall-info' rule not to update | |
| the '${infodir}/dir' file by exporting the environment variable | |
| 'AM_UPDATE_INFO_DIR' to the value "no". This is done for consistency | |
| with how the 'install-info' rule operates since automake 1.11.2. | |
| * Long-standing bugs: | |
| - It is now possible for a foo_SOURCES variable to hold Vala sources | |
| together with C header files, as well as with sources and headers for | |
| other supported languages (e.g., C++). Previously, only mixing C and | |
| Vala sources was supported. | |
| - If "aclocal --install" is used, and the first directory specified with | |
| '-I' is non-existent, aclocal will now create it before trying to copy | |
| files in it. | |
| - An empty declaration of a "foo_PRIMARY" no longer cause the generated | |
| install rules to create an empty $(foodir) directory; for example, if | |
| Makefile.am contains something like: | |
| pkglibexec_SCRIPTS = | |
| if FALSE | |
| pkglibexec_SCRIPTS += bar.sh | |
| endif | |
| the $(pkglibexec) directory will not be created upon "make install". | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.11.3: | |
| * Miscellaneous changes: | |
| - Automake's own build system is more silent by default, making use of | |
| the 'silent-rules' option. | |
| - The master copy of the 'gnupload' script is now maintained in gnulib, | |
| not in automake. | |
| - The 'missing' script no longer tries to wrap calls to 'tar'. | |
| - "make dist" no longer wraps 'tar' invocations with the 'missing' | |
| script. Similarly, the obsolescent variable '$(AMTAR)' (which you | |
| shouldn't be using BTW ;-) no longer invokes the 'missing' script | |
| to wrap tar, but simply invokes the 'tar' program itself. | |
| - "make dist" can now create lzip-compressed tarballs. | |
| - In the Automake info documentation, the Top node and the nodes about | |
| the invocation of the automake and aclocal programs have been renamed; | |
| now, calling "info automake" will open the Top node, while calling | |
| "info automake-invocation" and "info aclocal-invocation" will access | |
| the nodes about the invocation of respectively automake and aclocal. | |
| - Automake is now distributed as a gzip-compressed and an xz-compressed | |
| tarball. Previously, bzip2 was used instead of xz. | |
| - The last relics of Python 1.5 support have been removed from the | |
| AM_PATH_PYTHON macro. | |
| - For programs and libraries, automake now detects EXTRA_foo_DEPENDENCIES | |
| and adds them to the normal list of dependencies, but without | |
| overwriting the foo_DEPENDENCIES variable, which is normally computed | |
| by automake. | |
| Bugs fixed in 1.11.3: | |
| * Bugs introduced by 1.11.2: | |
| - Automake now correctly recognizes the prefix/primary combination | |
| 'pkglibexec_SCRIPTS' as valid. | |
| - The parallel-tests harness no longer trips on sed implementations | |
| with stricter limits on the length of input lines (problem seen at | |
| least on Solaris 8). | |
| * Long-standing bugs: | |
| - The "deleted header file problem" for *.am files is avoided by stub | |
| rules. This allows 'make' to trigger a rerun of 'automake' also if | |
| some previously needed '.am' file has been removed. | |
| - The 'silent-rules' option now generates working makefiles even | |
| for the uncommon 'make' implementations that do not support the | |
| nested-variables extension to POSIX 2008. For such 'make' | |
| implementations, whether a build is silent is determined at | |
| configure time, and cannot be overridden at make time with | |
| "make V=0" or "make V=1". | |
| - Vala support now works better in VPATH setups. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| New in 1.11.2: | |
| * Changes to aclocal: | |
| - The `--acdir' option is deprecated. Now you should use the new options | |
| `--automake-acdir' and `--system-acdir' instead. | |
| - The `ACLOCAL_PATH' environment variable is now interpreted as a | |
| colon-separated list of additional directories to search after the | |
| automake internal acdir (by default ${prefix}/share/aclocal-APIVERSION) | |
| and before the system acdir (by default ${prefix}/share/aclocal). | |
| * Miscellaneous changes: | |
| - The Automake support for automatic de-ANSI-fication has been | |
| deprecated. It will probably be removed in the next major Automake | |
| release (1.12). | |
| - The `lzma' compression scheme and associated automake option `dist-lzma' | |
| is obsoleted by `xz' and `dist-xz' due to upstream changes. | |
| - You may adjust the compression options used in dist-xz and dist-bzip2. | |
| The default is now merely -e for xz, but still -9 for bzip; you may | |
| specify a different level via the XZ_OPT and BZIP2 envvars respectively. | |
| E.g., "make dist-xz XZ_OPT=-7" or "make dist-bzip2 BZIP2=-5" | |
| - The `compile' script now converts some options for MSVC for a better | |
| user experience. Similarly, the new `ar-lib' script wraps Microsoft lib. | |
| - The py-compile script now accepts empty arguments passed to the options | |
| `--destdir' and `--basedir', and complains about unrecognized options. | |
| Moreover, a non-option argument or a special `--' argument terminates | |
| the list of options. | |
| - A developer that needs to pass specific flags to configure at "make | |
| distcheck" time can now, and indeed is advised to, do so by defining | |
| the developer-reserved makefile variable AM_DISTCHECK_CONFIGURE_FLAGS, | |
| instead of the old DISTCHECK_CONFIGURE_FLAGS. | |
| The DISTCHECK_CONFIGURE_FLAGS variable should now be reserved for the | |
| user; still, the old Makefile.am files that used to define it will | |
| still continue to work as before. | |
| - New macro AM_PROG_AR that looks for an archiver and wraps it in the new | |
| 'ar-lib' auxiliary script if the selected archiver is Microsoft lib. | |
| This new macro is required for LIBRARIES and LTLIBRARIES when automake | |
| is run with -Wextra-portability and -Werror. | |
| - When using DejaGnu-based testsuites, the user can extend the `site.exp' | |
| file generated by automake-provided rules by defining the special make | |
| variable `$(EXTRA_DEJAGNU_SITE_CONFIG)'. | |
| - The `install-info' rule can now be instructed not to create/update | |
| the `${infodir}/dir' file, by exporting the new environment variable | |
| `AM_UPDATE_INFO_DIR' to the value "no". | |
| Bugs fixed in 1.11.2: | |
| * Bugs introduced by 1.11: | |
| - The parallel-tests driver no longer produces erroneous results with | |
| Tru64/OSF 5.1 sh upon unreadable log files. | |
| - The `parallel-tests' test driver does not report spurious successes | |
| when used with concurrent FreeBSD make (e.g., "make check -j3"). | |
| - When the parallel-tests driver is in use, automake now explicitly | |
| rejects invalid entries and conditional contents in TEST_EXTENSIONS, | |
| instead of issuing confusing and apparently unrelated error messages | |
| (e.g., "non-POSIX variable name", "bad characters in variable name", | |
| or "redefinition of TEST_EXTENSIONS), or even, in some situations, | |
| silently producing broken `Makefile.in' files. | |
| - The `silent-rules' option now truly silences all compile rules, even | |
| when dependency tracking is disabled. Also, when `silent-rules' is | |
| not used, `make' output no longer contains spurious backslash-only | |
| lines, thus once again matching what Automake did before 1.11. | |
| - The AM_COND_IF macro also works if the shell expression for the | |
| conditional is no longer valid for the condition. | |
| * Long-standing bugs: | |
| - The order of Yacc and Lex flags is fixed to be consistent with other | |
| languages: $(AM_YFLAGS) comes before $(YFLAGS), and $(AM_LFLAGS) before | |
| $(LFLAGS), so that the user variables override the developer variables. | |
| - "make distcheck" now correctly complains also when "make uninstall" | |
| leaves one and only one file installed in $(prefix). | |
| - A "make uninstall" issued before a "make install", or after a mere | |
| "make install-data" or a mere "make install-exec" does not spuriously | |
| fail anymore. | |
| - Automake now warns about more primary/directory invalid combinations, | |
| such as "doc_LIBRARIES" or "pkglib_PROGRAMS". | |
| - Rules generated by Automake now try harder to not change any files when | |
| `make -n' is invoked. Fixes include compilation of Emacs Lisp, Vala, or | |
| Yacc source files and the rule to update config.h. | |
| - Several scripts and the parallel-tests testsuite driver now exit with | |
| the right exit status upon receiving a signal. | |
| - A per-Makefile.am setting of -Werror does not erroneously carry over | |
| to the handling of other Makefile.am files. | |
| - The code for automatic dependency tracking works around a Solaris | |
| make bug triggered by sources containing repeated slashes when the | |
| `subdir-objects' option was used. | |
| - The makedepend and hp depmodes now work better with VPATH builds. | |
| - Java sources specified with check_JAVA are no longer compiled for | |
| "make all", but only for "make check". | |
| - An usage like "java_JAVA = foo.java" will now cause Automake to warn | |
| and error out if `javadir' is undefined, instead of silently producing | |
| a broken Makefile.in. | |
| - aclocal and automake now honour the configure-time definitions of | |
| AUTOCONF and AUTOM4TE when they spawn autoconf or autom4te processes. | |
| - The `install-info' recipe no longer tries to guess whether the | |
| `install-info' program is from Debian or from GNU, and adaptively | |
| change its behaviour; this has proven to be frail and easy to | |
| regress. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| Bugs fixed in 1.11.1: | |
| - Lots of minor bugfixes. | |
| * Bugs introduced by 1.11: | |
| - The `parallel-tests' test driver works around a GNU make 3.80 bug with | |
| trailing white space in the test list (`TESTS = foo $(EMPTY)'). | |
| * Long standing bugs: | |
| - On Darwin 9, `pythondir' and `pyexecdir' pointed below `/Library/Python' | |
| even if the `--prefix' argument pointed outside of a system directory. | |
| AM_PATH_PYTHON has been fixed to ignore the value returned from python's | |
| `get_python_lib' function if it points outside the configured prefix, | |
| unless the `--prefix' argument was either `/usr' or below `/System'. | |
| - The testsuite does not try to change the mode of `ltmain.sh' files from | |
| a Libtool installation (symlinked to test directories) any more. | |
| - AM_PROG_GCJ uses AC_CHECK_TOOLS to look for `gcj' now, so that prefixed | |
| tools are preferred in a cross-compile setup. | |
| - The distribution is tarred up with mode 755 now by the `dist*' targets. | |
| This fixes a race condition where untrusted users could modify files | |
| in the $(PACKAGE)-$(VERSION) distdir before packing if the toplevel | |
| build directory was world-searchable. This is CVE-2009-4029. | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 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 | |
| https://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 augmented with `+=' are now automatically flattened (i.e., | |
| trailing backslashes removed) and then wrapped around 80 columns | |
| (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 of 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 which 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ç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ç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-2017 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 <https://www.gnu.org/licenses/>. |