]> granicus.if.org Git - sudo/commitdiff
Replace @DEV@ prefix with DEVEL variable so we can do "make DEVEL=1"
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 2 Dec 2011 18:43:02 +0000 (13:43 -0500)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 2 Dec 2011 18:43:02 +0000 (13:43 -0500)
compat/Makefile.in
configure
configure.in
doc/Makefile.in
plugins/sudoers/Makefile.in

index 09a02b26a8c48cd54bede0dcc273d7efc286189a..dfae3c5225fa7ee1d4f7a823f240efc5e995e0d5 100644 (file)
@@ -38,6 +38,9 @@ CFLAGS = @CFLAGS@
 # OS dependent defines
 DEFS = @OSDEFS@
 
+# Set to non-empty for development mode
+DEVEL = @DEVEL@
+
 #### End of system configuration section. ####
 
 SHELL = @SHELL@
@@ -76,8 +79,10 @@ fnm_test: fnm_test.o libreplace.la
 globtest: globtest.o libreplace.la
        $(LIBTOOL) --mode=link $(CC) -o $@ globtest.o libreplace.la
 
-@DEV@$(srcdir)/mksiglist.h: $(srcdir)/siglist.in
-@DEV@  awk 'BEGIN {print "/* public domain */\n"} /^    [A-Z]/ {printf("#ifdef SIG%s\n    if (my_sys_siglist[SIG%s] == NULL)\n\tmy_sys_siglist[SIG%s] = \"%s\";\n#endif\n", $$1, $$1, $$1, substr($$0, 13))}' < $(srcdir)/siglist.in > $@
+$(srcdir)/mksiglist.h: $(srcdir)/siglist.in
+       if [ -n "$(DEVEL)" ]; then \
+           awk 'BEGIN {print "/* public domain */\n"} /^    [A-Z]/ {printf("#ifdef SIG%s\n    if (my_sys_siglist[SIG%s] == NULL)\n\tmy_sys_siglist[SIG%s] = \"%s\";\n#endif\n", $$1, $$1, $$1, substr($$0, 13))}' < $(srcdir)/siglist.in > $@; \
+       fi
 
 pre-install:
 
index 13e16c89254ced2a6c1946acee9381391da38a1f..76a5b4dc663bb8c585aacfafcdfd16a673263463 100755 (executable)
--- a/configure
+++ b/configure
@@ -718,7 +718,7 @@ devdir
 SEMAN
 LCMAN
 BAMAN
-DEV
+DEVEL
 SUDOERS_GID
 SUDOERS_UID
 SUDOERS_MODE
@@ -2919,7 +2919,7 @@ PROGS="sudo"
 : ${SUDOERS_MODE='0440'}
 : ${SUDOERS_UID='0'}
 : ${SUDOERS_GID='0'}
-DEV="#"
+DEVEL=
 LDAP="#"
 BAMAN=0
 LCMAN=0
@@ -2976,7 +2976,7 @@ if test "${with_devel+set}" = set; then :
     yes)       { $as_echo "$as_me:${as_lineno-$LINENO}: Setting up for development: -Wall, flex, yacc" >&5
 $as_echo "$as_me: Setting up for development: -Wall, flex, yacc" >&6;}
                OSDEFS="${OSDEFS} -DSUDO_DEVEL"
-               DEV=""
+               DEVEL="true"
                devdir=.
                ;;
     no)                ;;
index 9051c6df7db77600b46fbe41e3937e6e9009d984..d27d355ebb05d937aee7956b53f2f936fbc7ed82 100644 (file)
@@ -38,7 +38,7 @@ AC_SUBST([MAN_POSTINSTALL])
 AC_SUBST([SUDOERS_MODE])
 AC_SUBST([SUDOERS_UID])
 AC_SUBST([SUDOERS_GID])
-AC_SUBST([DEV])
+AC_SUBST([DEVEL])
 AC_SUBST([BAMAN])
 AC_SUBST([LCMAN])
 AC_SUBST([SEMAN])
@@ -158,7 +158,7 @@ PROGS="sudo"
 : ${SUDOERS_MODE='0440'}
 : ${SUDOERS_UID='0'}
 : ${SUDOERS_GID='0'}
