"Thomas G. Lockhart" <lockhart@alumni.caltech.edu> writes:
> But I'm pretty sure that doesn't explain all the breakage. Will continue
> testing a bit (I *really* need to get back to the docs!), but the first
> problem I saw was due to a missing file which was not built
> automatically, and if you don't do a clean install you won't see the
> problem again. That's why I could work with "cvs update -Pd" for weeks
> and not see the breakage introduced, because by that point a
> Makefile.tcldefs already existed.
Ah, I see the problem! The Makefile in .../pgtclsh has
Makefile.tcldefs:/bin/sh mkMakefile.tcldefs.sh
which is OK for building Makefile.tcldefs initially ... but it needs
a dependency so that Makefile.tcldefs will be rebuilt if
mkMakefile.tcldefs.sh has changed.
I think there is also a syntax error at the inclusion point ---
tabs before an include directive are a NO-NO.
Will fix, and check the other tcl makefiles for the same problem.
> So, I'm not sure I understand what the current design is really supposed
> to do, but istm that we could do a conditional include of
> Makefile.tcldefs, and have Makefile.tcldefs be a prerequisite for
> $(PGMS). Like this:
> ifneq ($(wildcard Makefile.tclsh), )
> include Makefile.tclsh
> endif
Like I said, this is *not* necessary since we are assuming GNU Make.
Make already knows about (re)building included files as required;
see "How Makefiles Are Remade" in the GNU Make manual.
The problem is we're not giving it correct dependency info.
regards, tom lane