Make.proto
author Claus Gittinger <cg@exept.de>
Thu, 12 Jun 2014 09:11:17 +0200
changeset 1351 3ef333479676
parent 1312 6b35651ab77e
child 1356 1b5c8313260e
permissions -rw-r--r--
added rules to generate a dmg (MAC)

#
# $Header$
#
# ATTENTION: this Make.proto is still maintained manually.
# i.e. not generated from the ApplicationDefinition
#
# -------------- no need to change anything below ----------
#
# This makefile generatfes the smalltalk executable itself;
# it can be invoked as:
#
#    make
#       generates a standard smalltalk, and sets up symbolic links
#       for local execution.
#
#    make smalltalk
#       generates a standard smalltalk executable only
#
#    make smalltalk ADDITIONAL_OBJS=<list of object files> \
#                   ADDITIONAL_CLASSES=<list of class names>
#       generates a customized executable, containing additional
#       class (list of classes) which are to be found in the object
#       files (list of object files).
#       Example:
#           make smalltalk ADDITIONAL_OBJS=Foo.o ADDITIONAL_CLASSES=Foo
#
# No longer maintained (make could fail):
#
#    make stx_static (ELF based systems only):
#       generates a smalltalk with statically linked
#       class libs. (still uses dynamic unix libraries)
#
#    make stx_fullstatic (ELF based systems only):
#       generates a fully statically linked smalltalk
#       (even system libs are linked in)
#

TOP=../..
SUBDIRS=
SUPPRESS_LOCAL_ABBREVS="yes"
#
# these are installed when installing their
# package dir ...
#
SUPPRESS_INSTALL_BITMAPS="yes"
SUPPRESS_INSTALL_RESOURCES="yes"

INSTALLBIN_DIR=$(INSTALLBASE)/bin
INSTALLLIB_DIR=$(INSTALLBASE)/lib

RCSSOURCES=*.rc patches Make.proto
LINKSOURCES=*.rc patches Make.proto

DELIVERBINARIES=stx

#
# other definitions to use for things compiled here
#
LOCALDEFS=-DDEBUG
#ST_LDFLAG=

# st files found here wont go into the global abbrev list
SUPPRESS_LOCAL_ABBREVS=1

#
# this defines where the show starts
#
STARTUP_CLASS="Smalltalk"
STARTUP_SELECTOR="start"

#
# including your own private lib in the make process and executable:
#
# for example, if you have a libprivate directory,
# where libprivate.obj is built, and that one should be included,
# add lines as below to your configuration/.../defines file:
#    PRIVATEOBJ=$(TOP)/libprivate/libprivate.obj
#    PRIVATE_SO=$(TOP)/libprivate/libprivate.so
#    PRIVATELIBS=libprivate

# This defines which library packages are linked in.
# See COMMON/defines for what those XXX_LIB etc. are
#
# MINI_LIB        = libbasic, libcomp $(PRIVATELIBS)
# FUNDAMENTAL_LIB = above PLUS libview, libwidg
# DEVELOP_LIB     = above PLUS libtool refactoring
# STANDARD_LIB    = above PLUS libwidg2, libdbase
# EXTENDED_LIB    = above PLUS libwidg3

CLASSLIBDIRS    =   $(STANDARD_DIR) $(PRIVATE_CLASSLIBDIRS) $(ARCH_CLASSLIBDIRS)
LIBOBJS         =   $(STANDARD_LIB) $(PRIVATE_OBJS)
LINK_LIBOBJS    =   $(LINK_STANDARD_LIB) $(PRIVATE_OBJS)
STATIC_LIBOBJS  =   $(STATIC_STANDARD_LIB) $(PRIVATE_OBJS)
LIBLIST         =   $(STANDARD_LIST) $(PRIVATE_LIBS)

# WORKSTAT1       =   XWorkstation
# WORKSTAT2       =   GLXWorkstation
EXTRA_UI_CLASSES=   $(WORKSTAT1) $(WORKSTAT2)

EXTRA_UI_OBJ=\
	$(OPTIONAL_XWORKSTATION_OBJ)   \
	$(OPTIONAL_GLXWORKSTATION_OBJ)

STATIC_EXTRA_UI_OBJ=\
	$(STATIC_OPTIONAL_XWORKSTATION_OBJ) \
	$(STATIC_OPTIONAL_GLXWORKSTATION_OBJ)

EXTRA_LINK_UI_OBJ=\
	$(OPTIONAL_LINK_XWORKSTATION_OBJ)   \
	$(OPTIONAL_LINK_GLXWORKSTATION_OBJ)

