In this example, sub/q.d is same as sub2/q.d sub/z.d is different from sub2/z.d
target def's output is what I expect. target all's output is not. I expect q.d same z.d diff How do I fix? $ cat makefile define Diff $(shell diff $(1) $(2) 1>/dev/null 2>&1; [ $$? -ne 0 ] && echo 1) endef all: def for f in q.d z.d; do echo $$f $(if $(call Diff,sub/$$f,sub2),diff,same); done def: @echo q.d $(call Diff,sub/q.d,sub2) @echo z.d $(call Diff,sub/z.d,sub2) $ make q.d z.d 1 for f in q.d z.d; do echo $f diff; done q.d diff z.d diff Thanks James _______________________________________________ help-gnu-utils mailing list help-gnu-utils@gnu.org http://lists.gnu.org/mailman/listinfo/help-gnu-utils