X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0ff1f245a9ac4a6f8c44e824ff3b2647504ac461..992d6e1e2c5208ec3fded3d92691425f6b484630:/build/bakefiles/make_dist.mk?ds=sidebyside

diff --git a/build/bakefiles/make_dist.mk b/build/bakefiles/make_dist.mk
index e67ec30616..2d98d5f360 100644
--- a/build/bakefiles/make_dist.mk
+++ b/build/bakefiles/make_dist.mk
@@ -1,6 +1,5 @@
 #
 # "make dist" target implementation:
-# $Id$
 #
 
 
@@ -14,6 +13,10 @@ SRCDIR   = $(WXDIR)/src
 GENDIR   = $(WXDIR)/src/generic
 COMMDIR  = $(WXDIR)/src/common
 HTMLDIR  = $(WXDIR)/src/html
+RICHTEXTDIR = $(WXDIR)/src/richtext
+AUIDIR =   $(WXDIR)/src/aui
+PROPGRIDDIR = $(WXDIR)/src/propgrid
+STCDIR =   $(WXDIR)/src/stc
 UNIXDIR  = $(WXDIR)/src/unix
 PNGDIR   = $(WXDIR)/src/png
 JPEGDIR  = $(WXDIR)/src/jpeg
@@ -22,17 +25,19 @@ ZLIBDIR  = $(WXDIR)/src/zlib
 REGEXDIR = $(WXDIR)/src/regex
 EXPATDIR = $(WXDIR)/src/expat
 GTKDIR   = $(WXDIR)/src/gtk
+GTK1DIR  = $(WXDIR)/src/gtk1
 X11DIR   = $(WXDIR)/src/x11
 X11INC   = $(WXDIR)/include/wx/x11
 MGLDIR   = $(WXDIR)/src/mgl
 MOTIFDIR = $(WXDIR)/src/motif
+MSDOSDIR = $(WXDIR)/src/msdos
 MSWDIR   = $(WXDIR)/src/msw
 PMDIR    = $(WXDIR)/src/os2
-MACDIR   = $(WXDIR)/src/mac
+MACDIR   = $(WXDIR)/src/osx
 COCOADIR = $(WXDIR)/src/cocoa
-ODBCDIR  = $(WXDIR)/src/iodbc
 FTDIR    = $(WXDIR)/src/freetype
 INCDIR   = $(WXDIR)/include
+IFACEDIR = $(WXDIR)/interface
 SAMPDIR  = $(WXDIR)/samples
 DEMODIR  = $(WXDIR)/demos
 UTILSDIR = $(WXDIR)/utils
@@ -59,7 +64,12 @@ WXDEMOS_BZIP=wx$(TOOLKIT)-demos-$(WX_VERSION).tar.bz2
 
 DISTDIRNAME=@DISTDIR@-$(WX_VERSION)
 DISTDIR=./_dist_dir/$(DISTDIRNAME)
+BASEDISTDIR=./_dist_dir/wxBase-$(WX_VERSION)
 
+########################## Tools ###############################
+
+CP_PR = cp -pR
+CP_P = cp -p
 
 ########################## make dist rules ###############################
 
@@ -68,975 +78,708 @@ DISTDIR=./_dist_dir/$(DISTDIRNAME)
 ALL_DIST: distrib_clean
 	mkdir _dist_dir
 	mkdir $(DISTDIR)
-	cp $(WXDIR)/wxwin.m4 $(DISTDIR)
-	cp $(WXDIR)/aclocal.m4 $(DISTDIR)
-	cp $(WXDIR)/config.sub $(DISTDIR)
-	cp $(WXDIR)/config.guess $(DISTDIR)
-	cp $(WXDIR)/install-sh $(DISTDIR)
-	cp $(WXDIR)/mkinstalldirs $(DISTDIR)
-	cp $(WXDIR)/wx-config.in $(DISTDIR)
-	cp $(WXDIR)/version-script.in $(DISTDIR)
-	cp $(WXDIR)/setup.h.in $(DISTDIR)
-	cp $(WXDIR)/setup.h_vms $(DISTDIR)
-	cp $(WXDIR)/descrip.mms $(DISTDIR)
-	cp $(WXDIR)/Makefile.in $(DISTDIR)
-	cp $(WXDIR)/wxBase.spec $(DISTDIR)
-	cp $(DOCDIR)/lgpl.txt $(DISTDIR)/COPYING.LIB
-	cp $(DOCDIR)/licence.txt $(DISTDIR)/LICENCE.txt
-	cp $(DOCDIR)/changes.txt $(DISTDIR)/CHANGES.txt
+	$(CP_P) $(WXDIR)/configure.in $(DISTDIR)
+	$(CP_P) $(WXDIR)/configure $(DISTDIR)
+	$(CP_P) $(WXDIR)/autoconf_inc.m4 $(DISTDIR)
+	$(CP_P) $(WXDIR)/wxwin.m4 $(DISTDIR)
+	$(CP_P) $(WXDIR)/acinclude.m4 $(DISTDIR)
+	$(CP_P) $(WXDIR)/aclocal.m4 $(DISTDIR)
+	$(CP_P) $(WXDIR)/config.sub $(DISTDIR)
+	$(CP_P) $(WXDIR)/config.guess $(DISTDIR)
+	$(CP_P) $(WXDIR)/install-sh $(DISTDIR)
+	$(CP_P) $(WXDIR)/mkinstalldirs $(DISTDIR)
+	$(CP_P) $(WXDIR)/wx-config.in $(DISTDIR)
+	$(CP_P) $(WXDIR)/wx-config-inplace.in $(DISTDIR)
+	$(CP_P) $(WXDIR)/version-script.in $(DISTDIR)
+	$(CP_P) $(WXDIR)/setup.h.in $(DISTDIR)
+	$(CP_P) $(WXDIR)/setup.h_vms $(DISTDIR)
+	$(CP_P) $(WXDIR)/descrip.mms $(DISTDIR)
+	$(CP_P) $(WXDIR)/Makefile.in $(DISTDIR)
+	$(CP_P) $(WXDIR)/wxBase.spec $(DISTDIR)
+	$(CP_P) $(DOCDIR)/lgpl.txt $(DISTDIR)/COPYING.LIB
+	$(CP_P) $(DOCDIR)/licence.txt $(DISTDIR)/LICENCE.txt
+	$(CP_P) $(DOCDIR)/changes.txt $(DISTDIR)/CHANGES.txt
 	mkdir $(DISTDIR)/lib
-	cp $(WXDIR)/lib/vms.opt $(DISTDIR)/lib
-	cp $(WXDIR)/lib/vms_gtk.opt $(DISTDIR)/lib
+	$(CP_P) $(WXDIR)/lib/vms.opt $(DISTDIR)/lib
+	$(CP_P) $(WXDIR)/lib/vms_gtk.opt $(DISTDIR)/lib
 	mkdir $(DISTDIR)/src
 	# temp hack for common/execcmn.cpp: it's not supported by tmake
 	# yet (it's a header-like file but in src/common directory and it
 	# shouldn't be distributed...)
 	mkdir $(DISTDIR)/src/common
-	cp $(SRCDIR)/common/execcmn.cpp $(DISTDIR)/src/common
+	$(CP_P) $(SRCDIR)/common/execcmn.cpp $(DISTDIR)/src/common
 	mkdir $(DISTDIR)/src/xml
