On Tue, May 22, 2012 at 12:06 PM, Nick Bowler <nbow...@elliptictech.com> wrote:

> Probably all you need to do is add these generated files to CLEANFILES,
> e.g.,
>
>  CLEANFILES = git_version.py git_version.sed
>
> so that "make clean" deletes them.

I'd thought of that, but what puzzles me (and the reason I didn't use
it) is that it is only complaining about git_version.py and
git_version.sed and not LALAppsVCSInfo.h which is generated in the
same way? Why is LALAppsVCSInfo.h OK, but the others aren't?

> One unrelated comment.  Makefile rules like what you have above, one of
> which is reproduced here:
>
>> git_version.py: git_version.py.in git_version.sed
>>       $(AM_V_GEN)sed -f git_version.sed $(srcdir)/git_version.py.in > 
>> git_version.py
>
> can be problematic because it creates the target file before running the
> command to update it.  If the command fails for any reason, you will be
> left with the target in your tree, and a subsequent "make" will not
> attempt to recreate it (and will nevertheless proceed to use the bogus
> file).  This is especially bad if "make clean" doesn't delete the file,
> which distcheck is helpfully warning you about.  Therefore, such rules
> are generally better written using a pattern similar to the following
> (untested):
>
>  git_version.py: git_version.py.in git_version.sed
>        $(AM_V_GEN)sed -f git_version.sed $(srcdir)/git_version.py.in > $@.tmp
>        $(AM_V_at)mv -f $@.tmp $@
>
> which avoids updating the target file unless the first command succeeded.
>
> Hope that helps

Thanks, that's helpful.

Cheers

Adam

Reply via email to