<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
On Mon, 2010-11-22 at 22:30 -0500, Trevor Woerner wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
On Mon, Nov 22, 2010 at 7:21 PM, Gaetan Nadon &lt;<A HREF="mailto:memsize@videotron.ca">memsize@videotron.ca</A>&gt; wrote:
&gt; On Mon, 2010-11-22 at 17:26 -0500, Trevor Woerner wrote:
&gt; -.PHONY: ChangeLog INSTALL
&gt; +.PHONY: ChangeLog INSTALL documents
&gt;
&gt; I don't think it should be a PHONY target, &quot;documents&quot; is not a file.
&gt; It's like the lint target.

I thought this is exactly the sort of scenario where a PHONY target is
used. From &quot;info make&quot;:

&quot;A phony target is one that is not really the name of a file. It is
just a name for some commands to be executed when you make an explicit
request.&quot;

In other words, when you're done performing &quot;make documents&quot; you don't
actually end up with a file called &quot;documents&quot; the way you would if
you did, say, a &quot;make hello&quot; in a &quot;hello world&quot; project. &quot;make
documents&quot; is just a way to invoke this set of commands from within
the Makefile.
</PRE>
</BLOCKQUOTE>
<BR>
Because we do not expect a file named &quot;documents&quot; to be created, the target name<BR>
does not &quot;have to&quot; be a PHONY target, but it does not hurt if it is. In contrast, ChangeLog<BR>
must be a PHONY target or it never rebuilds as it is considered up to date.<BR>
<BR>
As Julien suggested, it should be named install-docs perhaps. Try it out with/without PHONY<BR>
for both ChangeLog and documents.<BR>
<BR>
There is nothing wrong in the make info, but they are concerned about not rebuilding a target<BR>
for every &quot;make target&quot; invocation. In our case, this is what we want as we just want to invoke<BR>
the real doc target which takes care of the dependencies.<BR>
<BR>
In the case of ChangeLog, we do want to rebuild the target (even if it is a file) as it is generated<BR>
from git and we cannot know if it is up to date or not.<BR>
<BR>
<BR>
</BODY>
</HTML>