automake
[Top][All Lists]
Advanced

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

Re: 01-factor-all.patch


From: Akim Demaille
Subject: Re: 01-factor-all.patch
Date: 05 Mar 2001 20:10:46 +0100
User-agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Cuyahoga Valley)

Tom Tromey <address@hidden> writes:

> I don't think it is actually important to support non-GNU make
> implementations here.  We've never supported Makefile rebuilding with
> vendor makes in the past.  No other GNU Makefile has.  We've also
> never had a complaint about it.  Since it sounds like this change
> adversely affects performance, I'm against it.

OK, fine with me.

> Also, `all' isn't the only time that Makefiles can be rebuilt.

I very much agree, and was puzzled by this.  I guessed we meant to
provide some support for the most common case.

> Ok, I see we currently have `all-am: Makefile'.
> But that doesn't seem like it can be right.
> And with GNU Make it is unnecessary.

Do you mean to get rid of it?

> Akim> I meant, `Makefile' must be done before `all', but not
> Akim> `$(DATA)', which is now a dependency of all-am, not `all'.
> Akim> There was no such distinction before, but for `config.h' (one
> Akim> way to paraphrase the paragraph above is to say that now
> Akim> `Makefile' and `config.h' have the same status wrt `all').  I
> Akim> was very unsure of the status of $(BUILT_SOURCES) and made it
> Akim> config.h-like, while $(DATA)-like was another valid choice.
> 
> You have to be careful touching BUILT_SOURCES.  In the past we forced
> them to be built as a condition of building (`Makefile: $(BUILT_SOURCES)').
> That is wrong.

Jim has this in the fileutils/src/Makefile.am:

Makefile: $(BUILT_SOURCES)

Jim, why do you?  Tom, why do you say it's wrong?

> Instead we want to make sure that BUILT_SOURCES are only built by
> `all'.  (I'm sure that's what you're doing.)
> 
> The guide here is the comment in &handle_merge_targets:
> 
>           # We need to make sure config.h is built before we
>           # recurse.  We also want to make sure that built sources
>           # are built before any ordinary `all' targets are run.  We
>           # can't do this by changing the order of dependencies to
>           # the "all" because that breaks when using parallel makes.
>           # Instead we handle things explicitly.
> 
> So yes, BUILT_SOURCES should be handled like config.h.  We must build
> them before all-recursive (and before all-am in the no-recursion
> case).

> Akim>         Standardize the handing of `all' targets.
> 
> I don't want to approve this until we decide on the `all: Makefile'
> change.  I'd prefer to simply drop it.

I understand.  I'll try to make the patch smaller.  I applied all the
other changes, I need to resync my home copy first.



reply via email to

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