-DEV="#"
+DEVEL=
 LDAP="#"
 BAMAN=0
 LCMAN=0
@@ -214,7 +214,7 @@ AC_ARG_WITH(devel, [AS_HELP_STRING([--with-devel], [add development options])],
 [case $with_devel in
     yes)       AC_MSG_NOTICE([Setting up for development: -Wall, flex, yacc])
                OSDEFS="${OSDEFS} -DSUDO_DEVEL"
-               DEV=""
+               DEVEL="true"
                devdir=.
                ;;
     no)                ;;
index eadb05c15bcead6dcce75d0eb53af62a59115863..953d3410f2f591b2810fd278f06f5ec39121db36 100644 (file)
@@ -47,6 +47,9 @@ mandirform = $(mandir)/$(mantype)$(mansectform)
 install_uid = 0
 install_gid = 0
 
+# Set to non-empty for development mode
+DEVEL = @DEVEL@
+
 #### End of system configuration section. ####
 
 SHELL = @SHELL@
@@ -54,24 +57,23 @@ SHELL = @SHELL@
 DOCS = sudo.man visudo.man sudoers.man sudoers.ldap.man sudoers.man \
        sudoreplay.man sudo_plugin.man
 
-@DEV@DEVDOCS = $(srcdir)/sudo.man.in $(srcdir)/sudo.cat \
-@DEV@          $(srcdir)/visudo.man.in $(srcdir)/visudo.cat \
-@DEV@          $(srcdir)/sudoers.man.in $(srcdir)/sudoers.cat \
-@DEV@          $(srcdir)/sudoers.ldap.man.in $(srcdir)/sudoers.ldap.cat \
-@DEV@          $(srcdir)/sudoers.man.in $(srcdir)/sudoers.cat \
-@DEV@          $(srcdir)/sudoreplay.man.in $(srcdir)/sudoreplay.cat \
-@DEV@          $(srcdir)/sudo_plugin.man.in $(srcdir)/sudo_plugin.cat \
-@DEV@          $(srcdir)/HISTORY $(srcdir)/LICENSE $(srcdir)/CONTRIBUTORS
-
-OTHER_DOCS= $(top_srcdir)/ChangeLog $(top_srcdir)/README \
-           $(top_srcdir)/NEWS $(srcdir)/HISTORY $(srcdir)/CONTRIBUTORS \
-           $(srcdir)/LICENSE $(srcdir)/TROUBLESHOOTING $(srcdir)/UPGRADE \
-           $(srcdir)/sample.*
-
-OTHER_DOCS_LDAP= $(top_srcdir)/README.LDAP $(srcdir)/schema.*
+DEVDOCS = $(srcdir)/sudo.man.in $(srcdir)/sudo.cat \
+         $(srcdir)/visudo.man.in $(srcdir)/visudo.cat \
+         $(srcdir)/sudoers.man.in $(srcdir)/sudoers.cat \
+         $(srcdir)/sudoers.ldap.man.in $(srcdir)/sudoers.ldap.cat \
+         $(srcdir)/sudoers.man.in $(srcdir)/sudoers.cat \
+         $(srcdir)/sudoreplay.man.in $(srcdir)/sudoreplay.cat \
+         $(srcdir)/sudo_plugin.man.in $(srcdir)/sudo_plugin.cat \
+         $(srcdir)/HISTORY $(srcdir)/LICENSE $(srcdir)/CONTRIBUTORS
+
+OTHER_DOCS = $(top_srcdir)/ChangeLog $(top_srcdir)/README \
+            $(top_srcdir)/NEWS $(srcdir)/HISTORY $(srcdir)/CONTRIBUTORS \
+            $(srcdir)/LICENSE $(srcdir)/TROUBLESHOOTING $(srcdir)/UPGRADE \
+            $(srcdir)/sample.*
+OTHER_DOCS_LDAP = $(top_srcdir)/README.LDAP $(srcdir)/schema.*
 
 VERSION = @PACKAGE_VERSION@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
 
 all: $(DEVDOCS) $(DOCS)
 
