[Top][All Lists]
[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.