OPTIONAL_LIBGL_TARGET   =   $(LIB_GL_TARGET)
OPTIONAL_GL_LIB         =   $(LIB_GL)
OPTIONAL_LINK_GL_LIB    =   $(LINK_LIB_GL)


# ---------------------- end additional stuff --------------------


#
# default target: create the TARGET (usually smalltalk)
#
all::   $(TARGET)$(TARGET_RULE_EXTENSION) symlinks
	@-if [ "$(ALSO_MAKE_STATIC_TARGET)" = "1" ]; then \
	    mv stx stx_dynamic; \
	    $(MAKE) stx_fullstatic; \
	fi

#
# same, force recreation of link-directories
#
allNew: $(TARGET)$(TARGET_RULE_EXTENSION) misc
	@-if [ "$(ALSO_MAKE_STATIC_TARGET)" = "1" ]; then \
	    mv stx stx_dynamic; \
	    $(MAKE) stx_fullstatic; \
	fi

#
# create symbolic links to sources, resources etc.
# normally (on an end-user system) these should go into usr/local/lib/smalltalk
#
symlinks:   includeLink misc

#
# the standard smalltalk executable:
# basic classes + view & widgets + tools + persistency
#
smalltalk:: $(TARGET)$(TARGET_RULE_EXTENSION)

#
# a specialized mySmalltalk with additional class(es) and additional
# C-library builtIn
#
MY_ADDITIONAL_OBJECTS=Foo.$(O)
MY_ADDITIONAL_CLASSES=Foo
MY_ADDITIONAL_LIBS=$(TOP)/../myClasses/libFoo.a

mySmalltalk: $(MY_ADDITIONAL_OBJECTS)
	@echo "making special smalltalk ..."
	@$(MAKE) linkTarget \
		LIBOBJS="$(LIBOBJS) $(EXTRA_UI_OBJ)" \
		LINK_OBJS="$(LINK_OBJS)" \
		LINK_LIBOBJS="$(LINK_LIBOBJS) $(EXTRA_LINK_UI_OBJ)" \
		LINK_LIBRUN="$(LINK_LIBRUN)" \
		LIBRUN="$(LIBRUN)" \
		ADDITIONAL_OBJS=$(MY_ADDITIONAL_OBJECTS) \
		ADDITIONAL_CLASSES=$(MY_ADDITIONAL_CLASSES) \
		ADDITIONAL_LIBS=$(MY_ADDITIONAL_LIBS) \
		LIBLIST="$(LIBLIST)"
	@$(MAKE) removeLinkLibs

#
# by default, the TARGET rule calls for one of the
# rules below. Which one is controlled by the
# architecture-specific definition file.
#
$(TARGET)_shared:
	@echo "making shared library linked smalltalk ..."
	echo EXTRA_LINK_UI_OBJ = $(EXTRA_LINK_UI_OBJ)
	$(MAKE) linkTarget \
		LIBOBJS="$(LIBOBJS) $(EXTRA_UI_OBJ)" \
		LINK_LIBOBJS="$(LINK_LIBOBJS) $(EXTRA_LINK_UI_OBJ)" \
		LINK_LIBRUN=$(LINK_LIBRUN) \
		LIBRUN=$(LIBRUN) \
		ADDITIONAL_OBJS=$(ADDITIONAL_OBJS) \
		ADDITIONAL_CLASSES=$(ADDITIONAL_CLASSES) \
		LIBLIST="$(LIBLIST) $(EXTRA_UI_CLASSES)"

$(TARGET)_static: $(STATIC_LIBRUN)
	@echo "making statically linked smalltalk ..."
	@$(MAKE) linkTarget \
		LIBOBJS="" \
		LINK_OBJS="$(STATIC_OBJS) $(STATIC_EXTRA_UI_OBJ)" \
		LINK_LIBOBJS="$(STATIC_LIBOBJS) $(STATIC_EXTRA_UI_OBJ)" \
		LINK_LIBRUN="$(STATIC_LIBRUN)" \
		LIBRUN="$(STATIC_LIBRUN)" \
		ADDITIONAL_OBJS=$(STATIC_ADDITIONAL_OBJS) \
		ADDITIONAL_CLASSES=$(STATIC_ADDITIONAL_CLASSES) \
		EXTRA_LIBS="$(STATIC_EXTRA_LIBS)" \
		LIBLIST="$(LIBLIST) $(EXTRA_UI_CLASSES)"
	@$(MAKE) removeLinkLibs