@@ -80,71 +82,122 @@ Makefile: $(srcdir)/Makefile.in
 
 .SUFFIXES: .man
 
-@DEV@varsub: $(top_srcdir)/configure.in
-@DEV@  printf 's#@%s@#1#\ns#@%s@#1#\ns#@%s@#1#\ns#@%s@#/etc#g\ns#@%s@#/usr/local#g\ns#@%s@#4#g\ns#@%s@#1m#g\n' SEMAN BAMAN LCMAN sysconfdir prefix mansectform mansectsu > $@; sed -n '/Begin initial values for man page substitution/,/End initial values for man page substitution/{;p;}' $(top_srcdir)/configure.in | sed -e '/^#/d' -e 's/^/s#@/' -e 's/=[\\"]*/@#/' -e 's/[\\"]*$$/#g/' >> $@
+varsub: $(top_srcdir)/configure.in
+       if [ -n "$(DEVEL)" ]; then \
+           printf 's#@%s@#1#\ns#@%s@#1#\ns#@%s@#1#\ns#@%s@#/etc#g\ns#@%s@#/usr/local#g\ns#@%s@#4#g\ns#@%s@#1m#g\n' SEMAN BAMAN LCMAN sysconfdir prefix mansectform mansectsu > $@; \
+           sed -n '/Begin initial values for man page substitution/,/End initial values for man page substitution/{;p;}' $(top_srcdir)/configure.in | sed -e '/^#/d' -e 's/^/s#@/' -e 's/=[\\"]*/@#/' -e 's/[\\"]*$$/#g/' >> $@; \
+       fi
 
-@DEV@$(srcdir)/sudo.man.in: $(srcdir)/sudo.pod
-@DEV@  mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/sudo.pod > $@; pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectsu --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/sudo.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" | perl -p $(srcdir)/sudo.man.pl >> $@
+$(srcdir)/sudo.man.in: $(srcdir)/sudo.pod
+       if [ -n "$(DEVEL)" ]; then \
+           mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; \
+           mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; \
+           sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/sudo.pod > $@; \
+           pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectsu --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/sudo.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" | perl -p $(srcdir)/sudo.man.pl >> $@; \
+       fi
 
 sudo.man: $(srcdir)/sudo.man.in
        (cd $(top_builddir) && $(SHELL) config.status --file=doc/$@)
 
-@DEV@$(srcdir)/sudo.cat: varsub $(srcdir)/sudo.man.in
-@DEV@  sed -f varsub $(srcdir)/sudo.man.in | $(NROFF) -man > $@
+$(srcdir)/sudo.cat: varsub $(srcdir)/sudo.man.in
+       if [ -n "$(DEVEL)" ]; then \
+           sed -f varsub $(srcdir)/sudo.man.in | $(NROFF) -man > $@; \
+       fi
 
-@DEV@$(srcdir)/visudo.man.in: $(srcdir)/visudo.pod
-@DEV@  mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/visudo.pod > $@; pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectsu --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/visudo.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" -e 's|\\fI\\f\((CW*\)*I@\([^@]*\)\\fI@|\\fI@\2@|g' >> $@
+$(srcdir)/visudo.man.in: $(srcdir)/visudo.pod
+       if [ -n "$(DEVEL)" ]; then \
+           mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; \
+           mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; \
+           sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/visudo.pod > $@; \
+           pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectsu --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/visudo.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" -e 's|\\fI\\f\((CW*\)*I@\([^@]*\)\\fI@|\\fI@\2@|g' >> $@; \
+       fi
 
 visudo.man: $(srcdir)/visudo.man.in
        (cd $(top_builddir) && $(SHELL) config.status --file=doc/$@)
 
-@DEV@$(srcdir)/visudo.cat: varsub $(srcdir)/visudo.man.in
-@DEV@  sed -f varsub $(srcdir)/visudo.man.in | $(NROFF) -man > $@
+$(srcdir)/visudo.cat: varsub $(srcdir)/visudo.man.in
+       if [ -n "$(DEVEL)" ]; then \
+           sed -f varsub $(srcdir)/visudo.man.in | $(NROFF) -man > $@; \
+       fi
 
