Re: Makefiles don't seem to remember to rebuild everything anymore

From: Cédric Villemain <cedric(at)2ndquadrant(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Pavan Deolasee <pavan(dot)deolasee(at)gmail(dot)com>, Peter Eisentraut <peter_e(at)gmx(dot)net>
Subject: Re: Makefiles don't seem to remember to rebuild everything anymore
Date: 2012-12-17 17:02:53
Message-ID: 201212171802.57298.cedric@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Le lundi 17 décembre 2012 17:42:04, Tom Lane a écrit :
> =?iso-8859-15?q?C=E9dric_Villemain?= <cedric(at)2ndquadrant(dot)com> writes:
> > Le lundi 17 décembre 2012 16:45:16, Tom Lane a écrit :
> >> Having seen this, I now think .SECONDARY is broken across the board.
> >
> > make does what it is supposed to do here IIUC.
>
> Well, it's behaving as documented, but what this means is we need to be
> very wary of what contexts we can use .SECONDARY in. I'd just as soon
> try to avoid using it at all --- my example with hand-edited gram.c
> points out that even rather short dependency chains can have unexpected
> misbehaviors if the intermediate files are marked .SECONDARY.

"touch gram.c" then "make" will build again the affected files. Which is
different from "rm gram.c"...
A "touch gram.y" will trigger a rebuild of "gram.c" (and "gram.o").

Maybe Makefile has an option to be a little bit more conservative and rebuild
any removed intermediate file even if not required.

> > What was the consensus when Peter did the change ?
>
> It was an experiment, nothing more; or at least that's how I saw it.

ok.

--
Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavan Deolasee 2012-12-17 17:02:58 Re: Makefiles don't seem to remember to rebuild everything anymore
Previous Message Christoph Berg 2012-12-17 17:02:51 configure.in and setproctitle/optreset problem