On 02/22/2012 03:54 PM, Akim Demaille wrote: > hi Stefano, Hello World!\n > >> On 02/20/2012 02:24 PM, Akim Demaille wrote: >>>> >>>> src/parse-gram.h: src/parse-gram.c >>>> @if test ! -f $@; then rm -f src/parse-gram.c; else :; fi >>>> @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) src/parse-gram.c; else >>>> :; fi >>> >>> Also, why two "if"? >> >> For the sake of "make -n": at least GNU make and Solaris make execute >> recipes containing the $(MAKE) string even when they are running in dry >> mode; so if we didn't break the recipe above in two invocations, the >> file 'src/parse-gram.c' would be removed even upon "make -n". Not nice. > > Ah, I can understand the rationale, thanks for the explanation! > > Another technical question: any reason for not using the much > shorter "||" here? > I don't think so -- but I haven't written that code :-)
> src/parse-gram.h: src/parse-gram.c > test -f $@ || rm -f src/parse-gram.c > test -f $@ || $(MAKE) $(AM_MAKEFLAGS) src/parse-gram.c > This seems nicer. Care to write a patch to implement this simplification (here and for other similar usages)? Otherwise, I will get to do that myself eventually. Thanks, Stefano