bug-automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "make distcheck" vs. EXTRA_DIST files made during "make dist"


From: Alexandre Duret-Lutz
Subject: Re: "make distcheck" vs. EXTRA_DIST files made during "make dist"
Date: Mon, 13 May 2002 10:26:56 +0200
User-agent: Gnus/5.090006 (Oort Gnus v0.06) Emacs/21.2 (i386-debian-linux-gnu)

[Greg A. Woods]

[...]

| The only alternative, in my case, to keeping distcheck happy might be to
| run "make maintainer-clean" instead of "make distclean", but I don't
| think that's a good generic solution. (or maybe it is?)

I don't know.

| > So, why are your files rebuilt at all?  
| 
| Because they must be.  :-)

Because these distributed files are dependent upon
non-distributed built files.

| In general I can't believe this isn't a more frequent problem.  

Indeed.  A few other people have reported similar (if not worse)
issues.  Well, at least I remember two projects (Texinfo and
Autogen) which are in this case:
 
  - they distribute some files (the documentation) which are
    created using the tool they build;

  - these generated files are explicitely marked as dependent 
    upon the tool (to enforce proper ordering of the builds
    when they don't exist).

Like in your case, distributed files are dependent upon
non-distributed built files.  Except that here it causes
unecessary and systematic rebuilds on the user side (this
happens at `make'-time, not only `make dist').

| (I'll also bet there'll be quite a few more developers besides myself
| who get surprised by the apparent decision in 1.6 to not remove auto*
| generated files with "make maintainer-clean".)

(This comes from the GNU Coding Standards.)

[...]

In your case I think a workaround would be to create your files
during `make dist' but directly in the *distribution* directory,
not in the source directory.  You can do that with `dist-hook':

FILES_TO_RENAME_IN_DIST = ...

dist-hook: $(FILES_TO_RENAME_IN_DIST)
        for f in $(FILES_TO_RENAME_IN_DIST); do \
          cp ./$f $(distdir)/$f-dist; \
        done

and don't put all these *-dist files in EXTRA_FILES.
-- 
Alexandre Duret-Lutz




reply via email to

[Prev in Thread] Current Thread [Next in Thread]