$(TARGET)_fullstatic: $(STATIC_LIBRUN)
	if [ -f $(LIBRUNDIR)/librun.a ]; then \
	    echo "librun.a already made."; \
	else \
	    cd $(LIBRUNDIR) && $(MAKE) librun.a; \
	fi
	@echo "making full statically linked smalltalk ..."
	@$(MAKE) linkTarget \
		LIBOBJS="" \
		LINK_OBJS="$(STATIC_OBJS) $(STATIC_EXTRA_UI_OBJ)" \
		LINK_LIBOBJS="$(STATIC_LIBOBJS) $(STATIC_EXTRA_UI_OBJ)" \
		LINK_LIBRUN="$(STATIC_LIBRUN)" \
		LIBRUN="$(STATIC_LIBRUN)" \
		ADDITIONAL_OBJS=$(STATIC_ADDITIONAL_OBJS) \
		ADDITIONAL_CLASSES=$(STATIC_ADDITIONAL_CLASSES) \
		LIBLIST="$(LIBLIST) $(EXTRA_UI_CLASSES)" \
		MATHLIB="$(STATIC_MATHLIB)" \
		EXTRA_LIBS="$(STATIC_EXTRA_LIBS)" \
		SYSLIBS="$(STATIC_SYSLIBS)"

	@$(MAKE) removeLinkLibs

AIX_SHARED_LIBOBJS= \
	$(LIBBASICDIR)/libstx_libbasic.so \
	$(LIBCOMPDIR)/libstx_libcomp.so \
	$(LIBVIEWDIR)/libstx_libview.so \
	$(LIBVIEW2DIR)/libstx_libview2.so \
	$(LIBWIDGDIR)/libstx_libwidg.so \
	$(LIBTOOLDIR)/libstx_libtool.so \
	$(LIBBASIC2DIR)/libstx_libbasic2.so \
	$(LIBBASIC3DIR)/libstx_libbasic3.so \
	$(LIBHTMLDIR)/libstx_libhtml.so \
	$(LIBWIDG2DIR)/libstx_libwidg2.so \
	$(PERSDIR)/libstx_libdbase.so

aix:
	    @echo "making shared library linked smalltalk for aix ..."
	    @$(MAKE) linkTarget \
		LIBOBJS="$(AIX_SHARED_LIBOBJS)" \
		EXTRA_OBJ="$(EXTRA_OBJ)" \
		EXTRA_LINK_OBJ="$(EXTRA_LINK_OBJ)" \
		LIBLIST="$(LIBLIST)" \
		LINK_LIBRUN=$(LINK_LIBDIR)librun.so \
		LIBRUN=$(LIBRUNDIR)/librun.so

aix_librun_only:
	    @echo "making partial shared library linked smalltalk ..."
	    @$(MAKE) linkTarget LIBRUN=$(LIBRUNDIR)/librun.so

forceStatic:
	    (cd $(LIBBASICDIR) ; $(MAKE) libbasicInit.o)
	    -rm -f $(LIBBASICDIR)/libbasic.o
	    $(MAKE) linkTarget LIBRUN="$(LIBRUNDIR)/*.o" LIBBASIC="$(LIBBASICDIR)/*.o"

$(LIBVIEWDIR)/XWorkstation.o:
	cd $(LIBVIEWDIR) && $(MAKE) XWorkstation.o

$(LIBVIEWDIR)/XWorkstation.so:
	cd $(LIBVIEWDIR) && $(MAKE) XWorkstation.so

$(LIBVIEWDIR)/GLXWorkstation.o:
	cd $(LIBVIEWDIR) && $(MAKE) GLXWorkstation.o

$(LIBVIEWDIR)/GLXWorkstation.so:
	cd $(LIBVIEWDIR) && $(MAKE) GLXWorkstation.so


#
# dont want these ttt-tempfile abbrevs to be included ...
#
abbrev.stc::
	    @-rm -f ttt*.*

#
# currently, abbrev,stc must be made cross
#
ntAbbrev.stc: include/abbrev.stc
	cp include/abbrev.stc ntAbbrev.stc

#
# dont want local abbrevs to be included ...
#
collectAbbrev::
	    @-rm -f abbrev.stc
	    @-if [ "$(SUPPRESS_ABBREVS)" = "" ]; then \
	      if [ -d include ]; then \
		if [ ! -f include/abbrev.stc ]; then \
		    (cd include; $(LNS) ../$(INCLUDE)/abbrev.stc . );   \
		fi; \
	      fi;   \
	    fi

