one more (Re: libchip) question
Ralf Corsepius
corsepiu at faw.uni-ulm.de
Thu Apr 18 04:20:34 UTC 2002
Am Mit, 2002-04-17 um 22.16 schrieb Joel Sherrill:
>
>
> Till Straumann wrote:
> >
> > What exactly is the purpose of the 'EXTRA_DIST'
> > makefile variable / the 'distfile' target ?
>
> Ralf will probably have a better explanation but my understanding
> is that it captures all source files in the directory that are
> not otherwise accounted for by other automake rules. The purpose is
> to be able to do a "make dist" to get a distribution tarball.
> RTEMS is a ways away from doing that. :)
Entirely correct.
Automake normally puts all sources into a list of files to be put into a
package tarball during "make dist".
To destinguish which files to go into a package, automake analyzes the
contents of variables in Makefile.ams and generates appropriate
make-rules primarily depending upon certain keywords in variables-names
(*_HEADERS, *_SOURCES).
At present time, RTEMS's configuration applies automake's handling of
headers (*_HEADERS, cf. HEADERS in automake.info), which therefore are
automatically handled by "make dist".
Unfortunately, RTEMS's configuration does not apply automake's
compilation rules (*_SOURCES, cf. SOURCES in automake.info) and
therefore *.S, *.c, *.cc etc. can't be handled automatically by automake
[1]. As a band-aid all sources should be put into a Makefile.am's
EXTRA_DIST [2].
Rule of thumb wrt. "make dist" in RTEMS's Makefile.ams:
* All headers should be member of a *_HEADERS variable.
* All sources should be in EXTRA_DIST.
Ralf
[1] The cause is RTEMS supporting build-variants (optimize, debug,
profile), RTEMS would have to, at least temporarily, drop them.- This is
high on my personal wish-list, but I don't seem to be able to
convince/persuade Joel and others :(
[2] In addition, EXTRA_DIST also should take all files that normally (if
using standard automake-rules) go into EXTRA_DIST [3]
[3] Note: RTEMS-4.5.x applies automake-1.4x. The snapshots currently use
automake-1.5, the next snapshot will require automake-1.6 or
automake-1.6.1.
There are significant enhancements wrt. to "dist-files handling" between
automake-1.4 and automake-1.5 and further improvements with automake >=
1.6, which can be applied to avoid EXTRA_DIST in some cases.
More information about the users
mailing list