## Parser generation.  ##
 ## ------------------- ##
 
-CLEANFILES += examples/calc++/calc++-parser.output *.tmp
-
 # Don't depend on $(BISON) otherwise we would rebuild these files
 # in srcdir, including during distcheck, which is forbidden.
 examples/calc++/calc++-parser.stamp: $(BISON_IN)
 $(calc_sources_generated): examples/calc++/calc++-parser.stamp
        @test -f $@ || rm -f examples/calc++/calc++-parser.stamp
        @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) examples/calc++/calc++-parser.stamp
+CLEANFILES +=                                  \
+  $(calc_sources_generated)                    \
+  examples/calc++/calc++-parser.output         \
+  examples/calc++/calc++-parser.stamp          \
+  examples/calc++/calc++-scanner.cc
 
 
 ## -------------------- ##
 
 extexi = $(top_srcdir)/examples/extexi
 extract = $(AWK) -f $(extexi) -v VERSION="$(VERSION)" $(doc) --
 extracted =
-MAINTAINERCLEANFILES += $(extracted)
+CLEANFILES += $(extracted) examples/extracted.stamp
 examples/extracted.stamp: $(doc) $(extexi)
        $(AM_V_GEN)rm -f $@ $@.tmp
        $(AM_V_at)touch $@.tmp