-	cp $(SRCDIR)/xml/*.cpp $(DISTDIR)/src/xml
+	$(CP_P) $(SRCDIR)/xml/*.cpp $(DISTDIR)/src/xml
 	mkdir $(DISTDIR)/src/zlib
-	cp $(ZLIBDIR)/*.h $(DISTDIR)/src/zlib
-	cp $(ZLIBDIR)/*.c $(DISTDIR)/src/zlib
-	cp $(ZLIBDIR)/README $(DISTDIR)/src/zlib
-	cp $(ZLIBDIR)/*.mms $(DISTDIR)/src/zlib
+	$(CP_P) $(ZLIBDIR)/*.h $(DISTDIR)/src/zlib
+	$(CP_P) $(ZLIBDIR)/*.c $(DISTDIR)/src/zlib
+	$(CP_P) $(ZLIBDIR)/README $(DISTDIR)/src/zlib
+	#$(CP_P) $(ZLIBDIR)/*.mms $(DISTDIR)/src/zlib
 	mkdir $(DISTDIR)/src/regex
-	cp $(REGEXDIR)/*.h $(DISTDIR)/src/regex
-	cp $(REGEXDIR)/*.ih $(DISTDIR)/src/regex
-	cp $(REGEXDIR)/*.c $(DISTDIR)/src/regex
-	cp $(REGEXDIR)/Makefile $(DISTDIR)/src/regex
-	cp $(REGEXDIR)/makefile.* $(DISTDIR)/src/regex
-	cp $(REGEXDIR)/COPYRIGHT $(DISTDIR)/src/regex
-	cp $(REGEXDIR)/README $(DISTDIR)/src/regex
-	cp $(REGEXDIR)/WHATSNEW $(DISTDIR)/src/regex
-	cp $(REGEXDIR)/mkh $(DISTDIR)/src/regex
-	cp $(REGEXDIR)/tests $(DISTDIR)/src/regex
-	cp -Rf $(EXPATDIR) $(DISTDIR)/src
-	(cd $(DISTDIR)/src/expat ; rm -rf `find -name CVS`)
-	mkdir $(DISTDIR)/src/iodbc
-	cp $(ODBCDIR)/*.h $(DISTDIR)/src/iodbc
-	cp $(ODBCDIR)/*.c $(DISTDIR)/src/iodbc
-	cp $(ODBCDIR)/*.ci $(DISTDIR)/src/iodbc
-	cp $(ODBCDIR)/*.exp $(DISTDIR)/src/iodbc
-	cp $(ODBCDIR)/README $(DISTDIR)/src/iodbc
-	cp $(ODBCDIR)/NEWS $(DISTDIR)/src/iodbc
-	cp $(ODBCDIR)/Changes.log $(DISTDIR)/src/iodbc
+	$(CP_P) $(REGEXDIR)/*.h $(DISTDIR)/src/regex
+	$(CP_P) $(REGEXDIR)/*.c $(DISTDIR)/src/regex
+	$(CP_P) $(REGEXDIR)/COPYRIGHT $(DISTDIR)/src/regex
+	$(CP_P) $(REGEXDIR)/README $(DISTDIR)/src/regex
+	$(CP_PR) $(EXPATDIR) $(DISTDIR)/src/expat
+	#(cd $(DISTDIR)/src/expat ; rm -rf `find -name CVS`)
 	# copy some files from include/ that are not installed:
 	mkdir $(DISTDIR)/include
 	mkdir $(DISTDIR)/include/wx
-	cp $(INCDIR)/wx/fmappriv.h $(DISTDIR)/include/wx
+	mkdir $(DISTDIR)/include/wx/private
+	$(CP_P) $(INCDIR)/wx/fmappriv.h $(DISTDIR)/include/wx
+	$(CP_P) $(INCDIR)/wx/private/*.h $(DISTDIR)/include/wx/private
+	# copy wxpresets
+	mkdir $(DISTDIR)/build
+	mkdir $(DISTDIR)/build/bakefiles
+	$(CP_P) $(WXDIR)/build/bakefiles/README $(DISTDIR)/build/bakefiles
+	$(CP_P) $(WXDIR)/build/bakefiles/*.* $(DISTDIR)/build/bakefiles
+	mkdir $(DISTDIR)/build/bakefiles/wxpresets
+	mkdir $(DISTDIR)/build/bakefiles/wxpresets/presets
+	$(CP_P) $(WXDIR)/build/bakefiles/wxpresets/*.txt $(DISTDIR)/build/bakefiles/wxpresets
+	$(CP_P) $(WXDIR)/build/bakefiles/wxpresets/presets/*.bkl $(DISTDIR)/build/bakefiles/wxpresets/presets
+	mkdir $(DISTDIR)/build/bakefiles/wxpresets/sample
+	$(CP_P) $(WXDIR)/build/bakefiles/wxpresets/sample/minimal* $(DISTDIR)/build/bakefiles/wxpresets/sample
+	$(CP_P) $(WXDIR)/build/bakefiles/wxpresets/sample/config* $(DISTDIR)/build/bakefiles/wxpresets/sample
+	mkdir $(DISTDIR)/build/bakefiles/wxpresets/libsample
+	$(CP_P) $(WXDIR)/build/bakefiles/wxpresets/libsample/*.* $(DISTDIR)/build/bakefiles/wxpresets/libsample
+	mkdir $(DISTDIR)/build/aclocal
+	$(CP_P) $(WXDIR)/build/aclocal/*.m4 $(DISTDIR)/build/aclocal
 
 # this target is the common part of distribution script for all GUI toolkits,
 # but is not used when building wxBase distribution
 ALL_GUI_DIST: ALL_DIST
-	cp $(WXDIR)/configure.in $(DISTDIR)
-	cp $(WXDIR)/configure $(DISTDIR)
-	cp $(DOCDIR)/readme.txt $(DISTDIR)/README.txt
-	cp $(DOCDIR)/$(TOOLKITDIR)/install.txt $(DISTDIR)/INSTALL.txt
+	$(CP_P) $(DOCDIR)/readme.txt $(DISTDIR)/README.txt
+	$(CP_P) $(DOCDIR)/$(TOOLKITDIR)/install.txt $(DISTDIR)/INSTALL.txt
 	if test -f $(DOCDIR)/$(TOOLKITDIR)/changes.txt ; then \
-	  cp $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES-$(TOOLKIT).txt ; fi
-	cp $(DOCDIR)/$(TOOLKITDIR)/readme.txt $(DISTDIR)/README-$(TOOLKIT).txt
+	  $(CP_P) $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES-$(TOOLKIT).txt ; fi
+	$(CP_P) $(DOCDIR)/$(TOOLKITDIR)/readme.txt $(DISTDIR)/README-$(TOOLKIT).txt
 	if test -f $(DOCDIR)/$(TOOLKITDIR)/todo.txt ; then \
-	  cp $(DOCDIR)/$(TOOLKITDIR)/todo.txt $(DISTDIR)/TODO.txt ; fi
+	  $(CP_P) $(DOCDIR)/$(TOOLKITDIR)/todo.txt $(DISTDIR)/TODO.txt ; fi
 	mkdir $(DISTDIR)/include/wx/$(TOOLKITDIR)
+	if test -d $(INCDIR)/wx/$(TOOLKITDIR)/private; then \
+	    mkdir $(DISTDIR)/include/wx/$(TOOLKITDIR)/private && \
+	    $(CP_P) $(INCDIR)/wx/$(TOOLKITDIR)/private/*.h $(DISTDIR)/include/wx/$(TOOLKITDIR)/private; \
+	fi
+	mkdir $(DISTDIR)/include/wx/meta
 	mkdir $(DISTDIR)/include/wx/generic
 	mkdir $(DISTDIR)/include/wx/html
+	mkdir $(DISTDIR)/include/wx/richtext
+	mkdir $(DISTDIR)/include/wx/aui
+	mkdir $(DISTDIR)/include/wx/propgrid
+	mkdir $(DISTDIR)/include/wx/stc
 	mkdir $(DISTDIR)/include/wx/protocol
 	mkdir $(DISTDIR)/include/wx/unix
+	mkdir $(DISTDIR)/include/wx/unix/private
 	mkdir $(DISTDIR)/include/wx/xml
-	cp $(INCDIR)/wx/*.h $(DISTDIR)/include/wx
-	cp $(INCDIR)/wx/*.inl $(DISTDIR)/include/wx
-	cp $(INCDIR)/wx/*.cpp $(DISTDIR)/include/wx
-	cp $(INCDIR)/wx/generic/*.h $(DISTDIR)/include/wx/generic
-	cp $(INCDIR)/wx/html/*.h $(DISTDIR)/include/wx/html
-	cp $(INCDIR)/wx/unix/*.h $(DISTDIR)/include/wx/unix
-	cp $(INCDIR)/wx/xml/*.h $(DISTDIR)/include/wx/xml
-	cp $(INCDIR)/wx/protocol/*.h $(DISTDIR)/include/wx/protocol
+	mkdir $(DISTDIR)/include/wx/xrc
+	$(CP_P) $(INCDIR)/wx/*.h $(DISTDIR)/include/wx
+	$(CP_P) $(INCDIR)/wx/*.cpp $(DISTDIR)/include/wx
+	$(CP_P) $(INCDIR)/wx/meta/*.h $(DISTDIR)/include/wx/meta
+	$(CP_P) $(INCDIR)/wx/generic/*.h $(DISTDIR)/include/wx/generic
+	$(CP_P) $(INCDIR)/wx/html/*.h $(DISTDIR)/include/wx/html
+	$(CP_P) $(INCDIR)/wx/richtext/*.h $(DISTDIR)/include/wx/richtext
+	$(CP_P) $(INCDIR)/wx/aui/*.h $(DISTDIR)/include/wx/aui
+	$(CP_P) $(INCDIR)/wx/propgrid/*.h $(DISTDIR)/include/wx/propgrid
+	$(CP_P) $(INCDIR)/wx/stc/*.h $(DISTDIR)/include/wx/stc
+	$(CP_P) $(INCDIR)/wx/unix/*.h $(DISTDIR)/include/wx/unix
+	$(CP_P) $(INCDIR)/wx/unix/private/*.h $(DISTDIR)/include/wx/unix/private
+	$(CP_P) $(INCDIR)/wx/xml/*.h $(DISTDIR)/include/wx/xml
+	$(CP_P) $(INCDIR)/wx/xrc/*.h $(DISTDIR)/include/wx/xrc
+	$(CP_P) $(INCDIR)/wx/protocol/*.h $(DISTDIR)/include/wx/protocol
+
 	mkdir $(DISTDIR)/art
 	mkdir $(DISTDIR)/art/gtk
 	mkdir $(DISTDIR)/art/motif
-	cp $(WXDIR)/art/*.xpm $(DISTDIR)/art
-	cp $(WXDIR)/art/gtk/*.xpm $(DISTDIR)/art/gtk
-	cp $(WXDIR)/art/motif/*.xpm $(DISTDIR)/art/motif
+	$(CP_P) $(WXDIR)/art/*.xpm $(DISTDIR)/art
+	$(CP_P) $(WXDIR)/art/gtk/*.xpm $(DISTDIR)/art/gtk
+	$(CP_P) $(WXDIR)/art/motif/*.xpm $(DISTDIR)/art/motif
+
+	mkdir $(DISTDIR)/src/$(TOOLKITDIR)
+	$(CP_P) $(COMMDIR)/*.cpp $(DISTDIR)/src/common
+	$(CP_P) $(COMMDIR)/*.c $(DISTDIR)/src/common
+	$(CP_P) $(COMMDIR)/*.inc $(DISTDIR)/src/common
+	$(CP_P) $(COMMDIR)/*.mms $(DISTDIR)/src/common
+
+	mkdir $(DISTDIR)/src/xrc
+	$(CP_P) $(SRCDIR)/xrc/*.cpp $(DISTDIR)/src/xrc
+
+	mkdir $(DISTDIR)/src/unix
+	$(CP_P) $(UNIXDIR)/*.cpp $(DISTDIR)/src/unix
+	$(CP_P) $(UNIXDIR)/*.mms $(DISTDIR)/src/unix
+
 	mkdir $(DISTDIR)/src/generic
+	$(CP_P) $(GENDIR)/*.cpp $(DISTDIR)/src/generic
+	$(CP_P) $(GENDIR)/*.mms $(DISTDIR)/src/generic
+
 	mkdir $(DISTDIR)/src/html
-	mkdir $(DISTDIR)/src/$(TOOLKITDIR)
+	$(CP_P) $(HTMLDIR)/*.cpp $(DISTDIR)/src/html
+
+	mkdir $(DISTDIR)/src/richtext
+	$(CP_P) $(RICHTEXTDIR)/*.cpp $(DISTDIR)/src/richtext
+
+	mkdir $(DISTDIR)/src/aui
+	$(CP_P) $(AUIDIR)/*.cpp $(DISTDIR)/src/aui
+
+	mkdir $(DISTDIR)/src/propgrid
+	$(CP_P) $(PROPGRIDDIR)/*.cpp $(DISTDIR)/src/propgrid
+
+	mkdir $(DISTDIR)/src/stc
+	mkdir $(DISTDIR)/src/stc/scintilla
+	mkdir $(DISTDIR)/src/stc/scintilla/src
+	mkdir $(DISTDIR)/src/stc/scintilla/include
+	$(CP_P) $(STCDIR)/*.* $(DISTDIR)/src/stc
+	$(CP_P) $(STCDIR)/scintilla/src/* $(DISTDIR)/src/stc/scintilla/src
+	$(CP_P) $(STCDIR)/scintilla/include/* $(DISTDIR)/src/stc/scintilla/include
+
 	mkdir $(DISTDIR)/src/png
+	$(CP_PR) $(PNGDIR)/* $(DISTDIR)/src/png
+
 	mkdir $(DISTDIR)/src/jpeg
+	$(CP_P) $(JPEGDIR)/*.h $(DISTDIR)/src/jpeg
+	$(CP_P) $(JPEGDIR)/*.c $(DISTDIR)/src/jpeg
+	$(CP_P) $(JPEGDIR)/*.vc $(DISTDIR)/src/jpeg
+	$(CP_P) $(JPEGDIR)/makefile.* $(DISTDIR)/src/jpeg
+	$(CP_P) $(JPEGDIR)/README $(DISTDIR)/src/jpeg
+
 	mkdir $(DISTDIR)/src/tiff
-	mkdir $(DISTDIR)/src/unix
-	cp $(COMMDIR)/*.cpp $(DISTDIR)/src/common
-	cp $(COMMDIR)/*.c $(DISTDIR)/src/common
-	cp $(COMMDIR)/*.inc $(DISTDIR)/src/common
-	cp $(COMMDIR)/*.h $(DISTDIR)/src/common
-	cp $(COMMDIR)/*.mms $(DISTDIR)/src/common
-	cp $(UNIXDIR)/*.c $(DISTDIR)/src/unix
-	cp $(UNIXDIR)/*.cpp $(DISTDIR)/src/unix
-	cp $(UNIXDIR)/*.mms $(DISTDIR)/src/unix
-	cp $(GENDIR)/*.cpp $(DISTDIR)/src/generic
-	cp $(GENDIR)/*.mms $(DISTDIR)/src/generic
-	cp $(HTMLDIR)/*.cpp $(DISTDIR)/src/html
-	cp $(PNGDIR)/*.h $(DISTDIR)/src/png
-	cp $(PNGDIR)/*.c $(DISTDIR)/src/png
-	cp $(PNGDIR)/README $(DISTDIR)/src/png
-	cp $(JPEGDIR)/*.h $(DISTDIR)/src/jpeg
-	cp $(JPEGDIR)/*.c $(DISTDIR)/src/jpeg
-	cp $(JPEGDIR)/README $(DISTDIR)/src/jpeg
-	cp $(TIFFDIR)/*.h $(DISTDIR)/src/tiff
-	cp $(TIFFDIR)/*.c $(DISTDIR)/src/tiff
-	cp $(TIFFDIR)/README $(DISTDIR)/src/tiff
-
-BASE_DIST: ALL_DIST
+	mkdir $(DISTDIR)/src/tiff/config
+	mkdir $(DISTDIR)/src/tiff/contrib
+	mkdir $(DISTDIR)/src/tiff/port
+	mkdir $(DISTDIR)/src/tiff/html
+	mkdir $(DISTDIR)/src/tiff/man
+	mkdir $(DISTDIR)/src/tiff/libtiff
+	mkdir $(DISTDIR)/src/tiff/tools
+	mkdir $(DISTDIR)/src/tiff/test
+	mkdir $(DISTDIR)/src/tiff/m4
+	$(CP_P) $(TIFFDIR)/config/* $(DISTDIR)/src/tiff/config
+	$(CP_PR) $(TIFFDIR)/contrib/* $(DISTDIR)/src/tiff/contrib
+	$(CP_P) $(TIFFDIR)/port/* $(DISTDIR)/src/tiff/port
+	$(CP_PR) $(TIFFDIR)/html/* $(DISTDIR)/src/tiff/html
+	$(CP_P) $(TIFFDIR)/man/* $(DISTDIR)/src/tiff/man
+	$(CP_P) $(TIFFDIR)/tools/* $(DISTDIR)/src/tiff/tools
+	$(CP_P) $(TIFFDIR)/test/* $(DISTDIR)/src/tiff/test
+	$(CP_P) $(TIFFDIR)/libtiff/* $(DISTDIR)/src/tiff/libtiff
+	$(CP_P) $(TIFFDIR)/m4/* $(DISTDIR)/src/tiff/m4
+	$(CP_P) $(TIFFDIR)/README $(DISTDIR)/src/tiff
+	$(CP_P) $(TIFFDIR)/VERSION $(DISTDIR)/src/tiff
+	$(CP_P) $(TIFFDIR)/configure* $(DISTDIR)/src/tiff
+	$(CP_P) $(TIFFDIR)/aclocal.m4 $(DISTDIR)/src/tiff
+	$(CP_P) $(TIFFDIR)/autogen.sh $(DISTDIR)/src/tiff
+	$(CP_P) $(TIFFDIR)/Makefile* $(DISTDIR)/src/tiff
+
+BASE_DIST: ALL_DIST INTL_DIST
 	# make --disable-gui the default
+	rm $(DISTDIR)/configure.in
 	sed 's/DEFAULT_wxUSE_GUI=yes/DEFAULT_wxUSE_GUI=no/' \
 		$(WXDIR)/configure.in > $(DISTDIR)/configure.in
+	rm $(DISTDIR)/configure
 	sed 's/DEFAULT_wxUSE_GUI=yes/DEFAULT_wxUSE_GUI=no/' \
 		$(WXDIR)/configure > $(DISTDIR)/configure
 	chmod +x $(DISTDIR)/configure
 	mkdir $(DISTDIR)/include/wx/protocol
 	mkdir $(DISTDIR)/include/wx/unix
 	mkdir $(DISTDIR)/include/wx/xml
+	mkdir $(DISTDIR)/include/wx/msdos
 	mkdir $(DISTDIR)/include/wx/msw
+	mkdir $(DISTDIR)/include/wx/html
+	mkdir $(DISTDIR)/include/wx/richtext
+	mkdir $(DISTDIR)/include/wx/aui
+	mkdir $(DISTDIR)/include/wx/propgrid
+	mkdir $(DISTDIR)/include/wx/stc
+	mkdir $(DISTDIR)/include/wx/osx
+	mkdir $(DISTDIR)/include/wx/osx/carbon
+	mkdir $(DISTDIR)/include/wx/osx/core
+	mkdir $(DISTDIR)/include/wx/os2
+	mkdir $(DISTDIR)/include/wx/palmos
 	mkdir $(DISTDIR)/src/unix
+	mkdir $(DISTDIR)/src/osx
+	mkdir $(DISTDIR)/src/osx/core
+	mkdir $(DISTDIR)/src/osx/carbon
+	mkdir $(DISTDIR)/src/msdos
 	mkdir $(DISTDIR)/src/msw
-	cp $(DOCDIR)/changes.txt $(DISTDIR)/CHANGES.txt
-	cp $(DOCDIR)/base/readme.txt $(DISTDIR)/README.txt
-	cp $(WXDIR)/src/common/*.inc $(DISTDIR)/src/common
-	cp $(WXDIR)/src/common/base.rc $(DISTDIR)/src/common
-	cp $(WXDIR)/src/common/unzip.h $(DISTDIR)/src/common
-	list='$(ALL_BASE_HEADERS)'; for p in $$list; do \
-	  cp $(WXDIR)/include/$$p $(DISTDIR)/include/$$p; \
+	mkdir $(DISTDIR)/src/os2
+	mkdir $(DISTDIR)/src/palmos
+	$(CP_P) $(DOCDIR)/base/readme.txt $(DISTDIR)/README.txt
+	$(CP_P) $(WXDIR)/src/common/*.inc $(DISTDIR)/src/common
+	list='$(ALL_PORTS_BASE_HEADERS)'; for p in $$list; do \
+	  $(CP_P) $(WXDIR)/include/$$p $(DISTDIR)/include/$$p; \
 	done
 	list='$(ALL_BASE_SOURCES)'; for p in $$list; do \
-	  cp $(WXDIR)/$$p $(DISTDIR)/$$p; \
+	  $(CP_P) $(WXDIR)/$$p $(DISTDIR)/$$p; \
 	done
 
 	mkdir $(DISTDIR)/samples
-	cp $(SAMPDIR)/Makefile.in $(DISTDIR)/samples
+	$(CP_P) $(SAMPDIR)/Makefile.in $(DISTDIR)/samples
+	$(CP_P) $(SAMPDIR)/makefile.* $(DISTDIR)/samples
+	$(CP_P) $(SAMPDIR)/Info.plist $(DISTDIR)/samples
+	$(CP_P) $(SAMPDIR)/sample.* $(DISTDIR)/samples
+	$(CP_P) $(SAMPDIR)/samples.* $(DISTDIR)/samples
 
 	mkdir $(DISTDIR)/samples/console
-	cp $(SAMPDIR)/console/Makefile.in $(DISTDIR)/samples/console
-	cp $(SAMPDIR)/console/makefile.unx $(DISTDIR)/samples/console
-	cp $(SAMPDIR)/console/console.cpp $(DISTDIR)/samples/console
-	cp $(SAMPDIR)/console/console.dsp $(DISTDIR)/samples/console
-	cp $(SAMPDIR)/console/testdata.fc $(DISTDIR)/samples/console
-
-GTK_DIST: ALL_GUI_DIST
-	cp $(WXDIR)/wxGTK.spec $(DISTDIR)
-	cp $(INCDIR)/wx/gtk/*.h $(DISTDIR)/include/wx/gtk
-	cp $(GTKDIR)/*.cpp $(DISTDIR)/src/gtk
-	cp $(GTKDIR)/*.c $(DISTDIR)/src/gtk
-	cp $(GTKDIR)/*.xbm $(DISTDIR)/src/gtk
-	cp $(GTKDIR)/*.mms $(DISTDIR)/src/gtk
-	mkdir $(DISTDIR)/contrib
-	cp -R $(WXDIR)/contrib $(DISTDIR)
-
-X11_DIST: ALL_GUI_DIST UNIV_DIST
-	cp $(WXDIR)/wxX11.spec $(DISTDIR)
-	cp $(INCDIR)/wx/x11/*.h $(DISTDIR)/include/wx/x11
-	cp $(X11DIR)/*.cpp $(DISTDIR)/src/x11
-	cp $(X11DIR)/*.c $(DISTDIR)/src/x11
-	cp $(X11DIR)/*.xbm $(DISTDIR)/src/x11
-	mkdir $(DISTDIR)/contrib
-	cp -R $(WXDIR)/contrib $(DISTDIR)
+	$(CP_P) $(SAMPDIR)/console/Makefile.in $(DISTDIR)/samples/console
+	$(CP_P) $(SAMPDIR)/console/makefile.unx $(DISTDIR)/samples/console
+	$(CP_P) $(SAMPDIR)/console/console.cpp $(DISTDIR)/samples/console
+	$(CP_P) $(SAMPDIR)/console/console.dsp $(DISTDIR)/samples/console
+	$(CP_P) $(SAMPDIR)/console/testdata.fc $(DISTDIR)/samples/console
+
+	mv $(DISTDIR) $(BASEDISTDIR)
+
+GTK_DIST: UNIV_DIST
+	$(CP_P) $(WXDIR)/wxGTK.spec $(DISTDIR)
+	$(CP_P) $(INCDIR)/wx/gtk/*.h $(DISTDIR)/include/wx/gtk
+	$(CP_P) $(GTKDIR)/*.h $(DISTDIR)/src/gtk
+	$(CP_P) $(GTKDIR)/*.cpp $(DISTDIR)/src/gtk
+	$(CP_P) $(GTKDIR)/*.c $(DISTDIR)/src/gtk
+	$(CP_P) $(GTKDIR)/*.xbm $(DISTDIR)/src/gtk
+	$(CP_P) $(GTKDIR)/*.mms $(DISTDIR)/src/gtk
+	mkdir $(DISTDIR)/include/wx/gtk1
+	$(CP_P) $(INCDIR)/wx/gtk1/*.h $(DISTDIR)/include/wx/gtk1
+	mkdir $(DISTDIR)/src/gtk1
+	$(CP_P) $(GTK1DIR)/*.h $(DISTDIR)/src/gtk1
+	$(CP_P) $(GTK1DIR)/*.cpp $(DISTDIR)/src/gtk1
+	$(CP_P) $(GTK1DIR)/*.c $(DISTDIR)/src/gtk1
+	$(CP_P) $(GTK1DIR)/*.xbm $(DISTDIR)/src/gtk1
+	$(CP_P) $(GTK1DIR)/*.mms $(DISTDIR)/src/gtk1
+
+	mkdir $(DISTDIR)/include/wx/gtk/gnome
+	mkdir $(DISTDIR)/src/gtk/gnome
+	$(CP_P) $(INCDIR)/wx/gtk/gnome/*.h $(DISTDIR)/include/wx/gtk/gnome
+	$(CP_P) $(GTKDIR)/gnome/*.cpp $(DISTDIR)/src/gtk/gnome
+
+	mkdir $(DISTDIR)/include/wx/gtk/hildon
+	mkdir $(DISTDIR)/src/gtk/hildon
+	$(CP_P) $(INCDIR)/wx/gtk/hildon/*.h $(DISTDIR)/include/wx/gtk/hildon
+	$(CP_P) $(GTKDIR)/hildon/*.cpp $(DISTDIR)/src/gtk/hildon
+
+	mkdir $(DISTDIR)/src/osx
+	mkdir $(DISTDIR)/src/osx/core
+	$(CP_P) $(WXDIR)/src/osx/core/*.cpp $(DISTDIR)/src/osx/core
+	mkdir $(DISTDIR)/include/wx/osx
+	mkdir $(DISTDIR)/include/wx/osx/core
+	$(CP_P) $(WXDIR)/include/wx/osx/core/*.h $(DISTDIR)/include/wx/osx/core
+
+X11_DIST: UNIV_DIST
+	$(CP_P) $(WXDIR)/wxX11.spec $(DISTDIR)
+	$(CP_P) $(INCDIR)/wx/x11/*.h $(DISTDIR)/include/wx/x11
+	mkdir $(DISTDIR)/include/wx/gtk/private
+	$(CP_P) $(INCDIR)/wx/gtk/private/string.h $(DISTDIR)/include/wx/gtk/private
+	$(CP_P) $(X11DIR)/*.cpp $(DISTDIR)/src/x11
+	$(CP_P) $(X11DIR)/*.c $(DISTDIR)/src/x11
+	$(CP_P) $(X11DIR)/*.xbm $(DISTDIR)/src/x11
+	mkdir $(DISTDIR)/src/osx
+	mkdir $(DISTDIR)/src/osx/core
+	$(CP_P) $(WXDIR)/src/osx/core/*.cpp $(DISTDIR)/src/osx/core
+	mkdir $(DISTDIR)/include/wx/osx
+	mkdir $(DISTDIR)/include/wx/osx/core
+	$(CP_P) $(WXDIR)/include/wx/osx/core/*.h $(DISTDIR)/include/wx/osx/core
 
 MOTIF_DIST: ALL_GUI_DIST
-	cp $(WXDIR)/wxMotif.spec $(DISTDIR)
-	cp $(INCDIR)/wx/motif/*.h $(DISTDIR)/include/wx/motif
-	cp $(MOTIFDIR)/*.cpp $(DISTDIR)/src/motif
-	cp $(MOTIFDIR)/*.c $(DISTDIR)/src/motif
-	cp $(MOTIFDIR)/*.xbm $(DISTDIR)/src/motif
+	$(CP_P) $(WXDIR)/wxMotif.spec $(DISTDIR)
+	$(CP_P) $(INCDIR)/wx/motif/*.h $(DISTDIR)/include/wx/motif
+	$(CP_P) $(MOTIFDIR)/*.cpp $(DISTDIR)/src/motif
+	$(CP_P) $(MOTIFDIR)/*.xbm $(DISTDIR)/src/motif
 	mkdir $(DISTDIR)/src/motif/xmcombo
-	cp $(MOTIFDIR)/xmcombo/*.c $(DISTDIR)/src/motif/xmcombo
-	cp $(MOTIFDIR)/xmcombo/*.h $(DISTDIR)/src/motif/xmcombo
-	cp $(MOTIFDIR)/xmcombo/copying.txt $(DISTDIR)/src/motif/xmcombo
+	$(CP_P) $(MOTIFDIR)/xmcombo/*.c $(DISTDIR)/src/motif/xmcombo
+	$(CP_P) $(MOTIFDIR)/xmcombo/*.h $(DISTDIR)/src/motif/xmcombo
+	$(CP_P) $(MOTIFDIR)/xmcombo/copying.txt $(DISTDIR)/src/motif/xmcombo
 	mkdir $(DISTDIR)/src/x11
 	mkdir $(DISTDIR)/include/wx/x11
-	cp $(X11DIR)/pen.cpp $(X11DIR)/brush.cpp $(X11DIR)/utilsx.cpp \
-		$(X11DIR)/bitmap.cpp $(X11DIR)/region.cpp \
+	$(CP_P) $(X11DIR)/pen.cpp $(X11DIR)/brush.cpp $(X11DIR)/utilsx.cpp \
+		$(X11DIR)/bitmap.cpp $(X11DIR)/glcanvas.cpp $(X11DIR)/region.cpp \
 		$(DISTDIR)/src/x11
-	cp $(X11INC)/pen.h $(X11INC)/brush.h $(X11INC)/privx.h \
-		$(X11INC)/bitmap.h $(X11INC)/private.h $(X11INC)/region.h \
+	$(CP_P) $(X11INC)/pen.h $(X11INC)/brush.h $(X11INC)/privx.h \
+		$(X11INC)/bitmap.h $(X11INC)/glcanvas.h $(X11INC)/private.h $(X11INC)/region.h \
 		$(DISTDIR)/include/wx/x11
-	mkdir $(DISTDIR)/contrib
-	cp -R $(WXDIR)/contrib $(DISTDIR)
-
-MACX_DIST: ALL_GUI_DIST
-	cp $(INCDIR)/*.* $(DISTDIR)/include
-	cp $(INCDIR)/wx/mac/*.h $(DISTDIR)/include/wx/mac
-	cp $(MACDIR)/*.cpp $(DISTDIR)/src/mac
-	cp $(MACDIR)/*.c $(DISTDIR)/src/mac
-	cp $(MACDIR)/*.h $(DISTDIR)/src/mac
-	cp $(MACDIR)/*.r $(DISTDIR)/src/mac
-	mkdir $(DISTDIR)/src/mac/morefile
-	cp $(MACDIR)/morefile/*.h $(DISTDIR)/src/mac/morefile
-	cp $(MACDIR)/morefile/*.c $(DISTDIR)/src/mac/morefile
-	mkdir $(DISTDIR)/src/mac/macsock
-	cp $(MACDIR)/macsock/*.lib $(DISTDIR)/src/mac/macsock
-	mkdir $(DISTDIR)/contrib
-	cp -R $(WXDIR)/contrib $(DISTDIR)
-
-# TODO: Distribute some files
-COCOA_DIST: ALL_GUI_DIST
-	cp $(COCOADIR)/*.mm $(DISTDIR)/src/cocoa
 
-MSW_DIST: ALL_GUI_DIST
-	cp $(WXDIR)/wxWINE.spec $(DISTDIR)
-	mkdir $(DISTDIR)/include/wx/msw/ctl3d
-	mkdir $(DISTDIR)/include/wx/msw/gnuwin32
-	mkdir $(DISTDIR)/include/wx/msw/gnuwin32/gl
+OSX_CARBON_DIST: ALL_GUI_DIST
+	$(CP_P) $(INCDIR)/*.* $(DISTDIR)/include
+	mkdir $(DISTDIR)/include/wx/osx/carbon
+	mkdir $(DISTDIR)/include/wx/osx/carbon/private
+	mkdir $(DISTDIR)/include/wx/osx/cocoa
+	mkdir $(DISTDIR)/include/wx/osx/iphone
+	$(CP_P) $(INCDIR)/wx/osx/*.h $(DISTDIR)/include/wx/osx
+	$(CP_P) $(INCDIR)/wx/osx/carbon/*.h $(DISTDIR)/include/wx/osx/carbon
+	$(CP_P) $(INCDIR)/wx/osx/carbon/private/*.h $(DISTDIR)/include/wx/osx/carbon/private
+	$(CP_P) $(INCDIR)/wx/osx/private/*.h $(DISTDIR)/include/wx/osx/private
+	$(CP_P) $(INCDIR)/wx/osx/cocoa/*.h $(DISTDIR)/include/wx/osx/cocoa
+	$(CP_P) $(INCDIR)/wx/osx/iphone/*.h $(DISTDIR)/include/wx/osx/iphone
+	mkdir $(DISTDIR)/include/wx/osx/core
+	mkdir $(DISTDIR)/include/wx/osx/core/private
+	$(CP_P) $(INCDIR)/wx/osx/core/*.h $(DISTDIR)/include/wx/osx/core
+	$(CP_P) $(INCDIR)/wx/osx/core/private/*.h $(DISTDIR)/include/wx/osx/core/private
+	mkdir $(DISTDIR)/src/osx/core
+	$(CP_P) $(MACDIR)/core/*.cpp $(DISTDIR)/src/osx/core
+	mkdir $(DISTDIR)/src/osx/cocoa
+	$(CP_P) $(MACDIR)/cocoa/*.mm $(DISTDIR)/src/osx/cocoa
+	mkdir $(DISTDIR)/src/osx/iphone
+	$(CP_P) $(MACDIR)/iphone/*.mm $(DISTDIR)/src/osx/iphone
+	mkdir $(DISTDIR)/src/html/htmlctrl
+	mkdir $(DISTDIR)/src/html/htmlctrl/webkit
+	$(CP_P) $(WXDIR)/src/html/htmlctrl/webkit/*.mm $(DISTDIR)/src/html/htmlctrl/webkit
+	mkdir $(DISTDIR)/src/osx/carbon
+	$(CP_P) $(MACDIR)/carbon/*.cpp $(DISTDIR)/src/osx/carbon
+	$(CP_P) $(MACDIR)/carbon/*.mm $(DISTDIR)/src/osx/carbon
+	$(CP_P) $(MACDIR)/carbon/*.icns $(DISTDIR)/src/osx/carbon
+	$(CP_P) $(MACDIR)/carbon/Info.plist.in $(DISTDIR)/src/osx/carbon
+	$(CP_P) $(MACDIR)/carbon/*.h $(DISTDIR)/src/osx/carbon
+	$(CP_P) $(MACDIR)/carbon/*.r $(DISTDIR)/src/osx/carbon
+	mkdir $(DISTDIR)/src/wxWindows.xcodeproj
+	$(CP_P) $(WXDIR)/src/wxWindows.xcodeproj/* $(DISTDIR)/src/wxWindows.xcodeproj
+
+COCOA_DIST: ALL_GUI_DIST
+	$(CP_P) $(INCDIR)/wx/cocoa/*.h $(DISTDIR)/include/wx/cocoa
+	$(CP_P) $(COCOADIR)/*.mm $(DISTDIR)/src/cocoa
+	$(CP_P) $(COCOADIR)/*.cpp $(DISTDIR)/src/cocoa
+	$(CP_P) $(COCOADIR)/*.r $(DISTDIR)/src/cocoa
+	mkdir $(DISTDIR)/include/wx/osx/core
+	$(CP_P) $(INCDIR)/wx/osx/core/*.h $(DISTDIR)/include/wx/osx/core
+	mkdir $(DISTDIR)/src/osx/core
+	$(CP_P) $(MACDIR)/core/*.cpp $(DISTDIR)/src/osx/core
+	mkdir $(DISTDIR)/src/osx/carbon
+	$(CP_P) $(MACDIR)/carbon/Info.plist.in $(DISTDIR)/src/osx/carbon
+	$(CP_P) $(MACDIR)/carbon/wxmac.icns $(DISTDIR)/src/osx/carbon
+
+MSW_DIST: UNIV_DIST
 	mkdir $(DISTDIR)/include/wx/msw/ole
 	mkdir $(DISTDIR)/include/wx/msw/wince
-	cp $(INCDIR)/wx/msw/*.h $(DISTDIR)/include/wx/msw
-	cp $(INCDIR)/wx/msw/*.cur $(DISTDIR)/include/wx/msw
-	cp $(INCDIR)/wx/msw/*.ico $(DISTDIR)/include/wx/msw
-	cp $(INCDIR)/wx/msw/*.bmp $(DISTDIR)/include/wx/msw
-	cp $(INCDIR)/wx/msw/*.rc $(DISTDIR)/include/wx/msw
-	cp $(INCDIR)/wx/msw/ctl3d/*.h $(DISTDIR)/include/wx/msw/ctl3d
-	cp $(INCDIR)/wx/msw/gnuwin32/*.h $(DISTDIR)/include/wx/msw/gnuwin32
-	cp $(INCDIR)/wx/msw/gnuwin32/gl/*.h $(DISTDIR)/include/wx/msw/gnuwin32/gl
-	cp $(INCDIR)/wx/msw/gnuwin32/gl/*.def $(DISTDIR)/include/wx/msw/gnuwin32/gl
-	cp $(INCDIR)/wx/msw/ole/*.h $(DISTDIR)/include/wx/msw/ole
-	cp $(INCDIR)/wx/msw/wince/*.h $(DISTDIR)/include/wx/msw/wince
+	$(CP_P) $(INCDIR)/wx/msw/*.h $(DISTDIR)/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.cur $(DISTDIR)/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.ico $(DISTDIR)/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.bmp $(DISTDIR)/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.rc $(DISTDIR)/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.manifest $(DISTDIR)/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/ole/*.h $(DISTDIR)/include/wx/msw/ole
+	$(CP_P) $(INCDIR)/wx/msw/wince/*.h $(DISTDIR)/include/wx/msw/wince
 	mkdir $(DISTDIR)/src/msw/ole
 	mkdir $(DISTDIR)/src/msw/wince
-	cp $(MSWDIR)/*.cpp $(DISTDIR)/src/msw
-	cp $(MSWDIR)/*.c $(DISTDIR)/src/msw
-	cp $(MSWDIR)/*.def $(DISTDIR)/src/msw
-	cp $(MSWDIR)/ole/*.cpp $(DISTDIR)/src/msw/ole
-	cp $(MSWDIR)/wince/*.* $(DISTDIR)/src/msw/wince
-	mkdir $(DISTDIR)/contrib
-	cp -R $(WXDIR)/contrib $(DISTDIR)
+	$(CP_P) $(MSWDIR)/*.cpp $(DISTDIR)/src/msw
+	$(CP_P) $(MSWDIR)/*.c $(DISTDIR)/src/msw
+	$(CP_P) $(MSWDIR)/*.rc $(DISTDIR)/src/msw
+	$(CP_P) $(MSWDIR)/ole/*.cpp $(DISTDIR)/src/msw/ole
 
 MSW_ZIP_TEXT_DIST: ALL_GUI_DIST
-	cp $(WXDIR)/wxWINE.spec $(DISTDIR)
-	mkdir $(DISTDIR)/include/wx/msw
-	mkdir $(DISTDIR)/include/wx/msw/ctl3d
-	mkdir $(DISTDIR)/include/wx/msw/gnuwin32
-	mkdir $(DISTDIR)/include/wx/msw/gnuwin32/gl
+	mkdir $(DISTDIR)/build/msw
+	$(CP_P) $(WXDIR)/build/msw/* $(DISTDIR)/build/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.h $(DISTDIR)/include/wx/msw
 	mkdir $(DISTDIR)/include/wx/msw/ole
 	mkdir $(DISTDIR)/include/wx/msw/wince
-	cp $(INCDIR)/wx/msw/*.h $(DISTDIR)/include/wx/msw
-	cp $(INCDIR)/wx/msw/*.rc $(DISTDIR)/include/wx/msw
-	cp $(INCDIR)/wx/msw/ctl3d/*.h $(DISTDIR)/include/wx/msw/ctl3d
-	cp $(INCDIR)/wx/msw/gnuwin32/*.h $(DISTDIR)/include/wx/msw/gnuwin32
-	cp $(INCDIR)/wx/msw/gnuwin32/gl/*.h $(DISTDIR)/include/wx/msw/gnuwin32/gl
-	cp $(INCDIR)/wx/msw/gnuwin32/gl/*.def $(DISTDIR)/include/wx/msw/gnuwin32/gl
-	cp $(INCDIR)/wx/msw/ole/*.h $(DISTDIR)/include/wx/msw/ole
-	cp $(INCDIR)/wx/msw/wince/*.h $(DISTDIR)/include/wx/msw/wince
-	mkdir $(DISTDIR)/src/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.h $(DISTDIR)/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.rc $(DISTDIR)/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.manifest $(DISTDIR)/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/ole/*.h $(DISTDIR)/include/wx/msw/ole
+	$(CP_P) $(INCDIR)/wx/msw/wince/*.h $(DISTDIR)/include/wx/msw/wince
 	mkdir $(DISTDIR)/src/msw/ole
 	mkdir $(DISTDIR)/src/msw/wince
-	cp $(MSWDIR)/*.cpp $(DISTDIR)/src/msw
-	cp $(MSWDIR)/*.c $(DISTDIR)/src/msw
-	cp $(MSWDIR)/*.def $(DISTDIR)/src/msw
-	cp $(MSWDIR)/ole/*.cpp $(DISTDIR)/src/msw/ole
-	cp $(MSWDIR)/wince/*.* $(DISTDIR)/src/msw/wince
-	cp $(SRCDIR)/*.??? $(DISTDIR)/src
-	cp $(SRCDIR)/*.?? $(DISTDIR)/src
-	cp $(MSWDIR)/?ake*.* $(DISTDIR)/src/msw
-	mkdir $(DISTDIR)/contrib
-	cp -R $(WXDIR)/contrib $(DISTDIR)
+	$(CP_P) $(MSWDIR)/*.cpp $(DISTDIR)/src/msw
+	$(CP_P) $(MSWDIR)/*.rc $(DISTDIR)/src/msw
+	$(CP_P) $(MSWDIR)/*.c $(DISTDIR)/src/msw
+	$(CP_P) $(MSWDIR)/ole/*.cpp $(DISTDIR)/src/msw/ole
+	$(CP_P) $(MSWDIR)/wince/*.* $(DISTDIR)/src/msw/wince
+	$(CP_P) $(SRCDIR)/*.??? $(DISTDIR)/src
 
 UNIV_DIST: ALL_GUI_DIST
 	mkdir $(DISTDIR)/include/wx/univ
 	mkdir $(DISTDIR)/src/univ
 	mkdir $(DISTDIR)/src/univ/themes
-	cp $(INCDIR)/wx/univ/*.h $(DISTDIR)/include/wx/univ
-	cp $(INCDIR)/wx/univ/setup0.h $(DISTDIR)/include/wx/univ/setup.h
-	cp $(SRCDIR)/univ/*.cpp $(DISTDIR)/src/univ
-	cp $(SRCDIR)/univ/themes/*.cpp $(DISTDIR)/src/univ/themes
+	$(CP_P) $(INCDIR)/wx/univ/*.h $(DISTDIR)/include/wx/univ
+	$(CP_P) $(INCDIR)/wx/univ/setup0.h $(DISTDIR)/include/wx/univ/setup.h
+	$(CP_P) $(SRCDIR)/univ/*.cpp $(DISTDIR)/src/univ
+	$(CP_P) $(SRCDIR)/univ/themes/*.cpp $(DISTDIR)/src/univ/themes
 
 MGL_DIST: UNIV_DIST
-	cp $(WXDIR)/wxMGL.spec $(DISTDIR)
-	cp $(INCDIR)/wx/mgl/*.h $(DISTDIR)/include/wx/mgl
-	cp $(SRCDIR)/mgl/make* $(DISTDIR)/src/mgl
-	cp $(SRCDIR)/mgl/*.cpp $(DISTDIR)/src/mgl
-	mkdir $(DISTDIR)/contrib
-	cp -R $(WXDIR)/contrib $(DISTDIR)
+	$(CP_P) $(WXDIR)/wxMGL.spec $(DISTDIR)
+	$(CP_P) $(INCDIR)/wx/mgl/*.h $(DISTDIR)/include/wx/mgl
+	mkdir $(DISTDIR)/include/wx/msdos
+	$(CP_P) $(INCDIR)/wx/msdos/*.h $(DISTDIR)/include/wx/msdos
+	$(CP_P) $(SRCDIR)/mgl/make* $(DISTDIR)/src/mgl
+	$(CP_P) $(SRCDIR)/mgl/*.cpp $(DISTDIR)/src/mgl
+	mkdir $(DISTDIR)/src/msdos
+	$(CP_P) $(SRCDIR)/msdos/*.cpp $(DISTDIR)/src/msdos
 
 DEMOS_DIST: ALL_GUI_DIST
 	mkdir $(DISTDIR)/demos
-	cp $(DEMODIR)/Makefile.in $(DISTDIR)/demos
+	$(CP_P) $(DEMODIR)/Makefile.in $(DISTDIR)/demos
 
 	mkdir $(DISTDIR)/demos/bombs
-	cp $(DEMODIR)/bombs/Makefile.in $(DISTDIR)/demos/bombs
-	cp $(DEMODIR)/bombs/makefile.unx $(DISTDIR)/demos/bombs
-	cp $(DEMODIR)/bombs/*.cpp $(DISTDIR)/demos/bombs
-	cp $(DEMODIR)/bombs/*.h $(DISTDIR)/demos/bombs
-	cp $(DEMODIR)/bombs/*.xpm $(DISTDIR)/demos/bombs
-	cp $(DEMODIR)/bombs/readme.txt $(DISTDIR)/demos/bombs
-
-	cp -R $(DEMODIR)/dbbrowse $(DISTDIR)/demos/dbbrowse
+	$(CP_P) $(DEMODIR)/bombs/Makefile.in $(DISTDIR)/demos/bombs
+	$(CP_P) $(DEMODIR)/bombs/makefile.unx $(DISTDIR)/demos/bombs
+	$(CP_P) $(DEMODIR)/bombs/*.cpp $(DISTDIR)/demos/bombs
+	$(CP_P) $(DEMODIR)/bombs/*.h $(DISTDIR)/demos/bombs
+	$(CP_P) $(DEMODIR)/bombs/*.xpm $(DISTDIR)/demos/bombs
+	$(CP_P) $(DEMODIR)/bombs/*.ico $(DISTDIR)/demos/bombs
+	$(CP_P) $(DEMODIR)/bombs/*.rc $(DISTDIR)/demos/bombs
+	$(CP_P) $(DEMODIR)/bombs/readme.txt $(DISTDIR)/demos/bombs
 
 	mkdir $(DISTDIR)/demos/forty
-	cp $(DEMODIR)/forty/Makefile.in $(DISTDIR)/demos/forty
-	cp $(DEMODIR)/forty/makefile.unx $(DISTDIR)/demos/forty
-	cp $(DEMODIR)/forty/*.h $(DISTDIR)/demos/forty
-	cp $(DEMODIR)/forty/*.cpp $(DISTDIR)/demos/forty
-	cp $(DEMODIR)/forty/*.xpm $(DISTDIR)/demos/forty
-	cp $(DEMODIR)/forty/*.xbm $(DISTDIR)/demos/forty
+	$(CP_P) $(DEMODIR)/forty/Makefile.in $(DISTDIR)/demos/forty
+	$(CP_P) $(DEMODIR)/forty/makefile.unx $(DISTDIR)/demos/forty
+	$(CP_P) $(DEMODIR)/forty/*.h $(DISTDIR)/demos/forty
+	$(CP_P) $(DEMODIR)/forty/*.cpp $(DISTDIR)/demos/forty
+	$(CP_P) $(DEMODIR)/forty/*.xpm $(DISTDIR)/demos/forty
+	$(CP_P) $(DEMODIR)/forty/*.htm $(DISTDIR)/demos/forty
+	$(CP_P) $(DEMODIR)/forty/*.ico $(DISTDIR)/demos/forty
+	$(CP_P) $(DEMODIR)/forty/*.rc $(DISTDIR)/demos/forty
+	$(CP_P) $(DEMODIR)/forty/readme.txt $(DISTDIR)/demos/forty
 
 	mkdir $(DISTDIR)/demos/life
 	mkdir $(DISTDIR)/demos/life/bitmaps
-	cp $(DEMODIR)/life/Makefile.in $(DISTDIR)/demos/life
-	cp $(DEMODIR)/life/makefile.unx $(DISTDIR)/demos/life
-	cp $(DEMODIR)/life/*.cpp $(DISTDIR)/demos/life
-	cp $(DEMODIR)/life/*.h $(DISTDIR)/demos/life
-	cp $(DEMODIR)/life/*.xpm $(DISTDIR)/demos/life
-	cp $(DEMODIR)/life/*.inc $(DISTDIR)/demos/life
-	cp $(DEMODIR)/life/*.lif $(DISTDIR)/demos/life
-	cp $(DEMODIR)/life/bitmaps/*.xpm $(DISTDIR)/demos/life/bitmaps
+	$(CP_P) $(DEMODIR)/life/Makefile.in $(DISTDIR)/demos/life
+	$(CP_P) $(DEMODIR)/life/makefile.unx $(DISTDIR)/demos/life
+	$(CP_P) $(DEMODIR)/life/*.cpp $(DISTDIR)/demos/life
+	$(CP_P) $(DEMODIR)/life/*.h $(DISTDIR)/demos/life
+	$(CP_P) $(DEMODIR)/life/*.xpm $(DISTDIR)/demos/life
+	$(CP_P) $(DEMODIR)/life/*.inc $(DISTDIR)/demos/life
+	$(CP_P) $(DEMODIR)/life/*.lif $(DISTDIR)/demos/life
+	$(CP_P) $(DEMODIR)/life/*.rc $(DISTDIR)/demos/life
+	$(CP_P) $(DEMODIR)/life/*.ico $(DISTDIR)/demos/life
+	$(CP_P) $(DEMODIR)/life/bitmaps/*.xpm $(DISTDIR)/demos/life/bitmaps
+	$(CP_P) $(DEMODIR)/life/bitmaps/*.bmp $(DISTDIR)/demos/life/bitmaps
 
 	mkdir $(DISTDIR)/demos/poem
-	cp $(DEMODIR)/poem/Makefile.in $(DISTDIR)/demos/poem
-	cp $(DEMODIR)/poem/makefile.unx $(DISTDIR)/demos/poem
-	cp $(DEMODIR)/poem/*.h $(DISTDIR)/demos/poem
-	cp $(DEMODIR)/poem/*.cpp $(DISTDIR)/demos/poem
-	cp $(DEMODIR)/poem/*.xpm $(DISTDIR)/demos/poem
-	cp $(DEMODIR)/poem/*.dat $(DISTDIR)/demos/poem
-	cp $(DEMODIR)/poem/*.txt $(DISTDIR)/demos/poem
+	$(CP_P) $(DEMODIR)/poem/Makefile.in $(DISTDIR)/demos/poem
+	$(CP_P) $(DEMODIR)/poem/makefile.unx $(DISTDIR)/demos/poem
+	$(CP_P) $(DEMODIR)/poem/*.h $(DISTDIR)/demos/poem
+	$(CP_P) $(DEMODIR)/poem/*.cpp $(DISTDIR)/demos/poem
+	$(CP_P) $(DEMODIR)/poem/*.xpm $(DISTDIR)/demos/poem
+	$(CP_P) $(DEMODIR)/poem/*.dat $(DISTDIR)/demos/poem
+	$(CP_P) $(DEMODIR)/poem/*.txt $(DISTDIR)/demos/poem
+	$(CP_P) $(DEMODIR)/poem/*.rc $(DISTDIR)/demos/poem
+	$(CP_P) $(DEMODIR)/poem/*.ico $(DISTDIR)/demos/poem
 
 	mkdir $(DISTDIR)/demos/fractal
-	cp $(DEMODIR)/fractal/Makefile.in $(DISTDIR)/demos/fractal
-	cp $(DEMODIR)/fractal/makefile.unx $(DISTDIR)/demos/fractal
-	cp $(DEMODIR)/fractal/*.cpp $(DISTDIR)/demos/fractal
+	$(CP_P) $(DEMODIR)/fractal/Makefile.in $(DISTDIR)/demos/fractal
+	$(CP_P) $(DEMODIR)/fractal/makefile.unx $(DISTDIR)/demos/fractal
+	$(CP_P) $(DEMODIR)/fractal/*.cpp $(DISTDIR)/demos/fractal
+	$(CP_P) $(DEMODIR)/fractal/*.rc $(DISTDIR)/demos/fractal
+	$(CP_P) $(DEMODIR)/fractal/*.ico $(DISTDIR)/demos/fractal
 
 SAMPLES_DIST: ALL_GUI_DIST
 	mkdir $(DISTDIR)/samples
-	cp $(SAMPDIR)/Makefile.in $(DISTDIR)/samples
-	cp $(SAMPDIR)/sample.* $(DISTDIR)/samples
-
-	mkdir $(DISTDIR)/samples/artprov
-	cp $(SAMPDIR)/artprov/Makefile.in $(DISTDIR)/samples/artprov
-	cp $(SAMPDIR)/artprov/makefile.unx $(DISTDIR)/samples/artprov
-	cp $(SAMPDIR)/artprov/*.cpp $(DISTDIR)/samples/artprov
-	cp $(SAMPDIR)/artprov/*.h $(DISTDIR)/samples/artprov
-	cp $(SAMPDIR)/artprov/*.xpm $(DISTDIR)/samples/artprov
-
-	mkdir $(DISTDIR)/samples/calendar
-	cp $(SAMPDIR)/calendar/Makefile.in $(DISTDIR)/samples/calendar
-	cp $(SAMPDIR)/calendar/makefile.unx $(DISTDIR)/samples/calendar
-	cp $(SAMPDIR)/calendar/*.cpp $(DISTDIR)/samples/calendar
-
-	mkdir $(DISTDIR)/samples/caret
-	cp $(SAMPDIR)/caret/Makefile.in $(DISTDIR)/samples/caret
-	cp $(SAMPDIR)/caret/makefile.unx $(DISTDIR)/samples/caret
-	cp $(SAMPDIR)/caret/*.cpp $(DISTDIR)/samples/caret
-	cp $(SAMPDIR)/caret/*.xpm $(DISTDIR)/samples/caret
-
-	mkdir $(DISTDIR)/samples/checklst
-	cp $(SAMPDIR)/checklst/Makefile.in $(DISTDIR)/samples/checklst
-	cp $(SAMPDIR)/checklst/makefile.unx $(DISTDIR)/samples/checklst
-	cp $(SAMPDIR)/checklst/*.cpp $(DISTDIR)/samples/checklst
-	cp $(SAMPDIR)/checklst/*.xpm $(DISTDIR)/samples/checklst
-	cp $(SAMPDIR)/checklst/*.mms $(DISTDIR)/samples/checklst
-
-	mkdir $(DISTDIR)/samples/config
-	cp $(SAMPDIR)/config/Makefile.in $(DISTDIR)/samples/config
-	cp $(SAMPDIR)/config/makefile.unx $(DISTDIR)/samples/config
-	cp $(SAMPDIR)/config/*.cpp $(DISTDIR)/samples/config
+	$(CP_P) $(SAMPDIR)/Makefile.in $(DISTDIR)/samples
+	$(CP_P) $(SAMPDIR)/makefile.* $(DISTDIR)/samples
+	$(CP_P) $(SAMPDIR)/Info.plist $(DISTDIR)/samples
+	$(CP_P) $(SAMPDIR)/sample.* $(DISTDIR)/samples
+	$(CP_P) $(SAMPDIR)/samples.* $(DISTDIR)/samples
+
+	# copy files common to all samples in a general way
+	for s in `find $(SAMPDIR) $(SAMPDIR)/html $(SAMPDIR)/mobile $(SAMPDIR)/opengl \
+		    -mindepth 1 -maxdepth 1 -type d -not -name .svn`; do \
+	    t="$(DISTDIR)/samples/`echo $$s | sed 's@$(SAMPDIR)/@@'`"; \
+	    mkdir -p $$t; \
+	    $(CP_P) $$s/Makefile.in \
+		    `find $$s -maxdepth 1 -name 'makefile.*' -o -name descrip.mms -o \
+				-name '*.cpp' -o -name '*.h' -o \
+				-name '*.bmp' -o -name '*.ico' -o -name '*.png' -o \
+				-name '*.rc' -o -name '*.xpm'` $$t; \
+	    i=""; \
+	    if [ -d $$s/bitmaps ]; then i="bitmaps"; fi; \
+	    if [ -d $$s/icons ]; then i="icons"; fi; \
+	    if [ -n "$$i" ]; then \
+		mkdir $$t/$$i; \
+		cp `find $$s/$$i -name '*.bmp' -o -name '*.xpm'` $$t/$$i; \
+	    fi; \
+	done
+
+	# copy the rest, not covered by the above loop
+	$(CP_P) $(SAMPDIR)/animate/hourglass.ani $(DISTDIR)/samples/animate
+	$(CP_P) $(SAMPDIR)/animate/throbber.gif $(DISTDIR)/samples/animate
+
+	$(CP_P) $(SAMPDIR)/console/testdata.fc $(DISTDIR)/samples/console
+
+	$(CP_P) $(SAMPDIR)/dialogs/tips.txt $(DISTDIR)/samples/dialogs
+
+	$(CP_P) $(SAMPDIR)/dnd/d_and_d.txt $(DISTDIR)/samples/dnd
 
-	mkdir $(DISTDIR)/samples/console
-	cp $(SAMPDIR)/console/Makefile.in $(DISTDIR)/samples/console
-	cp $(SAMPDIR)/console/makefile.unx $(DISTDIR)/samples/console
-	cp $(SAMPDIR)/console/*.cpp $(DISTDIR)/samples/console
-	cp $(SAMPDIR)/console/testdata.fc $(DISTDIR)/samples/console
-
-	mkdir $(DISTDIR)/samples/controls
-	mkdir $(DISTDIR)/samples/controls/icons
-	cp $(SAMPDIR)/controls/Makefile.in $(DISTDIR)/samples/controls
-	cp $(SAMPDIR)/controls/makefile.unx $(DISTDIR)/samples/controls
-	cp $(SAMPDIR)/controls/*.cpp $(DISTDIR)/samples/controls
-	cp $(SAMPDIR)/controls/*.xpm $(DISTDIR)/samples/controls
-	cp $(SAMPDIR)/controls/*.mms $(DISTDIR)/samples/controls
-	cp $(SAMPDIR)/controls/icons/*.??? $(DISTDIR)/samples/controls/icons
-
-	mkdir $(DISTDIR)/samples/db
-	cp $(SAMPDIR)/db/Makefile.in $(DISTDIR)/samples/db
-	cp $(SAMPDIR)/db/makefile.unx $(DISTDIR)/samples/db
-	cp $(SAMPDIR)/db/*.cpp $(DISTDIR)/samples/db
-	cp $(SAMPDIR)/db/*.h $(DISTDIR)/samples/db
-	cp $(SAMPDIR)/db/*.xpm $(DISTDIR)/samples/db
-
-	mkdir $(DISTDIR)/samples/dialogs
-	cp $(SAMPDIR)/dialogs/Makefile.in $(DISTDIR)/samples/dialogs
-	cp $(SAMPDIR)/dialogs/makefile.unx $(DISTDIR)/samples/dialogs
-	cp $(SAMPDIR)/dialogs/*.cpp $(DISTDIR)/samples/dialogs
-	cp $(SAMPDIR)/dialogs/*.h $(DISTDIR)/samples/dialogs
-	cp $(SAMPDIR)/dialogs/*.txt $(DISTDIR)/samples/dialogs
-	cp $(SAMPDIR)/dialogs/*.mms $(DISTDIR)/samples/dialogs
-
-	mkdir $(DISTDIR)/samples/dialup
-	cp $(SAMPDIR)/dialup/Makefile.in $(DISTDIR)/samples/dialup
-	cp $(SAMPDIR)/dialup/makefile.unx $(DISTDIR)/samples/dialup
-	cp $(SAMPDIR)/dialup/*.cpp $(DISTDIR)/samples/dialup
-
-	mkdir $(DISTDIR)/samples/dnd
-	cp $(SAMPDIR)/dnd/Makefile.in $(DISTDIR)/samples/dnd
-	cp $(SAMPDIR)/dnd/makefile.unx $(DISTDIR)/samples/dnd
-	cp $(SAMPDIR)/dnd/*.wxr $(DISTDIR)/samples/dnd
-	cp $(SAMPDIR)/dnd/*.cpp $(DISTDIR)/samples/dnd
-	cp $(SAMPDIR)/dnd/*.xpm $(DISTDIR)/samples/dnd
-	cp $(SAMPDIR)/dnd/*.txt $(DISTDIR)/samples/dnd
-	cp $(SAMPDIR)/dnd/*.png $(DISTDIR)/samples/dnd
-
-	mkdir $(DISTDIR)/samples/docview
-	cp $(SAMPDIR)/docview/Makefile.in $(DISTDIR)/samples/docview
-	cp $(SAMPDIR)/docview/makefile.unx $(DISTDIR)/samples/docview
-	cp $(SAMPDIR)/docview/*.cpp $(DISTDIR)/samples/docview
-	cp $(SAMPDIR)/docview/*.h $(DISTDIR)/samples/docview
-	cp $(SAMPDIR)/docview/*.xpm $(DISTDIR)/samples/docview
-
-	mkdir $(DISTDIR)/samples/docvwmdi
-	cp $(SAMPDIR)/docvwmdi/Makefile.in $(DISTDIR)/samples/docvwmdi
-	cp $(SAMPDIR)/docvwmdi/makefile.unx $(DISTDIR)/samples/docvwmdi
-	cp $(SAMPDIR)/docvwmdi/*.cpp $(DISTDIR)/samples/docvwmdi
-	cp $(SAMPDIR)/docvwmdi/*.h $(DISTDIR)/samples/docvwmdi
-
-	mkdir $(DISTDIR)/samples/dragimag
-	cp $(SAMPDIR)/dragimag/Makefile.in $(DISTDIR)/samples/dragimag
-	cp $(SAMPDIR)/dragimag/makefile.unx $(DISTDIR)/samples/dragimag
-	cp $(SAMPDIR)/dragimag/*.cpp $(DISTDIR)/samples/dragimag
-	cp $(SAMPDIR)/dragimag/*.h $(DISTDIR)/samples/dragimag
-	cp $(SAMPDIR)/dragimag/*.xpm $(DISTDIR)/samples/dragimag
-	cp $(SAMPDIR)/dragimag/*.png $(DISTDIR)/samples/dragimag
-
-	mkdir $(DISTDIR)/samples/drawing
-	cp $(SAMPDIR)/drawing/Makefile.in $(DISTDIR)/samples/drawing
-	cp $(SAMPDIR)/drawing/makefile.unx $(DISTDIR)/samples/drawing
-	cp $(SAMPDIR)/drawing/*.cpp $(DISTDIR)/samples/drawing
-	cp $(SAMPDIR)/drawing/*.xpm $(DISTDIR)/samples/drawing
-	cp $(SAMPDIR)/drawing/*.bmp $(DISTDIR)/samples/drawing
-
-	mkdir $(DISTDIR)/samples/dynamic
-	cp $(SAMPDIR)/dynamic/Makefile.in $(DISTDIR)/samples/dynamic
-	cp $(SAMPDIR)/dynamic/makefile.unx $(DISTDIR)/samples/dynamic
-	cp $(SAMPDIR)/dynamic/*.cpp $(DISTDIR)/samples/dynamic
-	cp $(SAMPDIR)/dynamic/*.xpm $(DISTDIR)/samples/dynamic
-
-	mkdir $(DISTDIR)/samples/erase
-	cp $(SAMPDIR)/erase/Makefile.in $(DISTDIR)/samples/erase
-	cp $(SAMPDIR)/erase/makefile.unx $(DISTDIR)/samples/erase
-	cp $(SAMPDIR)/erase/*.cpp $(DISTDIR)/samples/erase
-	cp $(SAMPDIR)/erase/*.xml $(DISTDIR)/samples/erase
-
-	mkdir $(DISTDIR)/samples/event
-	cp $(SAMPDIR)/event/Makefile.in $(DISTDIR)/samples/event
-	cp $(SAMPDIR)/event/makefile.unx $(DISTDIR)/samples/event
-	cp $(SAMPDIR)/event/*.cpp $(DISTDIR)/samples/event
-
-	mkdir $(DISTDIR)/samples/exec
-	cp $(SAMPDIR)/exec/Makefile.in $(DISTDIR)/samples/exec
-	cp $(SAMPDIR)/exec/makefile.unx $(DISTDIR)/samples/exec
-	cp $(SAMPDIR)/exec/*.cpp $(DISTDIR)/samples/exec
-
-	mkdir $(DISTDIR)/samples/font
-	cp $(SAMPDIR)/font/Makefile.in $(DISTDIR)/samples/font
-	cp $(SAMPDIR)/font/makefile.unx $(DISTDIR)/samples/font
-	cp $(SAMPDIR)/font/*.cpp $(DISTDIR)/samples/font
-
-	mkdir $(DISTDIR)/samples/grid
-	cp $(SAMPDIR)/grid/Makefile.in $(DISTDIR)/samples/grid
-	cp $(SAMPDIR)/grid/makefile.unx $(DISTDIR)/samples/grid
-	cp $(SAMPDIR)/grid/*.cpp $(SAMPDIR)/grid/*.h $(DISTDIR)/samples/grid
-
-	mkdir $(DISTDIR)/samples/help
 	mkdir $(DISTDIR)/samples/help/doc
-	cp $(SAMPDIR)/help/Makefile.in $(DISTDIR)/samples/help
-	cp $(SAMPDIR)/help/makefile.unx $(DISTDIR)/samples/help
-	cp $(SAMPDIR)/help/*.cpp $(DISTDIR)/samples/help
-	cp $(SAMPDIR)/help/*.xpm $(DISTDIR)/samples/help
-	cp $(SAMPDIR)/help/doc/*.* $(DISTDIR)/samples/help/doc
-
-	mkdir $(DISTDIR)/samples/htlbox
-	cp $(SAMPDIR)/htlbox/Makefile.in $(DISTDIR)/samples/htlbox
-	cp $(SAMPDIR)/htlbox/makefile.unx $(DISTDIR)/samples/htlbox
-	cp $(SAMPDIR)/htlbox/*.cpp $(DISTDIR)/samples/htlbox
-	cp $(SAMPDIR)/htlbox/*.xpm $(DISTDIR)/samples/htlbox
-
-	mkdir $(DISTDIR)/samples/html
-	cp $(SAMPDIR)/html/Makefile.in $(DISTDIR)/samples/html
-	mkdir $(DISTDIR)/samples/html/about
-	cp $(SAMPDIR)/html/about/Makefile.in $(DISTDIR)/samples/html/about
-	cp $(SAMPDIR)/html/about/*.cpp $(DISTDIR)/samples/html/about
+	$(CP_P) $(SAMPDIR)/help/*.h?? $(DISTDIR)/samples/help
+	$(CP_P) $(SAMPDIR)/help/*.gif $(DISTDIR)/samples/help
+	$(CP_P) $(SAMPDIR)/help/cshelp.txt $(DISTDIR)/samples/help
+	$(CP_P) $(SAMPDIR)/help/*.chm $(DISTDIR)/samples/help
+	$(CP_P) $(SAMPDIR)/help/*.cnt $(DISTDIR)/samples/help
+	$(CP_P) $(SAMPDIR)/help/doc.zip $(DISTDIR)/samples/help
+	$(CP_P) $(SAMPDIR)/help/doc/*.* $(DISTDIR)/samples/help/doc
+
 	mkdir $(DISTDIR)/samples/html/about/data
-	cp $(SAMPDIR)/html/about/data/*.htm $(DISTDIR)/samples/html/about/data
-	cp $(SAMPDIR)/html/about/data/*.png $(DISTDIR)/samples/html/about/data
-	mkdir $(DISTDIR)/samples/html/help
-	cp $(SAMPDIR)/html/help/Makefile.in $(DISTDIR)/samples/html/help
-	cp $(SAMPDIR)/html/help/*.cpp $(DISTDIR)/samples/html/help
+	$(CP_P) $(SAMPDIR)/html/about/data/*.htm $(DISTDIR)/samples/html/about/data
+	$(CP_P) $(SAMPDIR)/html/about/data/*.png $(DISTDIR)/samples/html/about/data
 	mkdir $(DISTDIR)/samples/html/help/helpfiles
-	cp $(SAMPDIR)/html/help/helpfiles/*.??? $(DISTDIR)/samples/html/help/helpfiles
-	mkdir $(DISTDIR)/samples/html/helpview
-	cp $(SAMPDIR)/html/helpview/Makefile.in $(DISTDIR)/samples/html/helpview
-	cp $(SAMPDIR)/html/helpview/*.cpp $(DISTDIR)/samples/html/helpview
-	cp $(SAMPDIR)/html/helpview/*.zip $(DISTDIR)/samples/html/helpview
-	mkdir $(DISTDIR)/samples/html/printing
-	cp $(SAMPDIR)/html/printing/Makefile.in $(DISTDIR)/samples/html/printing
-	cp $(SAMPDIR)/html/printing/*.cpp $(DISTDIR)/samples/html/printing
-	cp $(SAMPDIR)/html/printing/*.htm $(DISTDIR)/samples/html/printing
-	mkdir $(DISTDIR)/samples/html/test
-	cp $(SAMPDIR)/html/test/Makefile.in $(DISTDIR)/samples/html/test
-	cp $(SAMPDIR)/html/test/*.cpp $(DISTDIR)/samples/html/test
-	cp $(SAMPDIR)/html/test/*.bmp $(DISTDIR)/samples/html/test
-	cp $(SAMPDIR)/html/test/*.png $(DISTDIR)/samples/html/test
-	cp $(SAMPDIR)/html/test/*.gif $(DISTDIR)/samples/html/test
-	cp $(SAMPDIR)/html/test/*.htm $(DISTDIR)/samples/html/test
-	cp $(SAMPDIR)/html/test/*.html $(DISTDIR)/samples/html/test
-	mkdir $(DISTDIR)/samples/html/virtual
-	cp $(SAMPDIR)/html/virtual/Makefile.in $(DISTDIR)/samples/html/virtual
-	cp $(SAMPDIR)/html/virtual/*.cpp $(DISTDIR)/samples/html/virtual
-	cp $(SAMPDIR)/html/virtual/*.htm $(DISTDIR)/samples/html/virtual
-	mkdir $(DISTDIR)/samples/html/widget
-	cp $(SAMPDIR)/html/widget/Makefile.in $(DISTDIR)/samples/html/widget
-	cp $(SAMPDIR)/html/widget/*.cpp $(DISTDIR)/samples/html/widget
-	cp $(SAMPDIR)/html/widget/*.htm $(DISTDIR)/samples/html/widget
-	mkdir $(DISTDIR)/samples/html/zip
-	cp $(SAMPDIR)/html/zip/Makefile.in $(DISTDIR)/samples/html/zip
-	cp $(SAMPDIR)/html/zip/*.cpp $(DISTDIR)/samples/html/zip
-	cp $(SAMPDIR)/html/zip/*.htm $(DISTDIR)/samples/html/zip
-	cp $(SAMPDIR)/html/zip/*.zip $(DISTDIR)/samples/html/zip
-
-	mkdir $(DISTDIR)/samples/image
-	cp $(SAMPDIR)/image/Makefile.in $(DISTDIR)/samples/image
-	cp $(SAMPDIR)/image/makefile.unx $(DISTDIR)/samples/image
-	cp $(SAMPDIR)/image/*.cpp $(DISTDIR)/samples/image
-	cp $(SAMPDIR)/image/*.mms $(DISTDIR)/samples/image
-	cp $(SAMPDIR)/image/horse.* $(DISTDIR)/samples/image
-	cp $(SAMPDIR)/image/smile.xbm $(DISTDIR)/samples/image
-	cp $(SAMPDIR)/image/smile.xpm $(DISTDIR)/samples/image
-
-	mkdir $(DISTDIR)/samples/internat
-	mkdir $(DISTDIR)/samples/internat/de
-	mkdir $(DISTDIR)/samples/internat/fr
-	mkdir $(DISTDIR)/samples/internat/ju
-	mkdir $(DISTDIR)/samples/internat/ru
-	cp $(SAMPDIR)/internat/Makefile.in $(DISTDIR)/samples/internat
-	cp $(SAMPDIR)/internat/makefile.unx $(DISTDIR)/samples/internat
-	cp $(SAMPDIR)/internat/*.cpp $(DISTDIR)/samples/internat
-	cp $(SAMPDIR)/internat/*.xpm $(DISTDIR)/samples/internat
-	cp $(SAMPDIR)/internat/*.txt $(DISTDIR)/samples/internat
-	cp $(SAMPDIR)/internat/fr/*.mo $(DISTDIR)/samples/internat/fr
-	cp $(SAMPDIR)/internat/de/*.mo $(DISTDIR)/samples/internat/de
-	cp $(SAMPDIR)/internat/ja/*.mo $(DISTDIR)/samples/internat/ja
-	cp $(SAMPDIR)/internat/ru/*.mo $(DISTDIR)/samples/internat/ru
-	cp $(SAMPDIR)/internat/fr/*.po $(DISTDIR)/samples/internat/fr
-	cp $(SAMPDIR)/internat/de/*.po $(DISTDIR)/samples/internat/de
-	cp $(SAMPDIR)/internat/ja/*.po $(DISTDIR)/samples/internat/ja
-	cp $(SAMPDIR)/internat/ru/*.po $(DISTDIR)/samples/internat/ru
-
-	mkdir $(DISTDIR)/samples/ipc
-	cp $(SAMPDIR)/ipc/Makefile.in $(DISTDIR)/samples/ipc
-	cp $(SAMPDIR)/ipc/makefile.unx $(DISTDIR)/samples/ipc
-	cp $(SAMPDIR)/ipc/*.cpp $(DISTDIR)/samples/ipc
-	cp $(SAMPDIR)/ipc/*.h $(DISTDIR)/samples/ipc
-	cp $(SAMPDIR)/ipc/*.xpm $(DISTDIR)/samples/ipc
-
-	mkdir $(DISTDIR)/samples/joytest
-	cp $(SAMPDIR)/joytest/Makefile.in $(DISTDIR)/samples/joytest
-	cp $(SAMPDIR)/joytest/makefile.unx $(DISTDIR)/samples/joytest
-	cp $(SAMPDIR)/joytest/*.cpp $(DISTDIR)/samples/joytest
-	cp $(SAMPDIR)/joytest/*.h $(DISTDIR)/samples/joytest
-	cp $(SAMPDIR)/joytest/*.wav $(DISTDIR)/samples/joytest
-
-	mkdir $(DISTDIR)/samples/keyboard
-	cp $(SAMPDIR)/keyboard/Makefile.in $(DISTDIR)/samples/keyboard
-	cp $(SAMPDIR)/keyboard/*.cpp $(DISTDIR)/samples/keyboard
-
-	mkdir $(DISTDIR)/samples/layout
-	cp $(SAMPDIR)/layout/Makefile.in $(DISTDIR)/samples/layout
-	cp $(SAMPDIR)/layout/makefile.unx $(DISTDIR)/samples/layout
-	cp $(SAMPDIR)/layout/*.cpp $(DISTDIR)/samples/layout
-	cp $(SAMPDIR)/layout/*.h $(DISTDIR)/samples/layout
-
-	mkdir $(DISTDIR)/samples/listctrl
-	mkdir $(DISTDIR)/samples/listctrl/bitmaps
-	cp $(SAMPDIR)/listctrl/Makefile.in $(DISTDIR)/samples/listctrl
-	cp $(SAMPDIR)/listctrl/makefile.unx $(DISTDIR)/samples/listctrl
-	cp $(SAMPDIR)/listctrl/*.cpp $(DISTDIR)/samples/listctrl
-	cp $(SAMPDIR)/listctrl/*.h $(DISTDIR)/samples/listctrl
-	cp $(SAMPDIR)/listctrl/*.xpm $(DISTDIR)/samples/listctrl
-	cp $(SAMPDIR)/listctrl/bitmaps/*.xpm $(DISTDIR)/samples/listctrl/bitmaps
-
-	mkdir $(DISTDIR)/samples/mdi
-	mkdir $(DISTDIR)/samples/mdi/bitmaps
-	cp $(SAMPDIR)/mdi/Makefile.in $(DISTDIR)/samples/mdi
-	cp $(SAMPDIR)/mdi/makefile.unx $(DISTDIR)/samples/mdi
-	cp $(SAMPDIR)/mdi/*.cpp $(DISTDIR)/samples/mdi
-	cp $(SAMPDIR)/mdi/*.h $(DISTDIR)/samples/mdi
-	cp $(SAMPDIR)/mdi/*.xpm $(DISTDIR)/samples/mdi
-	cp $(SAMPDIR)/mdi/bitmaps/*.xpm $(DISTDIR)/samples/mdi/bitmaps
-
-	mkdir $(DISTDIR)/samples/memcheck
-	cp $(SAMPDIR)/memcheck/Makefile.in $(DISTDIR)/samples/memcheck
-	cp $(SAMPDIR)/memcheck/makefile.unx $(DISTDIR)/samples/memcheck
-	cp $(SAMPDIR)/memcheck/*.cpp $(DISTDIR)/samples/memcheck
-	cp $(SAMPDIR)/memcheck/*.xpm $(DISTDIR)/samples/memcheck
-
-	mkdir $(DISTDIR)/samples/menu
-	cp $(SAMPDIR)/menu/Makefile.in $(DISTDIR)/samples/menu
-	cp $(SAMPDIR)/menu/makefile.unx $(DISTDIR)/samples/menu
-	cp $(SAMPDIR)/menu/*.cpp $(DISTDIR)/samples/menu
-	cp $(SAMPDIR)/menu/*.xpm $(DISTDIR)/samples/menu
-
-	mkdir $(DISTDIR)/samples/minifram
-	mkdir $(DISTDIR)/samples/minifram/bitmaps
-	cp $(SAMPDIR)/minifram/Makefile.in $(DISTDIR)/samples/minifram
-	cp $(SAMPDIR)/minifram/makefile.unx $(DISTDIR)/samples/minifram
-	cp $(SAMPDIR)/minifram/*.cpp $(DISTDIR)/samples/minifram
-	cp $(SAMPDIR)/minifram/*.h $(DISTDIR)/samples/minifram
-	cp $(SAMPDIR)/minifram/*.xpm $(DISTDIR)/samples/minifram
-	cp $(SAMPDIR)/minifram/bitmaps/*.xpm $(DISTDIR)/samples/minifram/bitmaps
-
-	mkdir $(DISTDIR)/samples/minimal
-	cp $(SAMPDIR)/minimal/Makefile.in $(DISTDIR)/samples/minimal
-	cp $(SAMPDIR)/minimal/makefile.unx $(DISTDIR)/samples/minimal
-	cp $(SAMPDIR)/minimal/*.cpp $(DISTDIR)/samples/minimal
-	cp $(SAMPDIR)/minimal/*.xpm $(DISTDIR)/samples/minimal
-	cp $(SAMPDIR)/minimal/*.mms $(DISTDIR)/samples/minimal
-
-	mkdir $(DISTDIR)/samples/mobile
-	cp $(SAMPDIR)/mobile/Makefile.in $(DISTDIR)/samples/mobile
-	mkdir $(DISTDIR)/samples/mobile/wxedit
-	cp $(SAMPDIR)/mobile/wxedit/Makefile.in $(DISTDIR)/samples/mobile/wxedit
-	cp $(SAMPDIR)/mobile/wxedit/*.cpp $(DISTDIR)/samples/mobile/wxedit
-	cp $(SAMPDIR)/mobile/wxedit/*.h $(DISTDIR)/samples/mobile/wxedit
-	mkdir $(DISTDIR)/samples/mobile/styles
-	cp $(SAMPDIR)/mobile/styles/Makefile.in $(DISTDIR)/samples/mobile/styles
-	cp $(SAMPDIR)/mobile/styles/*.cpp $(DISTDIR)/samples/mobile/styles
-	cp $(SAMPDIR)/mobile/styles/*.h $(DISTDIR)/samples/mobile/styles
-	cp $(SAMPDIR)/mobile/styles/*.jpg $(DISTDIR)/samples/mobile/styles
-    
-	mkdir $(DISTDIR)/samples/multimon
-	cp $(SAMPDIR)/multimon/Makefile.in $(DISTDIR)/samples/multimon
-	cp $(SAMPDIR)/multimon/makefile.unx $(DISTDIR)/samples/multimon
-	cp $(SAMPDIR)/multimon/*.cpp $(DISTDIR)/samples/multimon
-
-	mkdir $(DISTDIR)/samples/notebook
-	cp $(SAMPDIR)/notebook/Makefile.in $(DISTDIR)/samples/notebook
-	cp $(SAMPDIR)/notebook/makefile.unx $(DISTDIR)/samples/notebook
-	cp $(SAMPDIR)/notebook/*.cpp $(DISTDIR)/samples/notebook
-	cp $(SAMPDIR)/notebook/*.h $(DISTDIR)/samples/notebook
-
-	mkdir $(DISTDIR)/samples/opengl
-	cp $(SAMPDIR)/opengl/Makefile.in $(DISTDIR)/samples/opengl
-	mkdir $(DISTDIR)/samples/opengl/penguin
-	cp $(SAMPDIR)/opengl/penguin/Makefile.in $(DISTDIR)/samples/opengl/penguin
-	cp $(SAMPDIR)/opengl/penguin/makefile.unx $(DISTDIR)/samples/opengl/penguin
-	cp $(SAMPDIR)/opengl/penguin/*.cpp $(DISTDIR)/samples/opengl/penguin
-	cp $(SAMPDIR)/opengl/penguin/*.c $(DISTDIR)/samples/opengl/penguin
-	cp $(SAMPDIR)/opengl/penguin/*.h $(DISTDIR)/samples/opengl/penguin
-	cp $(SAMPDIR)/opengl/penguin/*.lwo $(DISTDIR)/samples/opengl/penguin
-	mkdir $(DISTDIR)/samples/opengl/cube
-	cp $(SAMPDIR)/opengl/cube/Makefile.in $(DISTDIR)/samples/opengl/cube
-	cp $(SAMPDIR)/opengl/cube/makefile.unx $(DISTDIR)/samples/opengl/cube
-	cp $(SAMPDIR)/opengl/cube/*.cpp $(DISTDIR)/samples/opengl/cube
-	cp $(SAMPDIR)/opengl/cube/*.h $(DISTDIR)/samples/opengl/cube
-	mkdir $(DISTDIR)/samples/opengl/isosurf
-	cp $(SAMPDIR)/opengl/isosurf/Makefile.in $(DISTDIR)/samples/opengl/isosurf
-	cp $(SAMPDIR)/opengl/isosurf/makefile.unx $(DISTDIR)/samples/opengl/isosurf
-	cp $(SAMPDIR)/opengl/isosurf/*.cpp $(DISTDIR)/samples/opengl/isosurf
-	cp $(SAMPDIR)/opengl/isosurf/*.h $(DISTDIR)/samples/opengl/isosurf
-	cp $(SAMPDIR)/opengl/isosurf/*.gz $(DISTDIR)/samples/opengl/isosurf
-
-	mkdir $(DISTDIR)/samples/png
-	cp $(SAMPDIR)/png/Makefile.in $(DISTDIR)/samples/png
-	cp $(SAMPDIR)/png/makefile.unx $(DISTDIR)/samples/png
-	cp $(SAMPDIR)/png/*.cpp $(DISTDIR)/samples/png
-	cp $(SAMPDIR)/png/*.h $(DISTDIR)/samples/png
-	cp $(SAMPDIR)/png/*.png $(DISTDIR)/samples/png
-
-	mkdir $(DISTDIR)/samples/printing
-	cp $(SAMPDIR)/printing/Makefile.in $(DISTDIR)/samples/printing
-	cp $(SAMPDIR)/printing/makefile.unx $(DISTDIR)/samples/printing
-	cp $(SAMPDIR)/printing/*.cpp $(DISTDIR)/samples/printing
-	cp $(SAMPDIR)/printing/*.h $(DISTDIR)/samples/printing
-	cp $(SAMPDIR)/printing/*.xpm $(DISTDIR)/samples/printing
-	cp $(SAMPDIR)/printing/*.xbm $(DISTDIR)/samples/printing
-
-#	mkdir $(DISTDIR)/samples/resource
-#	cp $(SAMPDIR)/resource/Makefile.in $(DISTDIR)/samples/resource
-#	cp $(SAMPDIR)/resource/makefile.unx $(DISTDIR)/samples/resource
-#	cp $(SAMPDIR)/resource/*.cpp $(DISTDIR)/samples/resource
-#	cp $(SAMPDIR)/resource/*.h $(DISTDIR)/samples/resource
-#	cp $(SAMPDIR)/resource/*.wxr $(DISTDIR)/samples/resource
-
-	mkdir $(DISTDIR)/samples/render
-	cp $(SAMPDIR)/render/Makefile.in $(DISTDIR)/samples/render
-	cp $(SAMPDIR)/render/makefile.unx $(DISTDIR)/samples/render
-	cp $(SAMPDIR)/render/*.cpp $(DISTDIR)/samples/render
-
-	mkdir $(DISTDIR)/samples/rotate
-	cp $(SAMPDIR)/rotate/Makefile.in $(DISTDIR)/samples/rotate
-	cp $(SAMPDIR)/rotate/makefile.unx $(DISTDIR)/samples/rotate
-	cp $(SAMPDIR)/rotate/*.cpp $(DISTDIR)/samples/rotate
-	cp $(SAMPDIR)/rotate/*.bmp $(DISTDIR)/samples/rotate
-
-	mkdir $(DISTDIR)/samples/richedit
-	cp $(SAMPDIR)/richedit/Makefile.in $(DISTDIR)/samples/richedit
-	cp $(SAMPDIR)/richedit/makefile.unx $(DISTDIR)/samples/richedit
-	cp $(SAMPDIR)/richedit/*.cpp $(DISTDIR)/samples/richedit
-	cp $(SAMPDIR)/richedit/*.h $(DISTDIR)/samples/richedit
-	cp $(SAMPDIR)/richedit/*.xpm $(DISTDIR)/samples/richedit
-	cp $(SAMPDIR)/richedit/README $(DISTDIR)/samples/richedit
-	cp $(SAMPDIR)/richedit/TODO $(DISTDIR)/samples/richedit
-
-#	mkdir $(DISTDIR)/samples/proplist
-#	cp $(SAMPDIR)/proplist/Makefile.in $(DISTDIR)/samples/proplist
-#	cp $(SAMPDIR)/proplist/makefile.unx $(DISTDIR)/samples/proplist
-#	cp $(SAMPDIR)/proplist/*.cpp $(DISTDIR)/samples/proplist
-#	cp $(SAMPDIR)/proplist/*.h $(DISTDIR)/samples/proplist
-
-	mkdir $(DISTDIR)/samples/propsize
-	cp $(SAMPDIR)/propsize/Makefile.in $(DISTDIR)/samples/propsize
-	cp $(SAMPDIR)/propsize/makefile.unx $(DISTDIR)/samples/propsize
-	cp $(SAMPDIR)/propsize/*.cpp $(DISTDIR)/samples/propsize
-	cp $(SAMPDIR)/propsize/*.xpm $(DISTDIR)/samples/propsize
-
-	mkdir $(DISTDIR)/samples/sashtest
-	cp $(SAMPDIR)/sashtest/Makefile.in $(DISTDIR)/samples/sashtest
-	cp $(SAMPDIR)/sashtest/makefile.unx $(DISTDIR)/samples/sashtest
-	cp $(SAMPDIR)/sashtest/*.cpp $(DISTDIR)/samples/sashtest
-	cp $(SAMPDIR)/sashtest/*.h $(DISTDIR)/samples/sashtest
-
-	mkdir $(DISTDIR)/samples/scroll
-	cp $(SAMPDIR)/scroll/Makefile.in $(DISTDIR)/samples/scroll
-	cp $(SAMPDIR)/scroll/makefile.unx $(DISTDIR)/samples/scroll
-	cp $(SAMPDIR)/scroll/*.cpp $(DISTDIR)/samples/scroll
-
-	mkdir $(DISTDIR)/samples/scrollsub
-	cp $(SAMPDIR)/scrollsub/Makefile.in $(DISTDIR)/samples/scrollsub
-	cp $(SAMPDIR)/scrollsub/makefile.unx $(DISTDIR)/samples/scrollsub
-	cp $(SAMPDIR)/scrollsub/*.cpp $(DISTDIR)/samples/scrollsub
-
-	mkdir $(DISTDIR)/samples/shaped
-	cp $(SAMPDIR)/shaped/Makefile.in $(DISTDIR)/samples/shaped
-	cp $(SAMPDIR)/shaped/makefile.unx $(DISTDIR)/samples/shaped
-	cp $(SAMPDIR)/shaped/*.cpp $(DISTDIR)/samples/shaped
-	cp $(SAMPDIR)/shaped/*.png $(DISTDIR)/samples/shaped
-
-	mkdir $(DISTDIR)/samples/sockets
-	cp $(SAMPDIR)/sockets/Makefile.in $(DISTDIR)/samples/sockets
-	cp $(SAMPDIR)/sockets/makefile.unx $(DISTDIR)/samples/sockets
-	cp $(SAMPDIR)/sockets/*.cpp $(DISTDIR)/samples/sockets
-	cp $(SAMPDIR)/sockets/*.xpm $(DISTDIR)/samples/sockets
-
-	mkdir $(DISTDIR)/samples/splitter
-	cp $(SAMPDIR)/splitter/Makefile.in $(DISTDIR)/samples/splitter
-	cp $(SAMPDIR)/splitter/makefile.unx $(DISTDIR)/samples/splitter
-	cp $(SAMPDIR)/splitter/*.cpp $(DISTDIR)/samples/splitter
-
-	mkdir $(DISTDIR)/samples/statbar
-	cp $(SAMPDIR)/statbar/Makefile.in $(DISTDIR)/samples/statbar
-	cp $(SAMPDIR)/statbar/makefile.unx $(DISTDIR)/samples/statbar
-	cp $(SAMPDIR)/statbar/*.cpp $(DISTDIR)/samples/statbar
-	cp $(SAMPDIR)/statbar/*.xpm $(DISTDIR)/samples/statbar
-
-	mkdir $(DISTDIR)/samples/text
-	cp $(SAMPDIR)/text/Makefile.in $(DISTDIR)/samples/text
-	cp $(SAMPDIR)/text/makefile.unx $(DISTDIR)/samples/text
-	cp $(SAMPDIR)/text/*.cpp $(DISTDIR)/samples/text
-	cp $(SAMPDIR)/text/*.xpm $(DISTDIR)/samples/text
-
-	mkdir $(DISTDIR)/samples/thread
-	cp $(SAMPDIR)/thread/Makefile.in $(DISTDIR)/samples/thread
-	cp $(SAMPDIR)/thread/makefile.unx $(DISTDIR)/samples/thread
-	cp $(SAMPDIR)/thread/*.cpp $(DISTDIR)/samples/thread
-
-	mkdir $(DISTDIR)/samples/toolbar
-	cp $(SAMPDIR)/toolbar/Makefile.in $(DISTDIR)/samples/toolbar
-	cp $(SAMPDIR)/toolbar/makefile.unx $(DISTDIR)/samples/toolbar
-	cp $(SAMPDIR)/toolbar/*.cpp $(DISTDIR)/samples/toolbar
-	cp $(SAMPDIR)/toolbar/*.xpm $(DISTDIR)/samples/toolbar
-	mkdir $(DISTDIR)/samples/toolbar/bitmaps
-	cp $(SAMPDIR)/toolbar/bitmaps/*.xpm $(DISTDIR)/samples/toolbar/bitmaps
-
-	mkdir $(DISTDIR)/samples/treectrl
-	cp $(SAMPDIR)/treectrl/Makefile.in $(DISTDIR)/samples/treectrl
-	cp $(SAMPDIR)/treectrl/makefile.unx $(DISTDIR)/samples/treectrl
-	cp $(SAMPDIR)/treectrl/*.cpp $(DISTDIR)/samples/treectrl
-	cp $(SAMPDIR)/treectrl/*.h $(DISTDIR)/samples/treectrl
-	cp $(SAMPDIR)/treectrl/*.xpm $(DISTDIR)/samples/treectrl
-
-#	mkdir $(DISTDIR)/samples/treelay
-#	cp $(SAMPDIR)/treelay/Makefile.in $(DISTDIR)/samples/treelay
-#	cp $(SAMPDIR)/treelay/makefile.unx $(DISTDIR)/samples/treelay
-#	cp $(SAMPDIR)/treelay/*.cpp $(DISTDIR)/samples/treelay
-#	cp $(SAMPDIR)/treelay/*.h $(DISTDIR)/samples/treelay
-
-	mkdir $(DISTDIR)/samples/typetest
-	cp $(SAMPDIR)/typetest/Makefile.in $(DISTDIR)/samples/typetest
-	cp $(SAMPDIR)/typetest/makefile.unx $(DISTDIR)/samples/typetest
-	cp $(SAMPDIR)/typetest/*.cpp $(DISTDIR)/samples/typetest
-	cp $(SAMPDIR)/typetest/*.h $(DISTDIR)/samples/typetest
-	cp $(SAMPDIR)/typetest/*.xpm $(DISTDIR)/samples/typetest
-
-	mkdir $(DISTDIR)/samples/validate
-	cp $(SAMPDIR)/validate/Makefile.in $(DISTDIR)/samples/validate
-	cp $(SAMPDIR)/validate/makefile.unx $(DISTDIR)/samples/validate
-	cp $(SAMPDIR)/validate/*.cpp $(DISTDIR)/samples/validate
-	cp $(SAMPDIR)/validate/*.h $(DISTDIR)/samples/validate
-	cp $(SAMPDIR)/validate/*.xpm $(DISTDIR)/samples/validate
-
-	mkdir $(DISTDIR)/samples/wizard
-	cp $(SAMPDIR)/wizard/Makefile.in $(DISTDIR)/samples/wizard
-	cp $(SAMPDIR)/wizard/makefile.unx $(DISTDIR)/samples/wizard
-	cp $(SAMPDIR)/wizard/*.cpp $(DISTDIR)/samples/wizard
-	cp $(SAMPDIR)/wizard/*.xpm $(DISTDIR)/samples/wizard
-
-	mkdir $(DISTDIR)/samples/widgets
-	mkdir $(DISTDIR)/samples/widgets/icons
-	cp $(SAMPDIR)/widgets/Makefile.in $(DISTDIR)/samples/widgets
-	cp $(SAMPDIR)/widgets/*.cpp $(DISTDIR)/samples/widgets
-	cp $(SAMPDIR)/widgets/*.h $(DISTDIR)/samples/widgets
-	cp $(SAMPDIR)/widgets/*.rc $(DISTDIR)/samples/widgets
-	cp $(SAMPDIR)/widgets/icons/*.xpm $(DISTDIR)/samples/widgets/icons
+	$(CP_P) $(SAMPDIR)/html/help/helpfiles/*.??? $(DISTDIR)/samples/html/help/helpfiles
+	$(CP_P) $(SAMPDIR)/html/helpview/*.zip $(DISTDIR)/samples/html/helpview
+	$(CP_P) $(SAMPDIR)/html/printing/*.htm $(DISTDIR)/samples/html/printing
+	$(CP_P) $(SAMPDIR)/html/printing/*.gif $(DISTDIR)/samples/html/printing
+	$(CP_P) $(SAMPDIR)/html/test/*.gif $(DISTDIR)/samples/html/test
+	$(CP_P) $(SAMPDIR)/html/test/*.htm $(DISTDIR)/samples/html/test
+	$(CP_P) $(SAMPDIR)/html/test/*.html $(DISTDIR)/samples/html/test
+	$(CP_P) $(SAMPDIR)/html/virtual/*.htm $(DISTDIR)/samples/html/virtual
+	$(CP_P) $(SAMPDIR)/html/widget/*.htm $(DISTDIR)/samples/html/widget
+	$(CP_P) $(SAMPDIR)/html/zip/*.htm $(DISTDIR)/samples/html/zip
+	$(CP_P) $(SAMPDIR)/html/zip/*.zip $(DISTDIR)/samples/html/zip
+
+	$(CP_P) $(SAMPDIR)/image/horse*.* $(DISTDIR)/samples/image
+	$(CP_P) $(SAMPDIR)/image/smile.xbm $(DISTDIR)/samples/image
+
+	$(CP_P) $(SAMPDIR)/internat/readme.txt $(DISTDIR)/samples/internat
+	for f in `(cd $(SAMPDIR); find internat -name '*.[mp]o' -print)`; do \
+	    mkdir -p $(DISTDIR)/samples/`dirname $$f`;  \
+	    $(CP_P) $(SAMPDIR)/$$f $(DISTDIR)/samples/$$f; \
+	done
+
+	$(CP_P) $(SAMPDIR)/joytest/*.wav $(DISTDIR)/samples/joytest
+
+	$(CP_P) $(SAMPDIR)/mobile/styles/*.jpg $(DISTDIR)/samples/mobile/styles
+
+	$(CP_P) $(SAMPDIR)/opengl/penguin/trackball.c $(DISTDIR)/samples/opengl/penguin
+	$(CP_P) $(SAMPDIR)/opengl/penguin/*.dxf.gz $(DISTDIR)/samples/opengl/penguin
+	$(CP_P) $(SAMPDIR)/opengl/isosurf/*.gz $(DISTDIR)/samples/opengl/isosurf
+
+	$(CP_P) $(SAMPDIR)/richtext/readme.txt $(DISTDIR)/samples/richtext
+	$(CP_P) $(SAMPDIR)/richtext/todo.txt $(DISTDIR)/samples/richtext
+
+	$(CP_P) $(SAMPDIR)/sound/*.wav $(DISTDIR)/samples/sound
+
+	$(CP_P) $(SAMPDIR)/splash/*.mpg $(DISTDIR)/samples/splash
+
+	mkdir $(DISTDIR)/samples/xrc/rc
+	$(CP_P) $(SAMPDIR)/xrc/rc/*.xpm $(DISTDIR)/samples/xrc/rc
+	$(CP_P) $(SAMPDIR)/xrc/rc/*.xrc $(DISTDIR)/samples/xrc/rc
+	$(CP_P) $(SAMPDIR)/xrc/rc/*.gif $(DISTDIR)/samples/xrc/rc
+	$(CP_P) $(SAMPDIR)/xrc/rc/*.ico $(DISTDIR)/samples/xrc/rc
 
 UTILS_DIST: ALL_GUI_DIST
 	mkdir $(DISTDIR)/utils
-	cp $(UTILSDIR)/Makefile.in $(DISTDIR)/utils
-
-	mkdir $(DISTDIR)/utils/tex2rtf
-	mkdir $(DISTDIR)/utils/tex2rtf/src
-	cp $(UTILSDIR)/tex2rtf/*.in $(DISTDIR)/utils/tex2rtf
-	cp $(UTILSDIR)/tex2rtf/src/*.h $(DISTDIR)/utils/tex2rtf/src
-	cp $(UTILSDIR)/tex2rtf/src/*.in $(DISTDIR)/utils/tex2rtf/src
-	cp $(UTILSDIR)/tex2rtf/src/*.cpp $(DISTDIR)/utils/tex2rtf/src
-	cp $(UTILSDIR)/tex2rtf/src/tex2rtf.* $(DISTDIR)/utils/tex2rtf/src
+	$(CP_P) $(UTILSDIR)/Makefile.in $(DISTDIR)/utils
+
+	mkdir $(DISTDIR)/utils/screenshotgen
+	mkdir $(DISTDIR)/utils/screenshotgen/src
+	mkdir $(DISTDIR)/utils/screenshotgen/src/bitmaps
+	$(CP_P) $(UTILSDIR)/screenshotgen/README.txt $(DISTDIR)/utils/screenshotgen
+	$(CP_P) $(UTILSDIR)/screenshotgen/*.in $(DISTDIR)/utils/screenshotgen
+	$(CP_P) $(UTILSDIR)/screenshotgen/src/*.* $(DISTDIR)/utils/screenshotgen/src
+	$(CP_P) $(UTILSDIR)/screenshotgen/src/bitmaps/*.* $(DISTDIR)/utils/screenshotgen/src/bitmaps
+
+	mkdir $(DISTDIR)/utils/ifacecheck
+	mkdir $(DISTDIR)/utils/ifacecheck/src
+	$(CP_P) $(UTILSDIR)/ifacecheck/README.txt $(DISTDIR)/utils/ifacecheck
+	$(CP_P) $(UTILSDIR)/ifacecheck/*.dtd $(DISTDIR)/utils/ifacecheck
+	$(CP_P) $(UTILSDIR)/ifacecheck/*.xsl $(DISTDIR)/utils/ifacecheck
+	$(CP_P) $(UTILSDIR)/ifacecheck/*.in $(DISTDIR)/utils/ifacecheck
+	$(CP_P) $(UTILSDIR)/ifacecheck/src/* $(DISTDIR)/utils/ifacecheck/src
 
 	mkdir $(DISTDIR)/utils/emulator
 	mkdir $(DISTDIR)/utils/emulator/src
 	mkdir $(DISTDIR)/utils/emulator/docs
-	cp $(UTILSDIR)/emulator/*.in $(DISTDIR)/utils/emulator
-	cp $(UTILSDIR)/emulator/src/*.h $(DISTDIR)/utils/emulator/src
-	cp $(UTILSDIR)/emulator/src/*.in $(DISTDIR)/utils/emulator/src
-	cp $(UTILSDIR)/emulator/src/*.cpp $(DISTDIR)/utils/emulator/src
-	cp $(UTILSDIR)/emulator/src/*.jpg $(DISTDIR)/utils/emulator/src
-	cp $(UTILSDIR)/emulator/src/*.wxe $(DISTDIR)/utils/emulator/src
-	cp $(UTILSDIR)/emulator/docs/*.txt $(DISTDIR)/utils/emulator/docs
-	cp $(UTILSDIR)/emulator/docs/*.jpg $(DISTDIR)/utils/emulator/docs
-
-	mkdir $(DISTDIR)/utils/makegen
-	mkdir $(DISTDIR)/utils/makegen/templates
-	cp $(UTILSDIR)/makegen/Makefile.in $(DISTDIR)/utils/makegen
-	cp $(UTILSDIR)/makegen/*.cpp $(DISTDIR)/utils/makegen
-	cp $(UTILSDIR)/makegen/templates/*.* $(DISTDIR)/utils/makegen/templates
+	$(CP_P) $(UTILSDIR)/emulator/*.in $(DISTDIR)/utils/emulator
+	$(CP_P) $(UTILSDIR)/emulator/src/*.h $(DISTDIR)/utils/emulator/src
+	$(CP_P) $(UTILSDIR)/emulator/src/*.in $(DISTDIR)/utils/emulator/src
+	$(CP_P) $(UTILSDIR)/emulator/src/*.cpp $(DISTDIR)/utils/emulator/src
+	$(CP_P) $(UTILSDIR)/emulator/src/*.jpg $(DISTDIR)/utils/emulator/src
+	$(CP_P) $(UTILSDIR)/emulator/src/*.wxe $(DISTDIR)/utils/emulator/src
+	$(CP_P) $(UTILSDIR)/emulator/src/*.xpm $(DISTDIR)/utils/emulator/src
+	$(CP_P) $(UTILSDIR)/emulator/docs/*.txt $(DISTDIR)/utils/emulator/docs
+	$(CP_P) $(UTILSDIR)/emulator/docs/*.jpg $(DISTDIR)/utils/emulator/docs
 
 	mkdir $(DISTDIR)/utils/hhp2cached
-	cp $(UTILSDIR)/hhp2cached/*.* $(DISTDIR)/utils/hhp2cached
-
-	mkdir $(DISTDIR)/utils/HelpGen
-	mkdir $(DISTDIR)/utils/HelpGen/src
-	cp $(UTILSDIR)/HelpGen/Makefile.in $(DISTDIR)/utils/HelpGen
-	cp $(UTILSDIR)/HelpGen/src/*.* $(DISTDIR)/utils/HelpGen/src
-
-	mkdir $(DISTDIR)/utils/dialoged
-	mkdir $(DISTDIR)/utils/dialoged/src
-	mkdir $(DISTDIR)/utils/dialoged/src/bitmaps
-	mkdir $(DISTDIR)/utils/dialoged/docs
-	cp $(UTILSDIR)/dialoged/Makefile.in $(DISTDIR)/utils/dialoged
-	cp $(UTILSDIR)/dialoged/src/*.h $(DISTDIR)/utils/dialoged/src
-	cp $(UTILSDIR)/dialoged/src/*.cpp $(DISTDIR)/utils/dialoged/src
-	cp $(UTILSDIR)/dialoged/src/Makefile.in $(DISTDIR)/utils/dialoged/src
-	cp $(UTILSDIR)/dialoged/src/makefile.unx $(DISTDIR)/utils/dialoged/src
-	cp $(UTILSDIR)/dialoged/src/bitmaps/*.xpm $(DISTDIR)/utils/dialoged/src/bitmaps
-	cp $(UTILSDIR)/dialoged/docs/*.tex $(DISTDIR)/utils/dialoged/docs
-	cp $(UTILSDIR)/dialoged/docs/*.ini $(DISTDIR)/utils/dialoged/docs
-	cp $(UTILSDIR)/dialoged/docs/*.gif $(DISTDIR)/utils/dialoged/docs
+	$(CP_P) $(UTILSDIR)/hhp2cached/Makefile.in $(DISTDIR)/utils/hhp2cached
+	$(CP_P) $(UTILSDIR)/hhp2cached/*.cpp $(DISTDIR)/utils/hhp2cached
+	$(CP_P) $(UTILSDIR)/hhp2cached/*.rc $(DISTDIR)/utils/hhp2cached
 
 	mkdir $(DISTDIR)/utils/helpview
 	mkdir $(DISTDIR)/utils/helpview/src
 	mkdir $(DISTDIR)/utils/helpview/src/bitmaps
-	cp $(UTILSDIR)/helpview/Makefile.in $(DISTDIR)/utils/helpview
-	cp $(UTILSDIR)/helpview/src/*.h $(DISTDIR)/utils/helpview/src
-	cp $(UTILSDIR)/helpview/src/*.cpp $(DISTDIR)/utils/helpview/src
-	cp $(UTILSDIR)/helpview/src/Makefile.in $(DISTDIR)/utils/helpview/src
-	cp $(UTILSDIR)/helpview/src/test.zip $(DISTDIR)/utils/helpview/src
-	cp $(UTILSDIR)/helpview/src/bitmaps/*.xpm $(DISTDIR)/utils/helpview/src/bitmaps
+	$(CP_P) $(UTILSDIR)/helpview/Makefile.in $(DISTDIR)/utils/helpview
+	$(CP_P) $(UTILSDIR)/helpview/src/*.h $(DISTDIR)/utils/helpview/src
+	$(CP_P) $(UTILSDIR)/helpview/src/*.cpp $(DISTDIR)/utils/helpview/src
+	$(CP_P) $(UTILSDIR)/helpview/src/*.rc $(DISTDIR)/utils/helpview/src
+	$(CP_P) $(UTILSDIR)/helpview/src/*.ico $(DISTDIR)/utils/helpview/src
+	$(CP_P) $(UTILSDIR)/helpview/src/readme.txt $(DISTDIR)/utils/helpview/src
+	$(CP_P) $(UTILSDIR)/helpview/src/Makefile.in $(DISTDIR)/utils/helpview/src
+	$(CP_P) $(UTILSDIR)/helpview/src/test.zip $(DISTDIR)/utils/helpview/src
+	$(CP_P) $(UTILSDIR)/helpview/src/bitmaps/*.xpm $(DISTDIR)/utils/helpview/src/bitmaps
+
+	mkdir $(DISTDIR)/utils/wxrc
+	$(CP_P) $(UTILSDIR)/wxrc/Makefile.in $(DISTDIR)/utils/wxrc
+	$(CP_P) $(UTILSDIR)/wxrc/*.cpp $(DISTDIR)/utils/wxrc
+	$(CP_P) $(UTILSDIR)/wxrc/*.rc $(DISTDIR)/utils/wxrc
 
 MISC_DIST: ALL_GUI_DIST
-	mkdir $(DISTDIR)/misc
-	mkdir $(DISTDIR)/misc/afm
-	cp $(MISCDIR)/afm/*.afm  $(DISTDIR)/misc/afm
-	mkdir $(DISTDIR)/misc/gs_afm
-	cp $(MISCDIR)/gs_afm/*.afm  $(DISTDIR)/misc/gs_afm
 
 INTL_DIST:
 	mkdir $(DISTDIR)/locale
-	cp $(INTLDIR)/Makefile $(DISTDIR)/locale
-	cp $(INTLDIR)/*.po $(DISTDIR)/locale
-	-cp $(INTLDIR)/*.mo $(DISTDIR)/locale
+	$(CP_P) $(INTLDIR)/Makefile $(DISTDIR)/locale
+	$(CP_P) $(INTLDIR)/*.po $(DISTDIR)/locale
+	-$(CP_P) $(INTLDIR)/*.mo $(DISTDIR)/locale
+	subdirs=`cd $(INTLDIR) && ls */*.po | sed 's|/.*||' | uniq`; \
+	for dir in "$$subdirs"; do                                   \
+	    mkdir $(DISTDIR)/locale/$$dir;                           \
+	    $(CP_P) $(INTLDIR)/$$dir/*.[pm]o $(DISTDIR)/locale/$$dir;     \
+	done
 
 MANUAL_DIST:
 	mkdir $(DISTDIR)/docs
-	mkdir $(DISTDIR)/docs/latex
-	mkdir $(DISTDIR)/docs/latex/wx
-	cp $(DOCDIR)/latex/wx/*.tex $(DISTDIR)/docs/latex/wx
-	cp $(DOCDIR)/latex/wx/*.inc $(DISTDIR)/docs/latex/wx
-	cp $(DOCDIR)/latex/wx/*.gif $(DISTDIR)/docs/latex/wx
-	cp $(DOCDIR)/latex/wx/*.ini $(DISTDIR)/docs/latex/wx
-	cp $(DOCDIR)/latex/wx/*.bib $(DISTDIR)/docs/latex/wx
-	cp $(DOCDIR)/latex/wx/*.sty $(DISTDIR)/docs/latex/wx
-
-# this target does not generate a complete wxPython dist, it only includes
-# those files needed for the Debian source package.
-# see utils/wxPython/distrib for scripts to make a proper wxPython dist.
+	mkdir $(DISTDIR)/docs/doxygen
+	mkdir $(DISTDIR)/docs/doxygen/groups
+	mkdir $(DISTDIR)/docs/doxygen/images
+	mkdir $(DISTDIR)/docs/doxygen/images/stock
+	mkdir $(DISTDIR)/docs/doxygen/images/wxgtk
+	mkdir $(DISTDIR)/docs/doxygen/images/wxmac
+	mkdir $(DISTDIR)/docs/doxygen/images/wxmsw
+	mkdir $(DISTDIR)/docs/doxygen/mainpages
+	mkdir $(DISTDIR)/docs/doxygen/overviews
+	$(CP_P) $(DOCDIR)/doxygen/* $(DISTDIR)/docs/doxygen
+	$(CP_P) $(DOCDIR)/doxygen/groups/*.h $(DISTDIR)/docs/doxygen/groups
+	$(CP_P) $(DOCDIR)/doxygen/mainpages/*.h $(DISTDIR)/docs/doxygen/mainpages
+	$(CP_P) $(DOCDIR)/doxygen/overviews/*.h $(DISTDIR)/docs/doxygen/overviews
+	$(CP_P) $(DOCDIR)/doxygen/images/*.??? $(DISTDIR)/docs/doxygen/images
+	$(CP_P) $(DOCDIR)/doxygen/images/wxgtk/*.??? $(DISTDIR)/docs/doxygen/images/stock
+	$(CP_P) $(DOCDIR)/doxygen/images/wxgtk/*.??? $(DISTDIR)/docs/doxygen/images/wxgtk
+	$(CP_P) $(DOCDIR)/doxygen/images/wxmac/*.??? $(DISTDIR)/docs/doxygen/images/wxmac
+	$(CP_P) $(DOCDIR)/doxygen/images/wxmsw/*.??? $(DISTDIR)/docs/doxygen/images/wxmsw
+	mkdir $(DISTDIR)/interface
+	mkdir $(DISTDIR)/interface/wx
+	mkdir $(DISTDIR)/interface/wx/aui
+	mkdir $(DISTDIR)/interface/wx/generic
+	mkdir $(DISTDIR)/interface/wx/html
+	mkdir $(DISTDIR)/interface/wx/msw
+	mkdir $(DISTDIR)/interface/wx/msw/ole
+	mkdir $(DISTDIR)/interface/wx/protocol
+	mkdir $(DISTDIR)/interface/wx/propgrid
+	mkdir $(DISTDIR)/interface/wx/richtext
+	mkdir $(DISTDIR)/interface/wx/stc
+	mkdir $(DISTDIR)/interface/wx/xml
+	mkdir $(DISTDIR)/interface/wx/xrc
+	$(CP_P) $(IFACEDIR)/wx/*.h $(DISTDIR)/interface/wx
+	$(CP_P) $(IFACEDIR)/wx/aui/*.h $(DISTDIR)/interface/wx/aui
+	$(CP_P) $(IFACEDIR)/wx/generic/*.h $(DISTDIR)/interface/wx/generic
+	$(CP_P) $(IFACEDIR)/wx/html/*.h $(DISTDIR)/interface/wx/html
+	$(CP_P) $(IFACEDIR)/wx/msw/*.h $(DISTDIR)/interface/wx/msw
+	$(CP_P) $(IFACEDIR)/wx/msw/ole/*.h $(DISTDIR)/interface/wx/msw/ole
+	$(CP_P) $(IFACEDIR)/wx/protocol/*.h $(DISTDIR)/interface/wx/protocol
+	$(CP_P) $(IFACEDIR)/wx/propgrid/*.h $(DISTDIR)/interface/wx/propgrid
+	$(CP_P) $(IFACEDIR)/wx/richtext/*.h $(DISTDIR)/interface/wx/richtext
+	$(CP_P) $(IFACEDIR)/wx/stc/*.h $(DISTDIR)/interface/wx/stc
+	$(CP_P) $(IFACEDIR)/wx/xml/*.h $(DISTDIR)/interface/wx/xml
+	$(CP_P) $(IFACEDIR)/wx/xrc/*.h $(DISTDIR)/interface/wx/xrc
+
+
+# Copy all the files from wxPython needed for the Debian source package,
+# and then remove some that are not needed.
 PYTHON_DIST:
-	mkdir $(DISTDIR)/wxPython
-	mkdir $(DISTDIR)/wxPython/contrib
-	mkdir $(DISTDIR)/wxPython/contrib/dllwidget
-	mkdir $(DISTDIR)/wxPython/contrib/gizmos
-	mkdir $(DISTDIR)/wxPython/contrib/glcanvas
-	mkdir $(DISTDIR)/wxPython/contrib/glcanvas/gtk
-	mkdir $(DISTDIR)/wxPython/contrib/ogl
-	mkdir $(DISTDIR)/wxPython/contrib/stc
-	mkdir $(DISTDIR)/wxPython/contrib/stc/gtk
-	mkdir $(DISTDIR)/wxPython/contrib/xrc
-	mkdir $(DISTDIR)/wxPython/demo
-	mkdir $(DISTDIR)/wxPython/demo/bitmaps
-	mkdir $(DISTDIR)/wxPython/demo/bmp_source
-	mkdir $(DISTDIR)/wxPython/demo/data
-	mkdir $(DISTDIR)/wxPython/demo/dllwidget
-	mkdir $(DISTDIR)/wxPython/src
-	mkdir $(DISTDIR)/wxPython/src/gtk
-	mkdir $(DISTDIR)/wxPython/scripts
-	mkdir $(DISTDIR)/wxPython/wxPython
-	mkdir $(DISTDIR)/wxPython/wxPython/lib
-	mkdir $(DISTDIR)/wxPython/wxPython/lib/PyCrust
-	mkdir $(DISTDIR)/wxPython/wxPython/lib/editor
-	mkdir $(DISTDIR)/wxPython/wxPython/lib/mixins
-	mkdir $(DISTDIR)/wxPython/wxPython/tools
-	mkdir $(DISTDIR)/wxPython/wxPython/tools/XRCed
-
-	cp $(WXDIR)/wxPython/*.txt $(DISTDIR)/wxPython
-	cp $(WXDIR)/wxPython/*.py $(DISTDIR)/wxPython
-	cp $(WXDIR)/wxPython/setup.cfg $(DISTDIR)/wxPython
-	cp $(WXDIR)/wxPython/MANIFEST.in $(DISTDIR)/wxPython
-	cp $(WXDIR)/wxPython/contrib/dllwidget/*.{py,cpp,h,i} $(DISTDIR)/wxPython/contrib/dllwidget
-	cp $(WXDIR)/wxPython/contrib/gizmos/*.{py,cpp,i} $(DISTDIR)/wxPython/contrib/gizmos
-	-cp $(WXDIR)/wxPython/contrib/glcanvas/* $(DISTDIR)/wxPython/contrib/glcanvas
-	cp $(WXDIR)/wxPython/contrib/glcanvas/gtk/glcanvas.* $(DISTDIR)/wxPython/contrib/glcanvas/gtk
-	-cp $(WXDIR)/wxPython/contrib/ogl/* $(DISTDIR)/wxPython/contrib/ogl
-	-cp $(WXDIR)/wxPython/contrib/stc/* $(DISTDIR)/wxPython/contrib/stc
-	-cp $(WXDIR)/wxPython/contrib/stc/gtk/* $(DISTDIR)/wxPython/contrib/stc/gtk
-	-cp $(WXDIR)/wxPython/contrib/xrc/xrc.* $(DISTDIR)/wxPython/contrib/xrc
-	-cp $(WXDIR)/wxPython/demo/* $(DISTDIR)/wxPython/demo
-	-cp $(WXDIR)/wxPython/demo/bitmaps/* $(DISTDIR)/wxPython/demo/bitmaps
-	-cp $(WXDIR)/wxPython/demo/bmp_source/* $(DISTDIR)/wxPython/demo/bmp_source
-	-cp $(WXDIR)/wxPython/demo/data/* $(DISTDIR)/wxPython/demo/data
-	-cp $(WXDIR)/wxPython/demo/dllwidget/Makefile $(DISTDIR)/wxPython/demo/dllwidget
-	-cp $(WXDIR)/wxPython/demo/dllwidget/test_* $(DISTDIR)/wxPython/demo/dllwidget
-	-cp $(WXDIR)/wxPython/scripts/* $(DISTDIR)/wxPython/scripts
-	-cp $(WXDIR)/wxPython/src/* $(DISTDIR)/wxPython/src
-	cp $(WXDIR)/wxPython/src/gtk/*.py $(DISTDIR)/wxPython/src/gtk
-	cp $(WXDIR)/wxPython/src/gtk/*.cpp $(DISTDIR)/wxPython/src/gtk
-	cp $(WXDIR)/wxPython/wxPython/lib/*.py $(DISTDIR)/wxPython/wxPython/lib
-	cp $(WXDIR)/wxPython/wxPython/lib/PyCrust/*.py $(DISTDIR)/wxPython/wxPython/lib/PyCrust
-	cp $(WXDIR)/wxPython/wxPython/lib/editor/*.py $(DISTDIR)/wxPython/wxPython/lib/editor
-	cp $(WXDIR)/wxPython/wxPython/lib/mixins/*.py $(DISTDIR)/wxPython/wxPython/lib/mixins
-	cp $(WXDIR)/wxPython/wxPython/tools/*.py $(DISTDIR)/wxPython/wxPython/tools
-	cp $(WXDIR)/wxPython/wxPython/tools/XRCed/*.{py,ico,sh,xrc} $(DISTDIR)/wxPython/wxPython/tools/XRCed
+	for dir in `grep -v '#' $(WXDIR)/wxPython/distrib/DIRLIST`; do \
+		echo "Copying dir: $$dir..."; \
+		mkdir $(DISTDIR)/$$dir; \
+		$(CP_P) $(WXDIR)/$$dir/* $(DISTDIR)/$$dir > /dev/null 2>&1; \
+	done; \
+	\
+	find $(DISTDIR)/wxPython -name "*~"           > RM_FILES; \
+	find $(DISTDIR)/wxPython -name "*.pyc"       >> RM_FILES; \
+	find $(DISTDIR)/wxPython -name "*.bat"       >> RM_FILES; \
+	find $(DISTDIR)/wxPython -name "core"        >> RM_FILES; \
+	find $(DISTDIR)/wxPython -name "core.[0-9]*" >> RM_FILES; \
+	find $(DISTDIR)/wxPython -name "*.orig"      >> RM_FILES; \
+	find $(DISTDIR)/wxPython -name "*.rej"       >> RM_FILES; \
+	for f in `cat RM_FILES`; do rm $$f; done; \
+	rm RM_FILES
+
 
 distrib_clean:
 	$(RM) -r _dist_dir
@@ -1044,7 +787,7 @@ distrib_clean:
 # VZ: the -only targets allow to do "make dist bzip-dist-only" without copying
 #     the files twice
 dist-only:
-	@echo "*** Creating wxWindows distribution in $(DISTDIR)..."
+	@echo "*** Creating wxWidgets distribution in $(DISTDIR)..."
 	@cd _dist_dir && tar ch $(DISTDIRNAME) | gzip -f9 > ../$(WXARCHIVE);
 	@if test "$(USE_GUI)" = 1; then \
 	cd $(DISTDIR); \
@@ -1058,13 +801,15 @@ dist-only:
 	mv wxDemos-$(WX_VERSION) demos; \
 	fi
 
-dist: @GUIDIST@
-	@echo "*** Creating wxWindows distribution in $(DISTDIR)..."
+distdir: @GUIDIST@
+	@echo "*** Creating wxWidgets distribution in $(DISTDIR)..."
 	@# now prune away a lot of the crap included by using cp -R
 	@# in other dist targets.
 	find $(DISTDIR) \( -name "CVS" -o -name ".cvsignore" -o -name "*.dsp" -o -name "*.dsw" -o -name "*.hh*" -o \
-			\( -name "makefile.*" -a ! -name "makefile.unx" \) \) \
-			-print0 | xargs -0 rm -rf
+			\( -name "makefile.*" -a ! -name "makefile.gcc" -a ! -name "makefile.unx" \) \) \
+			-print | egrep -v '/samples/.*\.hh.$$' | xargs rm -rf
+
+dist: distdir
 	@cd _dist_dir && tar ch $(DISTDIRNAME) | gzip -f9 > ../$(WXARCHIVE);
 	@if test "$(USE_GUI)" = 1; then \
 	cd $(DISTDIR); \
@@ -1079,7 +824,7 @@ dist: @GUIDIST@
 	fi
 
 bzip-dist-only:
-	@echo "*** Creating wxWindows distribution in $(DISTDIR)..."
+	@echo "*** Creating wxWidgets distribution in $(DISTDIR)..."
 	@cd _dist_dir && tar ch $(DISTDIRNAME) | bzip2 -f9 > ../$(WXARCHIVE_BZIP);
 	@if test "$(USE_GUI)" = 1; then \
 	cd $(DISTDIR); \
@@ -1094,7 +839,7 @@ bzip-dist-only:
 	fi
 
 bzip-dist: @GUIDIST@
-	@echo "*** Creating wxWindows distribution in $(DISTDIR)..."
+	@echo "*** Creating wxWidgets distribution in $(DISTDIR)..."
 	@cd _dist_dir && tar ch $(DISTDIRNAME) | bzip2 -f9 > ../$(WXARCHIVE_BZIP)
 	@if test "$(USE_GUI)" = 1; then \
 	cd $(DISTDIR); \
@@ -1106,36 +851,56 @@ bzip-dist: @GUIDIST@
 	mv wxDemos demos; \
 	fi
 
-# RR: Copy text and binary data separatly
-win-dist: MSW_ZIP_TEXT_DIST
-	@echo "*** Creating wxWindows ZIP distribution in $(DISTDIR)..."
+win-dist: MSW_ZIP_TEXT_DIST SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST INTL_DIST
+# RR: copy VC files common to all samples in a general way
+	for s in `find $(SAMPDIR) $(SAMPDIR)/html $(SAMPDIR)/mobile $(SAMPDIR)/opengl \
+		    -mindepth 1 -maxdepth 1 -type d -not -name CVS`; do \
+	    t="$(DISTDIR)/samples/`echo $$s | sed 's@$(SAMPDIR)/@@'`"; \
+	    $(CP_P) \
+		    `find $$s -maxdepth 1 -name '*.dsp' -o -name '*.vcproj'` $$t; \
+	done
+# RR: Copy text and binary data separately
+	@echo "*** Creating wxWidgets ZIP distribution in $(DISTDIR)..."
 	@cd _dist_dir && mv $(DISTDIRNAME) wxMSW
 	@cd _dist_dir && zip -r -l  ../$(WXARCHIVE_ZIP) *
-	cp $(INCDIR)/wx/msw/*.cur _dist_dir/wxMSW/include/wx/msw
-	cp $(INCDIR)/wx/msw/*.ico _dist_dir/wxMSW/include/wx/msw
-	cp $(INCDIR)/wx/msw/*.bmp _dist_dir/wxMSW/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.cur _dist_dir/wxMSW/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.ico _dist_dir/wxMSW/include/wx/msw
+	$(CP_P) $(INCDIR)/wx/msw/*.bmp _dist_dir/wxMSW/include/wx/msw
 	@cd _dist_dir && zip -r ../$(WXARCHIVE_ZIP) wxMSW/include/wx/msw/*.cur
 	@cd _dist_dir && zip -r ../$(WXARCHIVE_ZIP) wxMSW/include/wx/msw/*.ico
 	@cd _dist_dir && zip -r ../$(WXARCHIVE_ZIP) wxMSW/include/wx/msw/*.bmp
 
+debian-dist: DEBIAN_SOURCE_DIR = $(WXDIR)/../wxwidgets@WX_RELEASE@@WX_FLAVOUR@-@WX_SUBVERSION@
 debian-dist: debian-native-dist debian-msw-dirs MSW_DIST
 	mkdir $(DISTDIR)/debian
-	-cp $(WXDIR)/debian/* $(DISTDIR)/debian
-	cp $(DOCDIR)/licence.txt $(DISTDIR)/docs
-	cp $(DOCDIR)/licendoc.txt $(DISTDIR)/docs
-	cp $(DOCDIR)/preamble.txt $(DISTDIR)/docs
+	-$(CP_P) $(WXDIR)/debian/* $(DISTDIR)/debian
+	$(CP_P) $(DOCDIR)/licence.txt $(DISTDIR)/docs
+	$(CP_P) $(DOCDIR)/licendoc.txt $(DISTDIR)/docs
+	$(CP_P) $(DOCDIR)/preamble.txt $(DISTDIR)/docs
 	rm -f $(DISTDIR)/*.spec
 
 	@# now prune away a lot of the crap included by using cp -R
 	@# in other dist targets.  Ugly and hardly portable but it
 	@# will run on any Debian box and that's enough for now.
 
-	find $(DISTDIR) \( -name "CVS" -o -name ".cvsignore" -o -name "*.dsp" -o -name "*.dsw" -o -name "*.hh*" -o \
-			\( -name "makefile.*" -a ! -name "makefile.unx" \) \) \
-			-print0 | xargs -0 rm -rf
+	find $(DISTDIR) \( -name "CVS" -o -name ".cvsignore" -o -name "*.dsp"    \
+			   -o -name "*.dsw" -o -name "*.hh*" -o -name "*.mms"    \
+			   -o -name "*.mcp" -o -name "*M*.xml" -o -name "*.r"    \
+			   -o -name "*.pro"  \
+			   -o -name "*.vpj"  \
+			   -o \( -name "makefile.*" -a ! -name "makefile.unx" \) \
+			\) -print0 | xargs -0 rm -rf
+
+	rm -rf $(DISTDIR)/wxPython/SWIG
+	rm -rf $(DISTDIR)/wxPython/distrib
+	rm -rf $(DISTDIR)/wxPython/distutils
+	rm -rf $(DISTDIR)/wxPython/samples
+	rm -rf $(DISTDIR)/wxPython/contrib/iewin
+	find $(DISTDIR)/wxPython \( -name "mac" -o -name "msw" \) -print0 | xargs -0 rm -rf
+
+	rm -rf $(DEBIAN_SOURCE_DIR)
+	mv $(DISTDIR) $(DEBIAN_SOURCE_DIR)
 
-	rm -rf $(WXDIR)/../wxwindows$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER)-$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER).$(WX_RELEASE_NUMBER)
-	mv $(DISTDIR) $(WXDIR)/../wxwindows$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER)-$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER).$(WX_RELEASE_NUMBER)
 
 debian-native-dist: @GUIDIST@ UNIV_DIST MANUAL_DIST PYTHON_DIST