collectAutoload::
	    @-rm -f autoloadList.stc
	    @-if [ -d include ]; then \
		if [ ! -f include/autoloadList.stc ]; then \
		    (cd include; $(LNS) ../$(INCLUDE)/autoloadList.stc . ); \
		fi;                                                             \
	    fi

classes::
	    test -d classes || mkdir classes
	    -for i in source/*.st; do \
		stcomp -i stcomp.img $$i; \
	    done

include:    includeLink

misc:       examples

examples:
	    test -d examples || mkdir examples examples/3D
	    -cd examples/3D && $(LNS) ../../$(TOP)/clients/GLdemos/*.data . 2>/dev/null

#
# clean out intermediate chunk
#
cleanjunk::
	    @-rm -f a.out SymbolTable ttt main.c
	    @-rm -f classList.c fclassList.c nxclassList.c basicclassList.c
	    @-rm -f betaclassList.c miniList.c tinyList.c
	    @-rm -f modulList.stc modulList.c modulList.o
	    @-rm -f pers* pers2 data data2 data.boss tetris.scores

cleanlinks:
	    @-rm -rf source bitmaps binaries resources examples include

#
# clean out all that is not needed to run smalltalk
#
clean::
	    @-rm -f a.out SymbolTable ttt main.c
	    @-rm -f modulList.stc modulList.c modulList.o
	    @-rm -f classList.stc classList.c classList.o
	    @-rm -f fclassList.stc fclassList.c
	    @-rm -f nxclassList.stc nxclassList.c
	    @-rm -f basicclassList.stc basicclassList.c
	    @-rm -f betaclassList.stc betaclassList.c
	    @-rm -f miniList.stc miniList.c
	    @-rm -f tinyList.stc tinyList.c
	    @-rm -f pers pers2 data data2 data.boss tetris.scores
	    @-rm -f st.img st2.img st.img.sav errorOutput
	    @-rm -f .stx*.mem
	    @-rm -rf modules stxtmp*

#
# clean out all that can be regenerated
#
clobber::
	    @$(MAKE) removeLinkLibs
	    @-rm -f modulList.stc modulList.c modulList.o
	    @-rm -rf resources source bitmaps include examples lib
	    @-rm -f stx st.img st.img.sav st.sav
	    @-rm -f main.o
	    @-rm -rf modules
	    @-rm -rf stxtmp_*

main.o::    $(INCLUDE)/stc.h $(INCLUDE)/stcIntern.h Make.proto

installProgsIf:: $(INSTALLBIN_DIR)
	@-echo "installing smalltalk..."
	$(INSTALL_SCRIPT_CMD) smalltalk $(INSTALLBIN_DIR)
	@-echo "installing stx..."
	$(INSTALL_BIN_CMD) stx $(INSTALLBIN_DIR)
	-strip $(INSTALLBIN_DIR)/stx

installAux:: installRCScripts

installRCScripts::
	@-echo "installing rc scripts..."
	$(INSTALL_AUX_CMD) *.rc $(INSTALLLIB_DIR)
	$(INSTALL_AUX_CMD) *.xpm $(INSTALLLIB_DIR)

DMG_TMP=/tmp/stx_dmg

setup_macosx:
	$(MAKE) newDMG
	$(MAKE) hdUtil

hdUtil:
	rm -f stx.dmg
	hdiutil create -fs HFSX -layout SPUD "stx.dmg" -srcfolder "$(DMG_TMP)" -format UDZO -volname "stx" -quiet

newDMG:
	rm -rf $(DMG_TMP)
	$(MAKE) $(DMG_TMP)

dmg:    $(DMG_TMP)

$(DMG_TMP):
	@-mkdir "$(DMG_TMP)"
	@-mkdir "$(DMG_TMP)"/stx.app
	@-mkdir "$(DMG_TMP)"/stx.app/Contents
	@-mkdir "$(DMG_TMP)"/stx.app/Contents/MacOS
	$(MAKE) dmgBINContents
	$(MAKE) dmgSTXPackages

#
# the actual executable and its binaries
#
dmgBINContents:
	cp "stx" "$(DMG_TMP)"/stx.app/Contents/MacOS/stx
	-cp -r *.so "$(DMG_TMP)"/stx.app/Contents/MacOS/.
	-cp -r symbols.stc "$(DMG_TMP)"/stx.app/Contents/MacOS/.
	-cp -r *.stx "$(DMG_TMP)"/stx.app/Contents/MacOS/.
	-cp -r *.rc "$(DMG_TMP)"/stx.app/Contents/MacOS/.
	-cp -r resources "$(DMG_TMP)"/stx.app/Contents/MacOS/.

#
# sources and all other package stuff
#
dmgSTXPackages: "$(DMG_TMP)/stx.app/Packages"

"$(DMG_TMP)/stx.app/Packages":
	@-mkdir "$(DMG_TMP)"
	@-mkdir "$(DMG_TMP)/stx.app"
	@-mkdir "$(DMG_TMP)/stx.app/Packages"
	@-rm -f stx.dmg
	-cp -r ../../../stx "$(DMG_TMP)/stx.app/Packages/."
	$(MAKE) cleanDMG

cleanDMG:
	$(MAKE) cleanPackages
	$(MAKE) cleanWindowsSpecific
	$(MAKE) cleanNotDelivered
	$(MAKE) cleanUnfinished
	$(MAKE) cleanObsoleteStuff

cleanWindowsSpecific:
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "*.mak" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "*.bat" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "nt.def" -exec rm -f {} \;
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/support/win32

cleanUnfinished:
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/libobjc
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/libdb/nosql/ken
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/libdb/nosql/sedna
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/libdb/libopenDBX
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/goodies/roelTyper
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/goodies/raytracing
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/goodies/imageSegments
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/goodies/hotdraw
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/goodies/goods
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/goodies/gitocello
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/goodies/glorp0_4
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/goodies/constraints
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/goodies/cassovary
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name "not_ported" -exec rm -rf {} \;

cleanNotDelivered:
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name "not_delivered" -exec rm -rf {} \;
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/librt
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/libsnmp

cleanObsoleteStuff:
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/goodies/stx
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/liboracle8
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/support/DLD
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/support/unixware
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/support/db
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name "obsolete" -exec rm -rf {} \;
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name "obsolete_*" -exec rm -rf {} \;
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name "*_old" -exec rm -rf {} \;
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name "*_old2" -exec rm -rf {} \;
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name "*.old" -exec rm -rf {} \;

cleanPackages:
#        (cd "$(DMG_TMP)"/stx.app/Packages/stx ; make cleanjunk)
	(cd "$(DMG_TMP)"/stx.app/Packages/stx/stc/tests ; make clobber)
	mv "$(DMG_TMP)"/stx.app/Packages/stx/librun/main.c "$(DMG_TMP)"/stx.app/Packages/stx/librun/main_c
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/librun/*.c
	mv "$(DMG_TMP)"/stx.app/Packages/stx/librun/main_c "$(DMG_TMP)"/stx.app/Packages/stx/librun/main.c
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/stc/*.c
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/stc/*.y
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/stc/*.l
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/stc/defs.h
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/stc/bin
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/stc/obj
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/stc/tests/*.xc
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/stc/tests/*.c
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/libjava.both
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/libjava.cvs
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/libjava.old
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/librun-*
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/librun_*
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/librun.*
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/libscm.cvs
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/libscm.hg
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/monticello_packages
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/support/tools/splint-*
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/support/tools/cscope-*
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/support/xft
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/support/libjpeg
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/projects/tinytalk
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/projects/minitalk
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/package-cache
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/modules
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/stcTests
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/crashdumps
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/examples
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/expeccoPatches
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/.SandstoneDb
	rm -rf "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/changes_*
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/[A-Z]*.st
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/old_settings.stx
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/*.txt
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/*.uprj
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/*.js
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/evo*.wsp
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/*.html
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/*.log
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/*.png
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/*.swf
	rm -f "$(DMG_TMP)"/stx.app/Packages/stx/projects/smalltalk/test*
	find "$(DMG_TMP)"/stx.app/Packages/stx/projects -name "*.mcz" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx/projects -name "*.sav" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx/projects -name "*.img" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx/projects -name "*.dmg" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx/projects -name "*.chg" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx/projects -name "*.dat" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "cscope.out" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "a.out" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name ".stxgdb" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "*.o" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "*.st-e" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "*.bad" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "*.bak" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "*.sav" -exec rm -f {} \;
	find "$(DMG_TMP)"/stx.app/Packages/stx -name "*.swp" -exec rm -f {} \;
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name "stxtmp_*" -exec rm -f {} \;
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name ".DS_Store" -exec rm -f {} \;
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name "CVS" -exec rm -rf {} \;
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name ".hg" -exec rm -rf {} \;
	-find "$(DMG_TMP)"/stx.app/Packages/stx -name "..hg" -exec rm -rf {} \;