summaryrefslogtreecommitdiff
path: root/NG-NEWS
blob: 62c666af3d5f0671ddf809f0d85c501d5795b00d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
This file lists the major changes and differences between mainstream
Automake and Automake-NG.  Be aware that there is likely a plethora
of other minor differences and incompatibilities *not* listed here.

Automatic dependency tracking support 
=====================================

* The generated Makefile.in files use "-include", not "include", to
  read the '.Po' files containing automatically computed dependency
  information.

* We unconditionally assume that the "include" and "-include"
  directives can be used in the generated Makefiles.  Accordingly,
  the internal m4 macro 'AM_MAKE_INCLUDE' and AC_SUBST'd variables
  'am__include' and 'am__quote' have been removed.

* The makefile fragments files containing automatically computed
  dependency information are created at make runtime by Makefile
  recipes, not at configure time by config.status.  Accordingly,
  the special config.status argument 'depfiles' is not supported
  anymore.

Silent rules
============

* Support for silent rules is now always active in Makefiles generated
  by Automake-NG; 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 support unconditionally assumes that nested variables
  expansion are supported.  Accordingly, the AC_SUBST'd variables '@AM_V@'
  and'@AM_DEFAULT_V@' have been removed, so that instead of using
  something like:

    pkg_verbose = $(pkg_verbose_@AM_V@)
    pkg_verbose_ = $(pkg_verbose_@AM_DEFAULT_V@)

  you should simply use:

    pkg_verbose = $(pkg_verbose_$(V))
    pkg_verbose_ = $(pkg_verbose_$(AM_DEFAULT_VERBOSITY))

Warnings and diagnostic
=======================

* Automake does not warn anymore about:

  - non-POSIX variable names, like "$(dash-separated)" or "$(stem/base)";

  - nested variable expansions, like "$(foo$(V))";

  - variable definitions with indirections, like "var$(i) = value";

  - calls to make functions, whether built-in ones like "$(wildcard *.c)"
    or user-defined ones like "$(call my-func, arg1, arg2)".

  - pattern rules in GNU make style ("%.o: %.c").

  - variable definitions with ":=", as in "foo := $(immediate-evaluation)".

  - some issues specific to BSD make.

* The 'portability-recursive' warning category is obsolete, and has been
  removed.

Parallel testsuite harness
==========================

* Automake does not automatically generate the definition of 'LOG_COMPILE'
  variables anymore.  These have always been meant for internal use only
  anyway.

* The $(TESTS) and $(XFAIL_TESTS) variables are not anymore rewritten for
  $(EXEEXT) appending.  The use of compiled programs in $(TESTS) still
  works as before though, even on systems where $(EXEEXT) is non-empty,
  thanks to a careful use of pattern rules.

* The new implementation of the parallel-tests harness tries to defer
  as much as possible processing on the $(TESTS) variable at make,
  rather than doing it at automake time.  This as some positive effects
  (FIXME: describe and quantify them), but also entails a minor annoyance.
  When automake runs, it cannot know anymore whether $(TESTS) contains
  or not any entry with no recognized test suffix; as a consequence, it
  always need the '$(LOG_DRIVER)' variable to be defined.  If it's not,
  automake will define it to a proper invocation of the 'test-driver'
  auxiliary script, and require that script to be present in the
  config-aux directory (or bring it in if "--add-missing" is in use).
  If you know you package won't make use of suffix-less tests (thus, in
  particular, no use of compiled programs in $(TESTS)), you can avoid
  requiring the 'test-driver' script by adding this line to your
  configure.ac:
    AC_SUBST([LOG_DRIVER], ['unused but required by automake'])


Miscellaneous
=============

* Since GNU make is smart enough to correctly pass the values of macros
  redefined on the command line to sub-make invocations, the "special"
  variable $(AM_MAKEFLAGS) has been removed, and its content is no more
  passed to recursive make invocations.

-----

Copyright (C) 2012 Free Software Foundation, Inc.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.