purpose of EXTRA_DIST
Ralf Corsepius
ralf.corsepius at rtems.org
Thu Oct 27 05:13:45 UTC 2005
On Wed, 2005-10-26 at 11:54 -0700, Till Straumann wrote:
> Ralf Corsepius wrote:
> > On Wed, 2005-10-26 at 08:13 -0500, Joel Sherrill wrote:
> >
> >>Ralf Corsepius wrote:
> >>
> >>>On Tue, 2005-10-25 at 14:35 -0700, Till Straumann wrote:
> >>>
> >>>
> >>>>What's the purpose of EXTRA_DIST, i.e.,
> >>>>what files are supposed to be listed ?
> >>>
> >>>
> >>>info automake
> >>>
>
> Thanks - 'info automake' says that you can add directories
> to EXTRA_DIST. What is the reason e.g.,
>
> libbsp/powerpc/Makefile.am
>
> meticulously lists files from the 'shared' directory and
> does not simply
>
> EXTRA_DIST = shared
Because using directories there is error-prone at best. I am not using
it to avoid picking up arbitrary files (such as *.o, .deps .libs, CVS,
editor backup files, etc.).
IMNSHO, automake better never should have documented this behavior and
am inclined to file a bug against automake on this ;)
> ? And why (trying to learn and understand...) does
> libbsp/powerpc/motorola_powerpc/Makefile.am
> list files from ../shared/ in EXTRA_DIST (e.g., start.S)
> (that are, BTW. already added to EXTRA_DIST in
> libbsp/powerpc/Makefile.am)
To be checked in detail. Without having looked into the sources, it
could be a historic artifact, it could be something else.
However, first of ally you should be aware that the BSPs' "shared/" as
implemented in RTEMS, violate the auto*tool working principles [1] and
therefore requires special treatment.
Other likely candidates:
* Compiling the *.S is not being compiled by automake rules (not
mentioned in an automake *_SOURCES variable) therefore doesn't get added
to the tarball automatically (applies to most start.S).
* Older versions of automake had problems in handling *.S. Modern
automakes (> 1.9.x, with RTEMS patch or automake/CVS) should correctly
handle *.S, so this also might be historical artifact.
Finally, as handling "shared/" is beyond the autotool's scope, handling
it in Makefile.ams partially also is a design compromise, catering
constraints being dictated by automake (for good reasons), history
(RTEMS < 4.6.99 did not use automake compilation rules!) and user
demands (such as your wish for "shared/").
As such a compromise, the current implementation is far from being
perfect and final, and will remain facing a lingering course until we
can find a "perfect solution".
I don't know how such a perfect solution would look like, because "make
dist|distcheck" and "shared" are diverging goals, we probably won't be
able to solve without major restructurization of the source tree.
Ralf
[1] shared/ is one of the reasons why "make dist" and "make distcheck"
won't work in RTEMS. Getting "make dist|distcheck" functional requires
all sources being used underneath a configure script to be under control
of the corresponding configure.ac and Makefile.ams' control.
I.e. all sources must me located in directories below the configure.ac.
Sources outside of this source-tree are not allowed. "shared" however,
is outside of a BSP's configure script, i.e. violates the auto*tools'
working principles.
More information about the users
mailing list