-@DEV@$(srcdir)/sudoers.man.in: $(srcdir)/sudoers.pod
-@DEV@  mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/sudoers.pod > $@; pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectform --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/sudoers.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" | perl -p $(srcdir)/sudoers.man.pl >> $@
+$(srcdir)/sudoers.man.in: $(srcdir)/sudoers.pod
+       if [ -n "$(DEVEL)" ]; then \
+           mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; \
+           mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; \
+           sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/sudoers.pod > $@; \
+           pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectform --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/sudoers.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" | perl -p $(srcdir)/sudoers.man.pl >> $@; \
+       fi
 
 sudoers.man: $(srcdir)/sudoers.man.in
        (cd $(top_builddir) && $(SHELL) config.status --file=doc/$@)
 
-@DEV@$(srcdir)/sudoers.cat: varsub $(srcdir)/sudoers.man.in
-@DEV@  sed -f varsub $(srcdir)/sudoers.man.in | $(NROFF) -man > $@
+$(srcdir)/sudoers.cat: varsub $(srcdir)/sudoers.man.in
+       if [ -n "$(DEVEL)" ]; then \
+           sed -f varsub $(srcdir)/sudoers.man.in | $(NROFF) -man > $@; \
+       fi
 
-@DEV@$(srcdir)/sudoers.ldap.man.in: $(srcdir)/sudoers.ldap.pod
-@DEV@  mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/sudoers.ldap.pod > $@; pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectform --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/sudoers.ldap.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" -e 's|\\fI\\f\((CW*\)*I@\([^@]*\)\\fI@|\\fI@\2@|g' >> $@
+$(srcdir)/sudoers.ldap.man.in: $(srcdir)/sudoers.ldap.pod
+       if [ -n "$(DEVEL)" ]; then \
+           mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; \
+           mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; \
+           sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/sudoers.ldap.pod > $@; \
+           pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectform --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/sudoers.ldap.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" -e 's|\\fI\\f\((CW*\)*I@\([^@]*\)\\fI@|\\fI@\2@|g' >> $@; \
+       fi
 
 sudoers.ldap.man: $(srcdir)/sudoers.ldap.man.in
        (cd $(top_builddir) && $(SHELL) config.status --file=doc/$@)
 
-@DEV@$(srcdir)/sudoers.ldap.cat: varsub $(srcdir)/sudoers.ldap.man.in
-@DEV@  sed -f varsub $(srcdir)/sudoers.ldap.man.in | $(NROFF) -man > $@
+$(srcdir)/sudoers.ldap.cat: varsub $(srcdir)/sudoers.ldap.man.in
+       if [ -n "$(DEVEL)" ]; then \
+           sed -f varsub $(srcdir)/sudoers.ldap.man.in | $(NROFF) -man > $@; \
+       fi
 
-@DEV@$(srcdir)/sudoreplay.man.in: $(srcdir)/sudoreplay.pod
-@DEV@  mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/sudoreplay.pod > $@; pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectsu --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/sudoreplay.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" -e 's|\\fI\\f\((CW*\)*I@\([^@]*\)\\fI@|\\fI@\2@|g' >> $@
+$(srcdir)/sudoreplay.man.in: $(srcdir)/sudoreplay.pod
+       if [ -n "$(DEVEL)" ]; then \
+           mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; \
+           mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; \
+           sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/sudoreplay.pod > $@; \
+           pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectsu --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/sudoreplay.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" -e 's|\\fI\\f\((CW*\)*I@\([^@]*\)\\fI@|\\fI@\2@|g' >> $@; \
+       fi
 
 sudoreplay.man: $(srcdir)/sudoreplay.man.in
        (cd $(top_builddir) && $(SHELL) config.status --file=doc/$@)
 
-@DEV@$(srcdir)/sudoreplay.cat: varsub $(srcdir)/sudoreplay.man.in
-@DEV@  sed -f varsub $(srcdir)/sudoreplay.man.in | $(NROFF) -man > $@
+$(srcdir)/sudoreplay.cat: varsub $(srcdir)/sudoreplay.man.in
+       if [ -n "$(DEVEL)" ]; then \
+           sed -f varsub $(srcdir)/sudoreplay.man.in | $(NROFF) -man > $@; \
+       fi
 
