source: trunk/essentials/sys-devel/automake-1.9/NEWS@ 3253

Last change on this file since 3253 was 3086, checked in by bird, 19 years ago

automake 1.9.6

File size: 50.2 KB
Line 
1Bugs fixed in 1.9.6:
2
3* Longstanding bugs:
4
5 - Correctly diagnose `#' comments following trailing backslash.
6
7 - Preserve backslashes preceding `##' lines.
8
9 - Preserve the order of items conditionally appended (+=) to variables.
10
11 - Fix support of installation directory names with spaces on systems
12 where mkinstalldirs cannot use `mkdir -p'.
13
14 - Avoid infinite loop in mdate-sh when TIME_STYLE is set.
15
16 - Do not output two definitions of SOURCES (an internal variable).
17 One was not formatted and could exceed the maximum line length of
18 some third-party tools (e.g., AIX 5.1 grep, breaking dependency
19 tracking).
20
21 - Do not empty info files when attempting to rebuild them without makeinfo.
22
23 - Be smarter when a Makefile.am references files in both "./dir" and
24 "dir": do not output two rules to create these directories.
25 (PR/461)
26
27 - Do not attempt to recover a missing *.elc file if it cannot be
28 created because emacs does not exist.
29
30 - Several aclocal fixes for issues occuring when configure.ac
31 includes some other m4 files explicitely with m4_include or m4_sinclude.
32 (PR/450)
33
34 - depcomp's cpp mode now understands preprocessors that output either
35 `#line 42 file' or `# 42 file'. (Only the latter was supported.)
36
37* Other miscellaneous changes:
38
39 - Update the GPL, and the FSF postal address.
40
41 - Anticipate for python2.5 in AM_PATH_PYTHON.
42
43 - The manual should now compile without any warning from TeX.
44
45
46Bugs fixed in 1.9.5:
47
48* Longstanding bugs:
49
50 - All m4 files have been relicensed under an all-permissive license.
51
52 Previously they used a GPL license, and an all-permissive license
53 was prepended when they were copied into aclocal.m4, leading to
54 some confusion.
55
56 - aclocal now recognizes AU_ALIAS.
57
58 - Improve support for `make -k', it didn't work on cygwin.
59
60 - Fix the definition of FCLINK for preprocessed Fortran.
61
62 - Fixes for auxiliary scripts:
63
64 - depcomp's tru64 mode did not work while compiling libtool libraries
65 with static libraries disabled.
66
67 - mdate-sh now copes with Darwin's non-standard ls output.
68
69 - missing properly emulates makeinfo when neither -o nor
70 @setfilename are used.
71
72 - Don't output long variable definitions. Automake normally tries
73 to output variable definitions as they are input, bug very long
74 lines in Makefile.in can break some sed and make implementations
75 with a limited line length. If a line in a variable definition is
76 longer than 1000 characters, automake will wrap the definition
77 around 80 columns. Other definitions are still output untouched.
78
79* Noteworthy manual updates:
80
81 - Hard-Coded Install Paths: New FAQ entry.
82
83 - How the Linker is Chosen: Rewritten.
84
85
86Bugs fixed in 1.9.4:
87
88* Longstanding bugs:
89
90 - Portability nits in install-sh and mdata-sh.
91
92 - Don't let `make install' fails if a _JAVA primary becomes empty
93 because of conditionals.
94
95 - Do not confuse CHANGELOG with ChangeLog on case-insensitive
96 case-preserving file systems (likewise for all automatically
97 distributed files).
98
99 - Do not embed $DESTDIR in Python's byte-code files.
100
101 - Work around programs that read stdin when checking for --version
102 and --help options (when the `std-options' is used).
103
104 - Fix AM_PATH_PYTHON to correctly define PYTHON as `:' when no minimum
105 version was supplied and no interpreter is found.
106
107* Noteworthy manual updates:
108
109 - Conditional Subdirectories: more comments about non-distributed
110 subdirectories.
111
112 - Flag Variables Ordering: new FAQ entry.
113
114 - Per-Object Flags: new FAQ entry.
115
116
117Bugs fixed in 1.9.3:
118
119* Bug introduced by 1.9:
120
121 - Dependency tracking using mode "dashmstdout" or "dashXmstdout" did
122 not work for libtool objects compiled with --tag (i.e., compiled
123 with Libtool 1.5 or later). The compilation would succeed, but
124 `depcomp' would emit a warning and not output any dependency
125 information.
126
127* Longstanding bugs:
128
129 - Ignore comments from augmented variables, so that
130 FOO = foo # bar
131 FOO += baz
132 no longer results in `FOO = foo # bar baz'.
133
134 - `install-sh -d a/b/' failed to create `a/b/' because of the trailing `/'.
135
136 - _PROGRAMS now always create programs. Before 1.9 it would
137 mistakenly create a libtool library if the name of the program
138 ended in `.la'. Between 1.9 and 1.9.2 a program with such a name
139 would fail to build because half the code was assuming a program
140 was being built, while the other half was considering a library...
141
142 - `compile' now handles `*.obj' objects.
143
144 - `aclocal' recognizes AC_DEFUN_ONCE.
145
146* Noteworthy manual updates:
147
148 - LIBOBJS: more documentation and an example setup.
149 - Libtool Convenience Libraries: show how to force the linker selection.
150 - Extending: more comments about install-data-hook vs install-exec-hook.
151 - Clean: document -local targets.
152
153
154Bugs fixed in 1.9.2 (10th anniversary release):
155
156* Sort rm commands output for mostlyclean-generic, clean-generic,
157 distclean-generic and maintainer-clean-generic, so that the produced
158 Makefile is not sensitive to the way Perl sorts its hashes.
159* Support `+' in the name of directories given to `include'.
160* Preserve spaces in the arguments of `compile'.
161* `missing' will no longer try to emulate a tool that is run
162 with `--version' or `--help' as argument.
163* Noteworthy manual update:
164 - There is a new chapter about the history of Automake.
165
166
167Bugs fixed in 1.9.1:
168
169This release fixes three longstanding bugs.
170
171* Adjust #line directives in `parser.h' (when ylwrap is not used).
172 (PR/432)
173
174* Fix definition of YLWRAP when ylwrap is installed in a default
175 aux directory found in a parent package.
176
177* Properly recognize AC_CANONICAL_BUILD and AC_CANONICAL_TARGET.
178
179
180New in 1.9:
181
182* Makefile.in bloat reduction:
183
184 - Inference rules are used to compile sources in subdirectories when
185 the `subdir-objects' option is used and no per-target flags are
186 used. This should reduce the size of some projects a lot, because
187 Automake used to output an explicit rule for each such object in
188 the past.
189
190 - Automake no longer outputs three rules (.o, .obj, .lo) for each
191 object that must be built with explicit rules. It just outputs
192 the rules required to build the kind of object considered: either
193 the two .o and .obj rules for usual objects, or the .lo rule for
194 libtool objects.
195
196* Change to Libtool support:
197
198 - Libtool tags are used with libtool versions that support them.
199 (I.e., with Libtool 1.5 or greater.)
200
201 - Automake is now able to handle setups where a libtool library is
202 conditionally installed in different directories, as in
203
204 if COND
205 lib_LTLIBRARIES = liba.la
206 else
207 pkglib_LTLIBRARIES = liba.la
208 endif
209 liba_la_SOURCES = ...
210
211* Changes to aclocal:
212
213 - aclocal now ensures that AC_DEFUNs and AU_DEFUNs it discovers are
214 really evaluated, before it decides to include them in aclocal.m4.
215 This solves nasty problems with conditional redefinitions of
216 Autoconf macros in /usr/share/aclocal/*.m4 files causing extraneous
217 *.m4 files to be included in any project using these macros.
218 (Calls to AC_PROG_EGREP causing libtool.m4 to be included is the
219 most famous instance of this bug.)
220
221 - Do not complain about missing conditionally AC_REQUIREd macros
222 that are not actually used. In 1.8.x aclocal would correctly
223 determine which of these macros were really needed (and include
224 only these in the package); unfortunately it would also require
225 all of them to be present in order to run. This created
226 situations were aclocal would not work on a tarball distributing
227 all the macros it uses. For instance running aclocal on a project
228 containing only the subset of the Gettext macros in use by the
229 project did not work, because gettext conditionally requires other
230 macros.
231
232* Portability improvements:
233
234 - Tar format can be chosen with the new options tar-v7, tar-ustar, and
235 tar-pax. The new option filename-length-max=99 helps diagnosing
236 filenames that are too long for tar-v7. (PR/414)
237
238 - Variables aumented with `+=' are now automatically flattened (i.e.,
239 trailing backslashes removed) and then wrapped around 80 colummns
240 (adding trailing backslashes). In previous versions, a long series
241 of
242 VAR += value1
243 VAR += value2
244 VAR += value3
245 ...
246 would result in a single-line definition of VAR that could possibly
247 exceed the maximum line length of some make implementations.
248
249 Non-augmented variables are still output as they are defined in
250 the Makefile.am.
251
252* Miscellaneous:
253
254 - Support Fortran 90/95 with the new "fc" and "ppfc" languages.
255 Works the same as the old Fortran 77 implementation; just replace
256 F77 with FC everywhere (exception: FFLAGS becomes FCFLAGS).
257 Requires a version of autoconf which provides AC_PROG_FC (>=2.59).
258
259 - Support for conditional _LISP.
260
261 - Support for conditional -hook and -local rules (PR/428).
262
263 - Diagnose AC_CONFIG_AUX_DIR calls following AM_INIT_AUTOMAKE. (PR/49)
264
265 - Automake will not write any Makefile.ins after the first error it
266 encounters. The previous Makefile.ins (if any) will be left in
267 place. (Warnings will not prevent output, but remember they can
268 be turned into errors with -Werror.)
269
270 - The restriction that SUBDIRS must contain direct children is gone.
271 Do not abuse.
272
273 - The manual tells more about SUBDIRS vs. DIST_SUBDIRS.
274 It also gives an example of nested packages using AC_CONFIG_SUBDIRS.
275
276
277Bugs fixed in 1.8.5:
278
279* Long standing bugs:
280
281 - Define DIST_SUBDIRS even when the `no-dist' or `cygnus' options are used
282 so that `make distclean' and `make maintainer-clean' can work.
283
284 - Define AR and ARFLAGS even when only EXTRA_LIBRARIES are defined.
285
286 - Fix many rules to please FreeBSD make, which runs commands with `sh -e'.
287
288 - Polish diagnostic when no input file is found.
289
290
291Bugs fixed in 1.8.4:
292
293* Long standing bugs:
294
295 - Fix AM_PATH_PYTHON to correctly display $PYTHON when it has been
296 overridden by the user.
297
298 - Honor PATH_SEPARATOR in various places of the Automake package, for
299 the sake of OS/2.
300
301 - Adjust dependency tracking mode detection to ICC 8.0's new output.
302 (PR/416)
303
304 - Fix install-sh so it can install the `mv' binary... using `mv'.
305
306 - Fix tru64 dependency tracking for libtool objects.
307
308 - Work around Exuberant Ctags when creating a TAGS files in a directory
309 without files to scan but with subdirectories to include.
310
311* Bugs introduced by 1.8:
312
313 - Fix an "internal error" when @LIBOBJS@ is used in a variable that is
314 not defined in the same conditions as the _LDADD that uses it.
315
316 - Do not warn when JAVAROOT is overridden, this is legitimate.
317
318
319Bugs fixed in 1.8.3:
320
321* Long standing bugs:
322
323 - Quote filenames in installation rules, in case $DESTDIR, $prefix,
324 or any of the other *dir variables contain a space.
325
326 Please note that Automake does not and cannot support spaces in
327 filenames that are involved during the build. This change affects
328 only installation paths, so that `make install' does not bomb out
329 in packages configured with
330 ./configure --prefix '/c/Program Files'
331
332 - Fix the depfiles output so it works with GNU sed (<4.1) even when
333 POSIXLY_CORRECT is set.
334
335 - Do not AC_SUBST(LIBOBJS) in AM_WITH_REGEX. This macro was unusable
336 since Autoconf 2.54, which defines LIBOBJS itself.
337
338 - Fix a potential (but unlikely) race condition in parallel elisp
339 builds. (Introduced in 1.7.3.)
340
341 - Do not assume that users override _DEPENDENCIES in all conditions
342 where Automake will try to define them.
343
344 - Do not use `mkdir -p' in mkinstalldirs, unless this is GNU mkdir.
345 Solaris 8's `mkdir -p' is not thread-safe and can break parallel
346 builds.
347
348 This fix also affects the $(mkdir_p) variable defined since
349 Automake 1.8. It will be set to `mkdir -p' only if mkdir is GNU
350 mkdir, and to `mkinstalldirs' or `install-sh -d' otherwise.
351
352 - Secure temporary directory creation in `make distcheck'. (PR/413)
353
354 - Do not generate two build rules for `parser.h' when the
355 parser appears in two different conditionals.
356
357 - Work around a Solaris 8 /bin/sh bug in the test for dependency
358 checking. Usually ./configure will not pick this shell; so this
359 fix only helps cases where the shell is forced to /bin/sh.
360
361* Bugs introduced by 1.8:
362
363 - In some situations (hand-written `m4_include's), aclocal would
364 call the `File::Spec->rel2abs' method, which was only introduced
365 in Perl 5.6. This new version reestablish support Perl 5.005.
366
367 It is likely that the next major Automake releases will require at
368 least Perl 5.6. Consider upgrading your development environment
369 if you are still using the five-year-old Perl 5.005.
370
371 - Automake would sometimes fail to define rules for targets listed
372 in variables defined in multiple conditions. For instance on
373 if C1
374 bin_PROGRAMS = a
375 else
376 bin_PROGRAMS = b
377 endif
378 it would define only the `a.$(OBJEXT): a.c' rule and omit the
379 `b.$(OBJEXT): b.c' rule.
380
381* New sections in manual:
382
383 - Third-Party Makefiles: how to interface third party Makefiles.
384 - Upgrading: upgrading packages to newer Automake versions.
385 - Multiple Outputs: handling tools that produce many outputs.
386
387
388Bug fixed in 1.8.2:
389
390* A (well known) portability bug slipped in the changes made to
391 install-sh in Automake 1.8.1. The broken install-sh would refuse to
392 install anything on Tru64.
393
394* Fix install rules for conditionally built python files. (This never
395 really worked.)
396
397
398Bug fixed in 1.8.1:
399
400* Bugs introduced by 1.8:
401
402 - Fix Config.pm import error with old Perl versions (at least
403 5.005_03). One symptom is that aclocal could not find its macro
404 directory.
405
406 - Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
407 created by `make install' are always world readable, even if the
408 installer happens to have an overly restrictive umask (e.g. 077).
409 This was a mistake and has been reverted. There are at least two
410 reasons why we must not use `-m 0755':
411 - it causes special bits like SGID to be ignored,
412 - it may be too restrictive (some setups expect 775 directories).
413
414 - Fix aclocal to honor definitions located in files which have been
415 m4_included manually. aclocal 1.8 had been updated to check
416 m4_included files for new requirements, but forgot that these
417 m4_included files can also provide new definitions.
418
419 Note that if you have such a setup, we recommend you get rid of
420 it. In the past, there was a reason to m4_include files manually:
421 aclocal used to duplicate entire M4 files into aclocal.m4, even
422 files that were distributed. Some packages were therefore
423 m4_including the distributed file directly, and playing some
424 tricks to ensure aclocal would not copy that file to aclocal.m4,
425 in order to limit the amount of duplication. Since aclocal 1.8.x
426 will precisely output m4_includes for local M4 files, we recommend
427 that you clean up your setup, removing all manual m4_includes and
428 letting aclocal output them.
429
430 - Output detailed menus in the Info version if the Automake manual,
431 so that Emacs can locate the indexes.
432
433 - configure.ac and configure were listed twice in DIST_COMMON (an
434 internal variable where Automake lists configury files to
435 distribute). This was harmless, but unaesthetic.
436
437 - Use `chmod a-w' instead of `chmod -w' as the latter honors umask.
438 This was an issue only in the Automake package itself, not in
439 its output.
440
441 - Automake assumed that all AC_CONFIG_LINKS arguments had the form
442 DEST:SRC. This was wrong, as some packages do
443 AC_CONFIG_LINKS($computedlinks). This version no longer abort in
444 that situation.
445
446 - Contrary to mkinstalldirs, $(mkdir_p) was expecting exactly one
447 argument. This caused two kinds of failures:
448 - Rules installing data in a conditionally defined directory
449 failed when that directory was undefined. In this case no
450 argument was supplied.
451 - `make installdirs' failed, because several directories were
452 passed to $(mkdir_p). This was an issue only on platform
453 were $(mkdir_p) is implemented with `install-sh -d'.
454 $(mkdir_p) as been changed to accept 0 or more arguments, as
455 mkinstalldirs did.
456
457* Long-standing bugs:
458
459 - Fix an unexpected diagnostic occurring when users attempt
460 to override some internal variables that Automake appends to.
461
462 - aclocal now scans configure.ac for macro definitions (PR/319).
463
464 - Fix a portability issue with OSF1/Tru64 Make. If a directory
465 distributes files which are outside itself (this usually occurs
466 when using AC_CONFIG_AUX_DIR([../dir]) to use auxiliary files
467 from a parent package), then `make distcheck' fails due to an
468 optimization performed by OSF1/Tru64 Make in its VPATH handling.
469 (tests/subpkg2.test failure)
470
471 - Fix another portability issue with Sun and OSF1/Tru64 Make.
472 In a VPATH-build configuration, `make install' would install
473 nobase_ files to wrong locations.
474
475 - Fix a Perl `uninitialized value' diagnostic occurring when
476 automake complains that a Texinfo file does not have a
477 @setfilename statement.
478
479 - Erase config.status.lineno during `make distclean'. This file
480 can be created by config.status. Automake already knew about
481 configure.lineno, but forgot config.status.lineno.
482
483 - Distribute all files, even those which are built and installed
484 conditionally. This change affects files listed in conditionally
485 defined *_HEADERS and *_PYTHON variable (unless they are nodist_*)
486 as well as those listed in conditionally defined dist_*_DATA,
487 dist_*_JAVA, dist_*_LISP, and dist_*_SCRIPTS variables.
488
489 - Fix AM_PATH_LISPDIR to avoid \? in sed regular expressions; it
490 doesn't conform to POSIX.
491
492 - Normalize help strings for configure variables and options added
493 by Automake macros.
494
495* Anticipation:
496
497 - Check for python2.4 in AM_PATH_PYTHON.
498
499* Spurious failures in test suite:
500
501 - tests/libtool5.test, tests/ltcond.test, tests/ltcond2.test,
502 tests/ltconv.test: fix failures with CVS Libtool.
503 - tests/aclocal6.test: fix failure if autom4te.cache is disabled.
504 - tests/txinfo24.test, tests/txinfo25.test, tests/txinfo28.test:
505 fix failures with old Texinfo versions.
506