diff --git a/makefile b/makefile index e0a43da..3f3c3c2 100644 --- a/makefile +++ b/makefile @@ -54,10 +54,15 @@ a.out: ytab.o $(OFILES) $(OFILES): awk.h ytab.h proto.h -ytab.c: awk.h proto.h awkgram.y +#Clear dependency for parallel build: (make -j) +#YACC generated y.tab.c and y.tab.h at the same time +#this needs to be a static pattern rules otherwise multiple target +#are mapped onto multiple executions of yacc, which overwrite +#each others outputs. +y%.c y%.h: awk.h proto.h awkgram.y $(YACC) $(YFLAGS) awkgram.y - mv y.tab.c ytab.c - mv y.tab.h ytab.h + mv y.$*.c y$*.c + mv y.$*.h y$*.h ytab.h: ytab.c