-@DEV@$(srcdir)/sudo_plugin.man.in: $(srcdir)/sudo_plugin.pod
-@DEV@  mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/sudo_plugin.pod > $@; pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectsu --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/sudo_plugin.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" -e 's|\\fI\\f\((CW*\)*I@\([^@]*\)\\fI@|\\fI@\2@|g' >> $@
+$(srcdir)/sudo_plugin.man.in: $(srcdir)/sudo_plugin.pod
+       if [ -n "$(DEVEL)" ]; then \
+           mansectsu=`echo @MANSECTSU@|tr A-Z a-z`; \
+           mansectform=`echo @MANSECTFORM@|tr A-Z a-z`; \
+           sed -n -e '/^=pod/q' -e 's/^/.\\" /p' $(srcdir)/sudo_plugin.pod > $@; \
+           pod2man --quotes=none --date="`date '+%B %e, %Y'`" --section=$$mansectsu --release=$(VERSION) --center="MAINTENANCE COMMANDS" $(srcdir)/sudo_plugin.pod | sed -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" -e 's|\\fI\\f\((CW*\)*I@\([^@]*\)\\fI@|\\fI@\2@|g' >> $@; \
+       fi
 
 sudo_plugin.man: $(srcdir)/sudo_plugin.man.in
        (cd $(top_builddir) && $(SHELL) config.status --file=doc/$@)
 
-@DEV@$(srcdir)/sudo_plugin.cat: varsub $(srcdir)/sudo_plugin.man.in
-@DEV@  sed -f varsub $(srcdir)/sudo_plugin.man.in | $(NROFF) -man > $@
+$(srcdir)/sudo_plugin.cat: varsub $(srcdir)/sudo_plugin.man.in
+       if [ -n "$(DEVEL)" ]; then \
+           sed -f varsub $(srcdir)/sudo_plugin.man.in | $(NROFF) -man > $@; \
+       fi
 
 CONTRIBUTORS: $(srcdir)/contributors.pod
-       pod2text -l -i0 $(srcdir)/contributors.pod | sed '1,3d' > $@
+       if [ -n "$(DEVEL)" ]; then \
+           pod2text -l -i0 $(srcdir)/contributors.pod | sed '1,3d' > $@; \
+       fi
 
 HISTORY: $(srcdir)/history.pod
-       pod2text -l -i0 $(srcdir)/history.pod > $@
+       if [ -n "$(DEVEL)" ]; then \
+           pod2text -l -i0 $(srcdir)/history.pod > $@; \
+       fi
 
 LICENSE: $(srcdir)/license.pod
-       pod2text -l -i0 $(srcdir)/license.pod | sed '1,3d' > $@
+       if [ -n "$(DEVEL)" ]; then \
+           pod2text -l -i0 $(srcdir)/license.pod | sed '1,3d' > $@; \
+       fi
 
 pre-install:
 
index 3e927daa616176424adecd0d9002a61145b2430a..7b9ab7ad43b4a049a3ddf264d90e15159c27b86d 100644 (file)
@@ -38,6 +38,7 @@ CC = @CC@
 LIBTOOL = @LIBTOOL@
 FLEX = @FLEX@
 YACC = @YACC@
+PERL = perl
 
 # Our install program supports extra flags...
 INSTALL = $(SHELL) $(top_srcdir)/install-sh -c
@@ -100,6 +101,9 @@ DEFS = @OSDEFS@ -D_PATH_SUDOERS=\"$(sudoersdir)/sudoers\" \
        -DSUDOERS_UID=$(sudoers_uid) -DSUDOERS_GID=$(sudoers_gid) \
        -DSUDOERS_MODE=$(sudoers_mode) -DLOCALEDIR=\"$(localedir)\"
 
+# Set to non-empty for development mode
+DEVEL = @DEVEL@
+
 #### End of system configuration section. ####
 
 SHELL = @SHELL@
