diff --git a/plugins/sudoers/Makefile.in b/plugins/sudoers/Makefile.in index d5578d6b6b..8ebc4660a0 100644 --- a/plugins/sudoers/Makefile.in +++ b/plugins/sudoers/Makefile.in @@ -491,21 +491,26 @@ run-fuzz_sudoers_ldif: fuzz_sudoers_ldif done; \ ./fuzz_sudoers_ldif -dict=$(srcdir)/regress/fuzz/fuzz_sudoers_ldif.dict -max_len=$(FUZZ_MAX_LEN) -runs=$(FUZZ_RUNS) $(FUZZ_VERBOSE) $$corpus -GENERATED = gram.h gram.c toke.c def_data.c def_data.h getdate.c +GENERATED = gram.h gram.c gram.stamp toke.c def_data.c def_data.h def_data.stamp getdate.c prologue: echo "#include " >> $@ -$(devdir)/gram.c $(devdir)/gram.h: $(srcdir)/gram.y prologue +$(devdir)/gram.c $(devdir)/gram.h: $(devdir)/gram.stamp + @if [ ! -f $@ ]; then rm -f $<; false; fi +$(devdir)/gram.stamp: $(srcdir)/gram.y prologue + @rm -f $(devdir)/gram.tmp + @touch $(devdir)/gram.tmp @if [ -n "$(DEVEL)" ]; then \ if test "$(srcdir)" = "."; then \ gram_y="gram.y"; \ else \ gram_y="$(srcdir)/gram.y"; \ fi; \ - cmd='$(YACC) -d -p sudoers '"$$gram_y"'; cp prologue $(devdir)/gram.c; $(SED) -e "s/^\\(#line .*\\) \"y\\.tab\\.c\"/\1 \"gram.c\"/" -e "/^# *include /{N;s/__STDC_VERSION__ && 199901 <= __STDC_VERSION__/HAVE_STDINT_H/;}" y.tab.c >> $(devdir)/gram.c; sed -e "s/^\\(#line .*\\) \"y\\.tab\\.h\"/\1 \"gram.h\"/" y.tab.h > $(devdir)/gram.h; rm -f y.tab.[ch]'; \ + cmd='mkdir -p gram && cd gram && $(YACC) -d -p sudoers '"$$(realpath "$$gram_y")"' && cd .. && cp prologue $(devdir)/gram.c && $(SED) -e "s/^\\(#line .*\\) \"y\\.tab\\.c\"/\1 \"gram.c\"/" -e "/^# *include /{N;s/__STDC_VERSION__ && 199901 <= __STDC_VERSION__/HAVE_STDINT_H/;}" gram/y.tab.c >> $(devdir)/gram.c && sed -e "s/^\\(#line .*\\) \"y\\.tab\\.h\"/\1 \"gram.h\"/" gram/y.tab.h > $(devdir)/gram.h && rm -rf gram/'; \ echo "$$cmd"; eval $$cmd; \ fi + @mv -f $(devdir)/gram.tmp $@ $(devdir)/toke.c: $(srcdir)/toke.l prologue @if [ -n "$(DEVEL)" ]; then \ @@ -514,7 +519,7 @@ $(devdir)/toke.c: $(srcdir)/toke.l prologue else \ toke_l="$(srcdir)/toke.l"; \ fi; \ - cmd='$(FLEX) '"$$toke_l"'; cp prologue $(devdir)/toke.c; $(SED) -e "s/^\\(#line .*\\) \"lex\\.sudoers\\.c\"/\1 \"toke.c\"/" -e "s:/\* *FALLTHROUGH *\*/:FALLTHROUGH;:" lex.sudoers.c >> $(devdir)/toke.c; rm -f lex.sudoers.c'; \ + cmd='$(FLEX) '"$$toke_l"' && cp prologue $(devdir)/toke.c && $(SED) -e "s/^\\(#line .*\\) \"lex\\.sudoers\\.c\"/\1 \"toke.c\"/" -e "s:/\* *FALLTHROUGH *\*/:FALLTHROUGH;:" lex.sudoers.c >> $(devdir)/toke.c && rm -f lex.sudoers.c'; \ echo "$$cmd"; eval $$cmd; \ fi @@ -526,15 +531,20 @@ $(devdir)/getdate.c: $(srcdir)/getdate.y prologue else \ getdate_y="$(srcdir)/getdate.y"; \ fi; \ - cmd='$(YACC) '"$$getdate_y"'; cp prologue $(devdir)/getdate.c; $(SED) -e "s/^\\(#line .*\\) \"y\\.tab\\.c\"/\1 \"getdate.c\"/" -e "/^# *include /{N;s/__STDC_VERSION__ && 199901 <= __STDC_VERSION__/HAVE_STDINT_H/;}" y.tab.c >> $(devdir)/getdate.c; rm -f y.tab.c'; \ + cmd='mkdir -p getdate && cd getdate && $(YACC) '"$$(realpath "$$getdate_y")"' && cd .. && cp prologue $(devdir)/getdate.c && $(SED) -e "s/^\\(#line .*\\) \"y\\.tab\\.c\"/\1 \"getdate.c\"/" -e "/^# *include /{N;s/__STDC_VERSION__ && 199901 <= __STDC_VERSION__/HAVE_STDINT_H/;}" getdate/y.tab.c >> $(devdir)/getdate.c && rm -rf getdate/'; \ echo "$$cmd"; eval $$cmd; \ fi -$(devdir)/def_data.c $(devdir)/def_data.h: $(srcdir)/def_data.in +$(devdir)/def_data.c $(devdir)/def_data.h: $(devdir)/def_data.stamp + @if [ ! -f $@ ]; then rm -f $<; false; fi +$(devdir)/def_data.stamp: $(srcdir)/def_data.in + @rm -f $(devdir)/def_data.tmp + @touch $(devdir)/def_data.tmp @if [ -n "$(DEVEL)" ]; then \ cmd='AWK=$(AWK) $(SHELL) $(srcdir)/mkdefaults -o $(devdir)/def_data $(srcdir)/def_data.in'; \ echo "$$cmd"; eval $$cmd; \ fi + @mv -f $(devdir)/def_data.tmp $@ tsgetusershell.c: $(top_srcdir)/lib/util/getusershell.c printf '#define TESTSUDOERS\n\n' > $@