aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2005-02-14 20:33:57 +0000
committerGuy Harris <guy@alum.mit.edu>2005-02-14 20:33:57 +0000
commit6616a3770c6ba8f0154e9887f5179af59a8f4b2c (patch)
tree97ab3ed42dd7c943f067a2cb2243b19f8978aff5
parentb4b5a4776fb35f7a4431055a1295f5f162e7b355 (diff)
Make the "maintainer-clean" rules get rid of some additional generated
files. Do this with GENERATED_HEADER_FILES, GENERATED_C_FILES, and GENERATED_FILES macros in Makefile.common files, along the lines of what wiretap/Makefile.common has. Clean up "*~" files with "make clean" rather than only "make distclean" in some additional places. Add "maintainer-clean" rules to the Makefile.nmake files, paralelling the ones in the automake-generated Makefile.in files, using the GENERATED_FILES macros from Makefile.common files. In some cases, move the cleanup of files from "make distclean" to "make maintainer-clean", and in other cases, put in a comment indicating why we're not doing that (because some files that are distributed in the source tarballs, namely Flex output, were built with a UN*X Flex and won't compile on Windows, so we get rid of them with "make distclean" so you can clean up stuff that *has* to be re-generated for Windows). Clean up some *CLEANFILES definitions - get rid of ones that no longer apply as files were moved or that add to the definition a name that's already there. svn path=/trunk/; revision=13402
-rw-r--r--Makefile.am24
-rw-r--r--Makefile.common20
-rw-r--r--Makefile.nmake36
-rw-r--r--doc/Makefile.nmake2
-rw-r--r--epan/Makefile.am4
-rw-r--r--epan/Makefile.nmake9
-rw-r--r--epan/dfilter/Makefile.nmake11
-rw-r--r--epan/dissectors/Makefile.am8
-rw-r--r--epan/dissectors/Makefile.common33
-rw-r--r--epan/dissectors/Makefile.nmake5
-rw-r--r--epan/ftypes/Makefile.nmake3
-rw-r--r--gtk/Makefile.am3
-rw-r--r--gtk/Makefile.common10
-rw-r--r--gtk/Makefile.nmake6
-rw-r--r--help/Makefile.nmake2
-rw-r--r--image/Makefile.nmake2
-rw-r--r--packaging/nsis/Makefile.nmake2
-rw-r--r--plugins/Makefile.nmake42
-rw-r--r--plugins/acn/Makefile.nmake2
-rw-r--r--plugins/agentx/Makefile.nmake2
-rw-r--r--plugins/artnet/Makefile.nmake2
-rw-r--r--plugins/asn1/Makefile.nmake2
-rw-r--r--plugins/ciscosm/Makefile.nmake2
-rw-r--r--plugins/docsis/Makefile.nmake2
-rw-r--r--plugins/enttec/Makefile.nmake2
-rw-r--r--plugins/giop/Makefile.nmake2
-rw-r--r--plugins/gryphon/Makefile.nmake2
-rw-r--r--plugins/irda/Makefile.nmake2
-rw-r--r--plugins/lwres/Makefile.nmake2
-rw-r--r--plugins/mate/Makefile.nmake2
-rw-r--r--plugins/megaco/Makefile.nmake2
-rw-r--r--plugins/mgcp/Makefile.nmake2
-rw-r--r--plugins/opsi/Makefile.nmake2
-rw-r--r--plugins/pcli/Makefile.nmake2
-rw-r--r--plugins/rdm/Makefile.nmake2
-rw-r--r--plugins/rlm/Makefile.nmake2
-rw-r--r--plugins/rtnet/Makefile.nmake2
-rw-r--r--plugins/rudp/Makefile.nmake2
-rw-r--r--plugins/v5ua/Makefile.nmake2
-rwxr-xr-xtools/Makefile.nmake5
-rw-r--r--tools/lemon/Makefile.nmake2
-rw-r--r--wiretap/Makefile.nmake13
42 files changed, 241 insertions, 43 deletions
diff --git a/Makefile.am b/Makefile.am
index a4c5fd5c66..bb11d6d13c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -381,17 +381,27 @@ dftest_LDADD = \
dftest_LDFLAGS = -export-dynamic
-CLEANFILES = \
- svnversion.h \
- @rdps_bin@ \
- idl2eth
+#
+# XXX - "svnversion.h" is distributed in the release tarball; should
+# we be deleting it with "make clean", or should we only do that with
+# "make maintainer-clean"?
+#
+CLEANFILES = \
+ svnversion.h \
+ @rdps_bin@ \
+ idl2eth \
+ *~
+#
+# XXX - "ps.c" is distributed in the source tarballs; why is it in the
+# list of files removed by "make distclean"? (It's deliberately
+# included in that list.)
+#
DISTCLEANFILES = \
- ps.c \
- *~
+ ps.c
MAINTAINERCLEANFILES = \
- ps.c
+ $(GENERATED_FILES)
EXTRA_DIST = \
AUTHORS-SHORT \
diff --git a/Makefile.common b/Makefile.common
index d47c72d02d..287c8e3856 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -48,10 +48,26 @@ DISSECTOR_SUPPORT_INCLUDES = \
x264_prt_id.h
# "BUILT_SOURCES" are built before any "make all" or "make check" targets.
-BUILT_SOURCES = \
- svnversion.h \
+BUILT_HEADER_FILES = \
+ svnversion.h
+
+BUILT_C_FILES = \
ps.c
+BUILT_SOURCES = $(BUILT_C_FILES) $(BUILT_HEADER_FILES)
+
+# Header files generated from source files.
+GENERATED_HEADER_FILES = \
+ $(BUILT_HEADER_FILES)
+
+# C source files generated from source files.
+GENERATED_C_FILES = \
+ $(BUILT_C_FILES) \
+ tethereal-tap-register.c
+
+# All the generated files.
+GENERATED_FILES = $(GENERATED_C_FILES) $(GENERATED_HEADER_FILES)
+
# sources common for ethereal and tethereal
ETHEREAL_COMMON_SRC = \
$(PLATFORM_SRC) \
diff --git a/Makefile.nmake b/Makefile.nmake
index 8c0f29f84e..fdde302340 100644
--- a/Makefile.nmake
+++ b/Makefile.nmake
@@ -27,9 +27,6 @@ PLATFORM_SRC = capture-wpcap.c
include Makefile.common
-BUILT_SOURCES = $(BUILT_SOURCES) \
- svnversion.h
-
ethereal_OBJECTS = $(ethereal_SOURCES:.c=.obj)
tethereal_OBJECTS = $(tethereal_SOURCES:.c=.obj)
dftest_OBJECTS = $(dftest_SOURCES:.c=.obj)
@@ -290,11 +287,10 @@ clean: gtk2_distclean
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../..
-# Call distclean only, if you would like to remove ALL generated files.
-# Be sure to have python and perl installed to regenerate them.
+# "distclean" removes all files not part of the distribution.
+# It does not remove generated files that are part of the distribution.
distclean: clean gtk2_distclean
- rm -f $(BUILT_SOURCES) \
- tethereal-tap-register.c
+ rm -f config.h $(BUILT_SOURCES)
cd wiretap
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../gtk
@@ -315,6 +311,31 @@ distclean: clean gtk2_distclean
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../..
+# Make "maintainer-clean" only if you would like to remove ALL generated
+# files.
+# Be sure to have python and perl installed to regenerate them.
+maintainer-clean: distclean
+ rm -f $(GENERATED_FILES)
+ cd wiretap
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../gtk
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../epan
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../plugins
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../tools
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../image
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../doc
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../help
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../packaging/nsis
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../..
+
tools::
cd tools
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
@@ -490,4 +511,3 @@ update_plugin_api: config.h
cd plugins
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake xyzzy
cd ..
-
diff --git a/doc/Makefile.nmake b/doc/Makefile.nmake
index a0d604ae4f..403737c356 100644
--- a/doc/Makefile.nmake
+++ b/doc/Makefile.nmake
@@ -164,3 +164,5 @@ clean:
rm -f pod2htm*
distclean: clean
+
+maintainer-clean: distclean
diff --git a/epan/Makefile.am b/epan/Makefile.am
index 374a88e303..04fc221af7 100644
--- a/epan/Makefile.am
+++ b/epan/Makefile.am
@@ -61,10 +61,6 @@ CLEANFILES = \
libethereal.la \
*~
-MAINTAINERCLEANFILES = \
- register.c \
- ../packet-ncp2222.c
-
#
# Add the object files for missing routines, if any.
#
diff --git a/epan/Makefile.nmake b/epan/Makefile.nmake
index 3c09327b2b..96a0335cca 100644
--- a/epan/Makefile.nmake
+++ b/epan/Makefile.nmake
@@ -93,6 +93,15 @@ distclean: clean
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ..
+maintainer-clean: distclean
+ cd ftypes
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../dfilter
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../dissectors
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ..
+
ftypes:: ..\config.h
cd ftypes
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
diff --git a/epan/dfilter/Makefile.nmake b/epan/dfilter/Makefile.nmake
index 21038114aa..8593e39dbe 100644
--- a/epan/dfilter/Makefile.nmake
+++ b/epan/dfilter/Makefile.nmake
@@ -47,9 +47,20 @@ $(OBJECTS): ..\..\config.h
clean:
rm -f $(OBJECTS) dfilter.lib $(PDB_FILE)
+#
+# We remove the generated files with "distclean" because one of them,
+# "scanner.c", needs different #includes for UN*X and Windows
+# (UN*X versions of Flex make it include <unistd.h>, but that's a
+# UN*X-only header), so if you're going to build from source, you need
+# to build "scanner.c" from "scanner.l" with Flex.
+# This might not be necessary for "grammar.{c,h}", but we handle them
+# the same for now.
+#
distclean: clean
rm -f scanner.c grammar.c grammar.h grammar.out
+maintainer-clean: distclean
+
scanner.c : scanner.l
$(LEX) -Pdf_ -oscanner.c scanner.l
diff --git a/epan/dissectors/Makefile.am b/epan/dissectors/Makefile.am
index 84c9b7513c..12a7a8f17b 100644
--- a/epan/dissectors/Makefile.am
+++ b/epan/dissectors/Makefile.am
@@ -105,13 +105,11 @@ register.c: $(plugin_src) $(DISSECTOR_SRC) $(srcdir)/make-reg-dotc $(srcdir)/mak
#dist-hook:
# @rm -f $(distdir)/register.c
-
-MAINTAINERCLEANFILES = \
- register.c \
- packet-ncp2222.c
-
CLEANFILES = \
libdissectors.a \
libdissectors.la \
$(GENERATED_HEADER_FILES) \
*~
+
+MAINTAINERCLEANFILES = \
+ $(GENERATED_FILES)
diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common
index 284f0b61fd..e486490dd0 100644
--- a/epan/dissectors/Makefile.common
+++ b/epan/dissectors/Makefile.common
@@ -23,13 +23,28 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# Generated header files that we want in the distribution.
-#
-GENERATED_HEADER_FILES = \
+# "BUILT_SOURCES" are built before any "make all" or "make check" targets.
+BUILT_HEADER_FILES = \
x11-declarations.h \
x11-register-info.h
+BUILT_C_FILES = \
+ register.c
+
+BUILT_SOURCES = $(BUILT_C_FILES) $(BUILT_HEADER_FILES)
+
+# Header files generated from source files.
+GENERATED_HEADER_FILES = \
+ $(BUILT_HEADER_FILES)
+
+# C source files generated from source files.
+GENERATED_C_FILES = \
+ $(BUILT_C_FILES) \
+ packet-ncp2222.c
+
+# All the generated files.
+GENERATED_FILES = $(GENERATED_HEADER_FILES) $(GENERATED_C_FILES)
+
# the dissector sources (without any helpers)
DISSECTOR_SRC = \
packet-3g-a11.c \
@@ -791,17 +806,13 @@ DISSECTOR_INCLUDES = \
packet-ypxfr.h \
$(GENERATED_HEADER_FILES)
-# dissector helpers (needed from the dissectors, but not a dissector itself)
+# Dissector helpers. They're included in the source files in this
+# directory, but they're not dissectors themselves, i.e. they're not
+# used to generate "register.c").
DISSECTOR_SUPPORT_SRC = \
packet-dcerpc-nt.c \
register.c
-# "BUILT_SOURCES" are built before any "make all" or "make check" targets.
-BUILT_SOURCES = \
- register.c \
- x11-declarations.h \
- x11-register-info.h
-
# this target needed for distribution only
noinst_HEADERS = \
$(DISSECTOR_INCLUDES)
diff --git a/epan/dissectors/Makefile.nmake b/epan/dissectors/Makefile.nmake
index 28dd4562c3..d606401ad9 100644
--- a/epan/dissectors/Makefile.nmake
+++ b/epan/dissectors/Makefile.nmake
@@ -39,7 +39,6 @@ packet-x11.obj : packet-x11.c x11-declarations.h x11-register-info.h
x11-declarations.h x11-register-info.h: x11-fields process-x11-fields.pl
$(PERL) process-x11-fields.pl <x11-fields
-
#
# Build "register.c", which contains a function "register_all_protocols()"
# that calls the register routines for all protocols.
@@ -98,4 +97,6 @@ clean:
$(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS)
distclean: clean
- rm -f $(BUILT_SOURCES) packet-ncp2222.c register.c
+
+maintainer-clean: distclean
+ rm -f $(GENERATED_FILES)
diff --git a/epan/ftypes/Makefile.nmake b/epan/ftypes/Makefile.nmake
index e64f9695e8..9408c4fba6 100644
--- a/epan/ftypes/Makefile.nmake
+++ b/epan/ftypes/Makefile.nmake
@@ -32,8 +32,9 @@ OBJECTS = \
ftypes.lib : $(OBJECTS)
link /lib /out:ftypes.lib $(OBJECTS)
-
clean:
rm -f $(OBJECTS) ftypes.lib $(PDB_FILE)
distclean: clean
+
+maintainer-clean: distclean
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index e3e2d1e5b3..846fd185e9 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -29,6 +29,9 @@ CLEANFILES = \
libui.a \
*~
+MAINTAINERCLEANFILES = \
+ $(GENERATED_FILES)
+
ethereal-tap-register.c: $(ETHEREAL_TAP_SRC) $(top_srcdir)/make-tapreg-dotc
@echo Making ethereal-tap-register.c
@$(top_srcdir)/make-tapreg-dotc ethereal-tap-register.c $(srcdir) $(ETHEREAL_TAP_SRC)
diff --git a/gtk/Makefile.common b/gtk/Makefile.common
index 3e9519ccb1..23ece7e268 100644
--- a/gtk/Makefile.common
+++ b/gtk/Makefile.common
@@ -23,6 +23,16 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Generated header files that we want in the distribution.
+# (None, so far.)
+GENERATED_HEADER_FILES =
+
+# Generated C source files that we want in the distribution.
+GENERATED_C_FILES = \
+ ethereal-tap-register.c
+
+# All the generated files we want in the distribution.
+GENERATED_FILES = $(GENERATED_HEADER_FILES) $(GENERATED_C_FILES)
#
# ethclist.obj is not in here because it is currently gtk+-1.2-only
diff --git a/gtk/Makefile.nmake b/gtk/Makefile.nmake
index 139f03b0f8..31f6bb1d9f 100644
--- a/gtk/Makefile.nmake
+++ b/gtk/Makefile.nmake
@@ -47,10 +47,12 @@ ethereal-tap-register.c: $(ETHEREAL_TAP_SRC) ../make-tapreg-dotc Makefile.common
clean:
rm -f $(ETHEREAL_WIN32_GTK_OBJECTS) $(ETHEREAL_TAP_OBJECTS) libui.lib $(PDB_FILE) doxygen.cfg html/*.*
- if exist html rmdir html
+ if exist html rmdir html
distclean: clean
- rm -f ethereal-tap-register.c
+
+maintainer-clean: distclean
+ rm -f $(GENERATED_FILES)
# convert doxygen.cfg.in to doxygen.cfg with stamped version info
doxygen.cfg: ..\config.nmake doxygen.cfg.in
diff --git a/help/Makefile.nmake b/help/Makefile.nmake
index 8ec24259ef..e9e29b6b75 100644
--- a/help/Makefile.nmake
+++ b/help/Makefile.nmake
@@ -10,3 +10,5 @@ include ..\config.nmake
clean:
distclean: clean
+
+maintainer-clean: distclean
diff --git a/image/Makefile.nmake b/image/Makefile.nmake
index 9c76df1a0d..cef58145a0 100644
--- a/image/Makefile.nmake
+++ b/image/Makefile.nmake
@@ -51,3 +51,5 @@ clean :
rm -f $(ALL_RC)
distclean: clean
+
+maintainer-clean: distclean
diff --git a/packaging/nsis/Makefile.nmake b/packaging/nsis/Makefile.nmake
index 643c533d73..c5f9c69409 100644
--- a/packaging/nsis/Makefile.nmake
+++ b/packaging/nsis/Makefile.nmake
@@ -137,6 +137,8 @@ clean:
distclean: clean
+maintainer-clean: distclean
+
$(DOC):
cd ../../doc
$(MAKE) -f makefile.nmake
diff --git a/plugins/Makefile.nmake b/plugins/Makefile.nmake
index 8b1f9a1790..3c1d849d4c 100644
--- a/plugins/Makefile.nmake
+++ b/plugins/Makefile.nmake
@@ -219,3 +219,45 @@ distclean: clean
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ..
+maintainer-clean: distclean
+ cd acn
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../artnet
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../asn1
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../ciscosm
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../docsis
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../enttec
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../giop
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../gryphon
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../irda
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../lwres
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../mate
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../megaco
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../mgcp
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../opsi
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../pcli
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../rdm
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../rlm
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../rtnet
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../rudp
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../v5ua
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ..
diff --git a/plugins/acn/Makefile.nmake b/plugins/acn/Makefile.nmake
index 4ceba3aed1..4412be937e 100644
--- a/plugins/acn/Makefile.nmake
+++ b/plugins/acn/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) acn.dll acn.exp acn.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/agentx/Makefile.nmake b/plugins/agentx/Makefile.nmake
index 8b6f4f37d6..0076318000 100644
--- a/plugins/agentx/Makefile.nmake
+++ b/plugins/agentx/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) agentx.dll agentx.exp agentx.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/artnet/Makefile.nmake b/plugins/artnet/Makefile.nmake
index 4e9da257d0..28128cef5f 100644
--- a/plugins/artnet/Makefile.nmake
+++ b/plugins/artnet/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) artnet.dll artnet.exp artnet.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/asn1/Makefile.nmake b/plugins/asn1/Makefile.nmake
index 73f83e74de..397bbf5e2c 100644
--- a/plugins/asn1/Makefile.nmake
+++ b/plugins/asn1/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) asn1.dll asn1.exp asn1.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/ciscosm/Makefile.nmake b/plugins/ciscosm/Makefile.nmake
index 9fa83fa1a6..f71e97c2eb 100644
--- a/plugins/ciscosm/Makefile.nmake
+++ b/plugins/ciscosm/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) ciscosm.dll ciscosm.exp ciscosm.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/docsis/Makefile.nmake b/plugins/docsis/Makefile.nmake
index 79114fe571..e565427852 100644
--- a/plugins/docsis/Makefile.nmake
+++ b/plugins/docsis/Makefile.nmake
@@ -40,3 +40,5 @@ clean:
rm -f $(OBJECTS) docsis.dll docsis.exp docsis.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/enttec/Makefile.nmake b/plugins/enttec/Makefile.nmake
index 48e8132bed..ef0c579037 100644
--- a/plugins/enttec/Makefile.nmake
+++ b/plugins/enttec/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) enttec.dll enttec.exp enttec.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/giop/Makefile.nmake b/plugins/giop/Makefile.nmake
index 1a9bbde5c7..333de09bb6 100644
--- a/plugins/giop/Makefile.nmake
+++ b/plugins/giop/Makefile.nmake
@@ -35,3 +35,5 @@ clean:
coseventcomm.dll coseventcomm.exp coseventcomm.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/gryphon/Makefile.nmake b/plugins/gryphon/Makefile.nmake
index 3ccaecd68a..7ad5c9bf70 100644
--- a/plugins/gryphon/Makefile.nmake
+++ b/plugins/gryphon/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) gryphon.dll gryphon.exp gryphon.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/irda/Makefile.nmake b/plugins/irda/Makefile.nmake
index 94fd393261..03b950c988 100644
--- a/plugins/irda/Makefile.nmake
+++ b/plugins/irda/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) irda.dll irda.exp irda.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/lwres/Makefile.nmake b/plugins/lwres/Makefile.nmake
index b89d11154a..686bc2fe48 100644
--- a/plugins/lwres/Makefile.nmake
+++ b/plugins/lwres/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) lwres.dll lwres.exp lwres.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/mate/Makefile.nmake b/plugins/mate/Makefile.nmake
index 9dbb83ddf1..b08d92c111 100644
--- a/plugins/mate/Makefile.nmake
+++ b/plugins/mate/Makefile.nmake
@@ -32,3 +32,5 @@ clean:
rm -f $(OBJECTS) mate.dll mate.exp mate.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/megaco/Makefile.nmake b/plugins/megaco/Makefile.nmake
index 19efb9dc40..356d4bfbd5 100644
--- a/plugins/megaco/Makefile.nmake
+++ b/plugins/megaco/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) megaco.dll megaco.exp megaco.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/mgcp/Makefile.nmake b/plugins/mgcp/Makefile.nmake
index ff575af6cd..f44c35cf3f 100644
--- a/plugins/mgcp/Makefile.nmake
+++ b/plugins/mgcp/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) mgcp.dll mgcp.exp mgcp.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/opsi/Makefile.nmake b/plugins/opsi/Makefile.nmake
index 9840c8e090..47f8cef88b 100644
--- a/plugins/opsi/Makefile.nmake
+++ b/plugins/opsi/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) opsi.dll opsi.exp opsi.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/pcli/Makefile.nmake b/plugins/pcli/Makefile.nmake
index c0cbc55661..3e8119e05a 100644
--- a/plugins/pcli/Makefile.nmake
+++ b/plugins/pcli/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) pcli.dll pcli.exp pcli.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/rdm/Makefile.nmake b/plugins/rdm/Makefile.nmake
index 803243cd36..541b4fae20 100644
--- a/plugins/rdm/Makefile.nmake
+++ b/plugins/rdm/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) rdm.dll rdm.exp rdm.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/rlm/Makefile.nmake b/plugins/rlm/Makefile.nmake
index a8aef8fa7d..41c22fd2ed 100644
--- a/plugins/rlm/Makefile.nmake
+++ b/plugins/rlm/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) rlm.dll rlm.exp rlm.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/rtnet/Makefile.nmake b/plugins/rtnet/Makefile.nmake
index f3bf512ede..c91e3a98a1 100644
--- a/plugins/rtnet/Makefile.nmake
+++ b/plugins/rtnet/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) rtnet.dll rtnet.exp rtnet.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/rudp/Makefile.nmake b/plugins/rudp/Makefile.nmake
index c61f235551..db99178c7d 100644
--- a/plugins/rudp/Makefile.nmake
+++ b/plugins/rudp/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) rudp.dll rudp.exp rudp.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/plugins/v5ua/Makefile.nmake b/plugins/v5ua/Makefile.nmake
index bf04762ca2..cea88f8a12 100644
--- a/plugins/v5ua/Makefile.nmake
+++ b/plugins/v5ua/Makefile.nmake
@@ -28,3 +28,5 @@ clean:
rm -f $(OBJECTS) v5ua.dll v5ua.exp v5ua.lib *.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/tools/Makefile.nmake b/tools/Makefile.nmake
index 018733d60c..fa6e388e97 100755
--- a/tools/Makefile.nmake
+++ b/tools/Makefile.nmake
@@ -15,6 +15,11 @@ distclean: clean
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ..
+maintainer-clean: distclean
+ cd lemon
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ..
+
lemon::
cd lemon
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
diff --git a/tools/lemon/Makefile.nmake b/tools/lemon/Makefile.nmake
index bbbc7244b8..51d54a6594 100644
--- a/tools/lemon/Makefile.nmake
+++ b/tools/lemon/Makefile.nmake
@@ -16,3 +16,5 @@ clean:
rm -f lemon.obj lemon.exe lemon.ilk $(PDB_FILE) lemon.pdb
distclean: clean
+
+maintainer-clean: distclean
diff --git a/wiretap/Makefile.nmake b/wiretap/Makefile.nmake
index 9b8071734d..a5191794e8 100644
--- a/wiretap/Makefile.nmake
+++ b/wiretap/Makefile.nmake
@@ -59,5 +59,16 @@ clean :
wiretap-$(WTAP_VERSION).dll \
$(PDB_FILE)
+#
+# We remove the generated files with "distclean" because one of them,
+# "ascend-scanner.c", needs different #includes for UN*X and Windows
+# (UN*X versions of Flex make it include <unistd.h>, but that's a
+# UN*X-only header), so if you're going to build from source, you need
+# to build "ascend-scanner.c" from "ascend-scanner.l" with Flex.
+# This might not be necessary for "ascend-grammar.{c,h}", but as
+# long as you need Flex, you might as well get Bison....
+#
distclean: clean
- rm -f config.h ascend-grammar.c ascend-grammar.h ascend-scanner.c
+ rm -f config.h $(GENERATED_FILES)
+
+maintainer-clean: distclean