@@ -185,38 +189,40 @@ check_fill: $(CHECK_FILL_OBJS) $(LT_LIBS)
 check_wrap: $(CHECK_WRAP_OBJS) $(LT_LIBS)
        $(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_WRAP_OBJS) $(LDFLAGS) $(LIBS)
 
-# Uncomment the following if you want "make distclean" to clean the parser
-@DEV@GENERATED = gram.h gram.c toke.c def_data.c def_data.h getdate.c
+GENERATED = gram.h gram.c toke.c def_data.c def_data.h getdate.c
 
-# Uncomment the lines before -@true if you intend to modify gram.y
 $(devdir)/gram.c $(devdir)/gram.h: $(srcdir)/gram.y
-@DEV@  $(YACC) -d $(srcdir)/gram.y
-@DEV@  echo "#include <config.h>" > $(devdir)/gram.c
-@DEV@  cat y.tab.c >> $(devdir)/gram.c
-@DEV@  rm -f y.tab.c
-@DEV@  mv -f y.tab.h $(devdir)/gram.h
-       -@true
-
-# Uncomment the lines before -@true if you intend to modify toke.l
+       if [ -n "$(DEVEL)" ]; then \
+           $(YACC) -d $(srcdir)/gram.y; \
+           echo "#include <config.h>" > $(devdir)/gram.c; \
+           cat y.tab.c >> $(devdir)/gram.c; \
+           rm -f y.tab.c; \
+           mv -f y.tab.h $(devdir)/gram.h; \
+       fi
+
 $(devdir)/toke.c: $(srcdir)/toke.l
-@DEV@  $(FLEX) $(srcdir)/toke.l
-@DEV@  echo "#include <config.h>" > $(devdir)/toke.c
-@DEV@  cat lex.yy.c >> $(devdir)/toke.c
-@DEV@  rm -f lex.yy.c
-       -@true
+       if [ -n "$(DEVEL)" ]; then \
+           $(FLEX) $(srcdir)/toke.l; \
+           echo "#include <config.h>" > $(devdir)/toke.c; \
+           cat lex.yy.c >> $(devdir)/toke.c; \
+           rm -f lex.yy.c; \
+       fi
 
 # Uncomment the lines before -@true if you intend to modify getdate.y
 $(devdir)/getdate.c: $(srcdir)/getdate.y
-@DEV@  echo "expect 10 shift/reduce conflicts"
-@DEV@  $(YACC) $(srcdir)/getdate.y
-@DEV@  echo "#include <config.h>" > $(devdir)/getdate.c
-@DEV@  cat y.tab.c >> $(devdir)/getdate.c
-@DEV@  rm -f y.tab.c
-       -@true
+       if [ -n "$(DEVEL)" ]; then \
+           echo "expect 10 shift/reduce conflicts"; \
+           $(YACC) $(srcdir)/getdate.y; \
+           echo "#include <config.h>" > $(devdir)/getdate.c; \
+           cat y.tab.c >> $(devdir)/getdate.c; \
+           rm -f y.tab.c; \
+       fi
 
 # Uncomment the following if you intend to modify def_data.in
-@DEV@$(devdir)/def_data.c $(devdir)/def_data.h: $(srcdir)/def_data.in
-@DEV@  perl $(srcdir)/mkdefaults -o $(devdir)/def_data $(srcdir)/def_data.in
+$(devdir)/def_data.c $(devdir)/def_data.h: $(srcdir)/def_data.in
+       if [ -n "$(DEVEL)" ]; then \
+           $(PERL) $(srcdir)/mkdefaults -o $(devdir)/def_data $(srcdir)/def_data.in; \
+       fi
 
 sudoers: $(srcdir)/sudoers.in
        (cd $(top_builddir) && $(SHELL) config.status --file=plugins/sudoers/$@)
@@ -344,6 +350,9 @@ mostlyclean: clean
 
 distclean: clean
        -rm -rf Makefile sudoers sudoers.lo .libs $(LINKS)
+       if [ -n "$(DEVEL)" -a "$(devdir)" != "$(srcdir)" ]; then \
+           rm -rf $(GENERATED); \
+       fi
 
 clobber: distclean