[lfs-book] [LFS Trac] #4226: automake-1.16
trac at linuxfromscratch.org
Sat Mar 3 09:33:44 PST 2018
Reporter: bdubbs@… | Owner: lfs-book@…
Type: task | Status: new
Priority: normal | Milestone: 8.3
Component: Book | Version: SVN
Severity: normal | Resolution:
Comment (by bdubbs@…):
New in 1.16:
* 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
- 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
then "make all" will create 'foo.o' and 's/bar.o' in $(builddir)
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)
- "./configure && make dist" no longer fails when a distributed file
on one from BUILT_SOURCES.
- 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
the reproducible build effort. (automake bug#20314)
- The elisp byte-compilation rule now uses byte-compile-dest-file-
rather than byte-compile-dest-file, which was obsoleted in 2009. We
that Emacs-26 will continue to support the old function, but will
loudly, and that Emacs-27 will remove support for it altogether.
* New features added
- A custom testsuite driver for the Guile Scheme SRFI-64 API has been
to the "contrib" section. This allows a more convenient way to test
code without having to use low primitives such as exit status. See
SRFI-64 API specification for more details:
Ticket URL: <http://wiki.linuxfromscratch.org/lfs/ticket/4226#comment:1>
LFS Trac <http://wiki.linuxfromscratch.org/lfs/>
Linux From Scratch: Your Distro, Your Rules.
More information about the lfs-book