--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Make.proto Sat Dec 11 02:53:38 1993 +0100
@@ -0,0 +1,450 @@
+#
+# %W% %E%
+#
+# -------------- no need to change anything below ----------
+
+OTHERS=-DSTATISTIC -DDEBUG
+OTHERS=-DDEBUG
+SUBDIRS=
+
+CLIENTOBJS=
+
+LIBIBASICOBJ= $(LIBBASICDIR)/i_libbasic$(OBJNAME)
+LIBICOMPOBJ= $(LIBCOMPDIR)/i_libcomp$(OBJNAME)
+LIBIVIEWOBJ= $(LIBVIEWDIR)/i_libview$(OBJNAME)
+LIBIWIDGETOBJ= $(LIBWIDGETDIR)/i_libwidg$(OBJNAME)
+
+LIBOBJ= $(LIBBASICOBJ) $(LIBCOMPOBJ) $(LIBVIEWOBJ) $(LIBWIDGETOBJ) $(LIBRUN)
+LIBIOBJ=$(LIBIBASICOBJ) $(LIBICOMPOBJ) $(LIBIVIEWOBJ) $(LIBIWIDGETOBJ)
+LIBAR= $(LIBBASIC) $(LIBCOMP) $(LIBVIEW) $(LIBWIDG)
+
+FULLLIB=libwidg.a libview.a libcomp.a libbasic.a
+
+TOP=..
+
+STARTUP_CLASS=Smalltalk
+STARTUP_SELECTOR="start"
+
+all:: $(TARGET) abbrev.stc resources newSource bitmaps binary
+
+allNew: $(TARGET) abbrev.stc newResources newSource newBitmaps binary
+
+smalltalk: main.$(O) classList.$(O) $(LIBOBJS) $(LIBRUN) $(EXTRALIBS)
+ $(LD) $(ST_LDFLAG) $(LDFLAGS) -o smalltalk$(EXE) \
+ $(CRT0) main.$(O) classList.$(O) \
+ $(LIBOBJS) $(EXTRA_OBJ) $(CLIENTOBJS) \
+ ../goodies/Persistency/libdbase$(OBJNAME) \
+ $(LIBRUNDIR)/hidata.$(O) $(LIBRUN) \
+ $(DBLIB) \
+ $(MATHLIB) $(EXTRALIBS) $(SYSLIBS) $(CRTN)
+
+fulltalk: main.$(O) fclassList.$(O) $(LIBOBJS) $(LIBRUN) $(EXTRALIBS)
+ $(LD) $(ST_LDFLAG) $(LDFLAGS) -o smalltalk$(EXE) \
+ $(CRT0) main.$(O) fclassList.$(O) \
+ $(LIBOBJS) $(EXTRA_OBJ) $(CLIENTOBJS) \
+ ../goodies/Persistency/libdbase$(OBJNAME) \
+ ../goodies/Benchmarks/DeltaBlue/libDeltaBlue$(OBJNAME) \
+ ../goodies/Benchmarks/Richards/libRichards$(OBJNAME) \
+ ../goodies/Benchmarks/Self/libSelfBench$(OBJNAME) \
+ ../goodies/Benchmarks/Dhrystones/dhrystones$(OBJNAME) \
+ ../goodies/Benchmarks/misc/libPDBench$(OBJNAME) \
+ $(LIBRUNDIR)/hidata.$(O) $(LIBRUN) \
+ $(DBLIB) \
+ $(MATHLIB) $(EXTRALIBS) $(SYSLIBS) $(CRTN)
+
+minitalk: main.$(O) miniclassList.$(O) $(LIBBASICOBJ) $(LIBCOMPOBJ) $(LIBRUN)
+ $(LD) $(ST_LDFLAG) $(LDFLAGS) -o minitalk$(EXE) \
+ $(CRT0) main.$(O) miniclassList.$(O) \
+ $(LIBBASICDIR)/libbasic$(OBJNAME) \
+ $(LIBCOMPDIR)/libcomp$(OBJNAME) \
+ $(LIBRUNDIR)/hidata.$(O) \
+ $(LIBRUN) $(MATHLIB) $(EXTRALIBS) $(SYSLIBS) $(CRTN)
+
+tinytalk: main.$(O) tinyclassList.$(O) $(LIBRUN) $(FULLLIB)
+ $(LD) $(ST_LDFLAG) $(LDFLAGS) -o tinytalk$(EXE) \
+ $(CRT0) main.$(O) tinyclassList.$(O) \
+ $(FULLLIB) \
+ $(LIBRUNDIR)/hidata.$(O) $(LIBRUN) \
+ $(MATHLIB) $(EXTRALIBS) $(SYSLIBS) $(CRTN)
+
+nxtalk: main.$(O) nxclassList $(LIBBASICOBJ) $(LIBCOMPOBJ) $(LIBRUN)
+ $(LD) $(ST_LDFLAG) $(LDFLAGS) -o nxtalk$(EXE) \
+ $(CRT0) main.$(O) nxclassList.$(O) \
+ $(LIBBASICDIR)/libbasic$(OBJNAME) \
+ $(LIBCOMPDIR)/libcomp$(OBJNAME) \
+ $(LIBVIEWDIR)/libview$(OBJNAME) \
+ $(LIBRUNDIR)/hidata.$(O) \
+ $(LIBRUN) $(MATHLIB) $(EXTRALIBS) $(SYSLIBS) $(CRTN)
+
+smalltalk_8mb: main.$(O) classList.$(O) $(LIBOBJS) $(LIBIOBJ) $(LIBRUN) $(EXTRALIBS)
+ $(LD) $(ST_LDFLAG) $(LDFLAGS) -o smalltalk$(EXE) \
+ $(CRT0) main.$(O) \
+ $(LIBIOBJS) \
+ $(LIBRUNDIR)/hidata.$(O) \
+ $(LIBOBJS) $(LIBRUN) \
+ $(MATHLIB) $(EXTRALIBS) $(SYSLIBS) $(CRTN)
+
+bigtalk: main.$(O) classList.$(O) $(LIBOBJS) $(CLIENTSOBJS) $(LIBRUN) $(EXTRALIBS)
+ $(LD) $(ST_LDFLAG) $(LDFLAGS) -o smalltalk$(EXE) \
+ $(CRT0) main.$(O) \
+ $(LIBOBJS) \
+ $(CLIENTOBJS) \
+ $(LIBRUNDIR)/hidata.$(O) $(LIBRUN) \
+ $(MATHLIB) $(EXTRALIBS) $(SYSLIBS) $(CRTN)
+
+#
+# the following stuff is for transputer (inmos ctools)
+#
+# I had a minitalk running once, but did not update -
+# so it may not work anymore
+#
+centry.lku: globals.$(O) main.$(O) classlist.lnk
+ ilink -KB 500 -I -f /usr/local/inmos/lib/startup.lnk \
+ main.$(O) globals.$(O) \
+ -f classlist.lnk \
+ $(LIBRUNDIR)/hidata.$(O) \
+ $(LIBRUN) $(MATHLIB) $(SYSLIBS) $(CRTN)
+
+puter: centry.lku
+ -cp /usr/local/inmos/lib/linkboot.lib .
+ -cp /usr/local/inmos/lib/sysproc.lib .
+ icollect -T centry.lku
+ mv centry.btl smalltalk.btl
+ -rm linkboot.lib sysproc.lib
+
+classlist.lnk:
+ ls ../libbasic/*.tco > classlist.lnk
+ ls ../libcomp/*.tco >> classlist.lnk
+
+globals.c:
+ echo "#include \"stc.h\" " > globals.c
+ cat $(LIBRUNDIR)/globalData.c \
+ $(LIBBASICDIR)/globalData.c \
+ $(LIBCOMPDIR)/globalData.c | sort | uniq >> globals.c
+
+#
+# end of transputer special
+#
+
+classList: classList.c
+ $(CC) $(_C) $(CFLAGS) classList.c
+ rm -f classList.c
+
+fclassList: fclassList.c
+ $(CC) $(_C) $(CFLAGS) fclassList.c
+ rm -f fclassList.c
+
+nxclassList: nxclassList.c
+ $(CC) $(_C) $(CFLAGS) nxclassList.c
+ rm -f nxclassList.c
+
+miniclassList: miniclassList.c
+ $(CC) $(_C) $(CFLAGS) miniclassList.c
+ rm -f miniclassList.c
+
+tinyclassList: tinyclassList.c
+ $(CC) $(_C) $(CFLAGS) tinyclassList.c
+ rm -f tinyclassList.c
+
+fclassList.c: fclassList.stc
+ $(MAKE) fclassList.stc
+ $(MAKE) classListEdit CLASSLIST=fclassList
+
+miniclassList.c: miniclassList.stc
+ $(MAKE) miniclassList.stc
+ $(MAKE) classListEdit CLASSLIST=miniclassList
+
+nxclassList.c: nxclassList.stc
+ $(MAKE) nxclassList.stc
+ $(MAKE) classListEdit CLASSLIST=nxclassList
+
+tinyclassList.c: tinyclassList.stc
+ $(MAKE) tinyclassList.stc
+ $(MAKE) classListEdit CLASSLIST=tinyclassList
+
+#
+# this creates the class archives
+#
+libbasic.a:
+ $(AR) rv libbasic.a $(LIBBASICDIR)/[A-Z]*.o
+ $(RANLIB) libbasic.a
+
+libcomp.a:
+ $(AR) rv libcomp.a $(LIBCOMPDIR)/[A-Z]*.o
+ $(RANLIB) libcomp.a
+
+libview.a:
+ $(AR) rv libview.a $(LIBVIEWDIR)/[A-Z]*.o
+ $(RANLIB) libview.a
+
+libwidg.a:
+ $(AR) rv libwidg.a $(LIBWIDGETDIR)/[A-Z]*.o
+ $(RANLIB) libwidg.a
+
+#
+# make list of classes for a standard smalltalk
+#
+classList.stc: $(LIBBASICDIR)/classList.stc $(LIBCOMPDIR)/classList.stc \
+ $(LIBVIEWDIR)/classList.stc $(LIBWIDGETDIR)/classList.stc \
+ $(TOP)/goodies/Persistency/classList.stc \
+ $(EXTRACLASSLISTS) $(CLIENTCLASSLISTS)
+ -cat $(LIBBASICDIR)/classList.stc \
+ $(LIBCOMPDIR)/classList.stc \
+ $(LIBVIEWDIR)/classList.stc \
+ $(LIBWIDGETDIR)/classList.stc \
+ $(TOP)/goodies/Persistency/classList.stc \
+ $(EXTRACLASSLISTS) \
+ $(CLIENTCLASSLISTS) > classList.stc
+ -if [ "$(EXTRA_CLASSES)"X != X ]; then \
+ for i in $(EXTRA_CLASSES); do \
+ echo $$i >> classList.stc; \
+ done; \
+ fi
+
+#
+# make list of classes for a standard smalltalk using NeXTStep
+#
+nxclassList.stc:
+ rm -f classList.stc
+ $(MAKE) miniclassList.stc EXTRA_CLASSES='NeXTWorkstation'
+ -cat ../libview/classList.stc >> classList.stc
+
+#
+# make list of classes for a full smalltalk (includes Benchmarks & some goodies)
+#
+fclassList.stc: $(TOP)/libbasic/classList.stc \
+ $(TOP)/libcomp/classList.stc \
+ $(TOP)/libview/classList.stc \
+ $(TOP)/libwidg/classList.stc \
+ $(EXTRACLASSLISTS) $(CLIENTCLASSLISTS) \
+ $(TOP)/goodies/Persistency/classList.stc \
+ $(TOP)/goodies/Benchmarks/DeltaBlue/classList.stc \
+ $(TOP)/goodies/Benchmarks/Richards/classList.stc \
+ $(TOP)/goodies/Benchmarks/Dhrystones/classList.stc
+ -cat $(TOP)/libbasic/classList.stc \
+ $(TOP)/libcomp/classList.stc \
+ $(TOP)/libview/classList.stc \
+ $(TOP)/libwidg/classList.stc \
+ $(EXTRACLASSLISTS) \
+ $(CLIENTCLASSLISTS) > fclassList.stc
+ -if [ "$(EXTRA_CLASSES)"X != X ]; then \
+ for i in $(EXTRA_CLASSES); do \
+ echo $$i >> fclassList.stc; \
+ done; \
+ fi
+ -cat $(TOP)/goodies/Persistency/classList.stc >> fclassList.stc
+ -cat $(TOP)/goodies/Benchmarks/DeltaBlue/classList.stc >> fclassList.stc
+ -cat $(TOP)/goodies/Benchmarks/Richards/classList.stc >> fclassList.stc
+ -cat $(TOP)/goodies/Benchmarks/Dhrystones/classList.stc >> fclassList.stc
+ -cat $(TOP)/goodies/Benchmarks/Self/classList.stc >> fclassList.stc
+ -cat $(TOP)/goodies/Benchmarks/misc/classList.stc >> fclassList.stc
+
+#
+# make list of classes for a mini smalltalk
+# (no GUI, line-by-line interface only)
+#
+miniclassList.stc:
+ -cat $(TOP)/libbasic/classList.stc > miniclassList.stc
+ -cat $(TOP)/libcomp/classList.stc >> miniclassList.stc
+ -if [ "$(EXTRA_CLASSES)"X != X ]; then \
+ for i in $(EXTRA_CLASSES); do \
+ echo $$i >> classList.stc; \
+ done; \
+ fi
+
+#
+# make list of classes for a tiny smalltalk
+# (minimum classes compiled, loads in rest as interpreted byte code)
+# this is done by creating a classList and removing all we dont want
+#
+EXCLUDE=
+tinyclassList.stc:
+ $(MAKE) miniclassList.stc
+ mv miniclassList.stc tinyclassList.stc
+ -cat $(TOP)/libview/classList.stc >> tinyclassList.stc
+
+#tinyclassList.stc:
+# -rm classList.stc
+# $(MAKE) classList.stc
+# sh ../rules/removeFrom.sh classList.stc excludeList.stc > tinyclassList.stc
+# -rm classList.stc
+
+#
+# make a new source subdirectory
+#
+newSource:
+ -rm -rf source
+ $(MAKE) sourceLink
+
+Source: source
+
+source:
+ $(MAKE) sourceLink
+
+sourceLink:
+ -mkdir source
+ -(cd source; $(LNS) ../$(LIBBASICDIR)/*.st .)
+ -(cd source; $(LNS) ../$(LIBCOMPDIR)/*.st .)
+ -(cd source; $(LNS) ../$(LIBVIEWDIR)/*.st .)
+ -(cd source; $(LNS) ../$(LIBWIDGETDIR)/*.st .)
+ -(cd source; $(LNS) ../$(LIBDBDIR)/*.st .)
+ -(cd source; $(LNS) ../$(CLIENTDIR)/[A-Z]*/*.st .)
+ -(cd source; $(LNS) ../../fileIn/*.st .)
+ -(cd source; $(LNS) ../../goodies/*.st .)
+ -(cd source; $(LNS) ../../goodies/*/*.st .)
+ -(cd source; $(LNS) ../../goodies/*/*/*.st .)
+
+newBinary:
+ -rm -rf binary
+ $(MAKE) binaryLink
+
+binary:
+ $(MAKE) binaryLink
+
+binaryLink:
+ -mkdir binary
+ -if [ "`echo $(CLIENTDIR)/[A-Z]*/*.o`" != '$(CLIENTDIR)/[A-Z]*/*.o' ]; then \
+ (cd binary; $(LNS) ../$(CLIENTDIR)/[A-Z]*/*.o .); \
+ fi
+ -if [ "`echo ../goodies/*.o`" != '../goodies/*.o' ]; then \
+ (cd binary; $(LNS) ../../goodies/*.o .) ; \
+ fi
+ -if [ "`echo ../goodies/*/*.o`" != '../goodies/*/*.o' ]; then \
+ (cd binary; $(LNS) ../../goodies/*/*.o .) ; \
+ fi
+ -if [ "`echo ../goodies/*/*/*.o`" != '../goodies/*/*/*.o' ]; then \
+ (cd binary; $(LNS) ../../goodies/*/*/*.o .) ; \
+ fi
+
+#
+# make a new bitmaps subdirectory
+#
+newBitmaps:
+ -rm -rf bitmaps
+ $(MAKE) bitmaps
+
+Bitmaps: bitmaps
+
+bitmaps:
+ -mkdir bitmaps
+ -(cd bitmaps; $(LNS) ../$(LIBVIEWDIR)/bitmaps/* .)
+ -(cd bitmaps; $(LNS) ../$(LIBWIDGETDIR)/bitmaps/* .)
+ -(cd bitmaps; $(LNS) ../$(CLIENTDIR)/A*/bitmaps/* .)
+ -(cd bitmaps; $(LNS) ../$(CLIENTDIR)/[B-C]*/bitmaps/* .)
+ -(cd bitmaps; $(LNS) ../$(CLIENTDIR)/D[a-q]*/bitmaps/* .)
+ -(cd bitmaps; $(LNS) ../$(CLIENTDIR)/D[r-z]*/bitmaps/* .)
+ -(cd bitmaps; $(LNS) ../$(CLIENTDIR)/[E-Z]*/bitmaps/* .)
+ -(cd bitmaps; $(LNS) ../../fileIn/bitmaps/* .)
+ -(cd bitmaps; $(LNS) ../../fileIn/*/bitmaps/* .)
+ -(cd bitmaps; $(LNS) ../../goodies/bitmaps/* .)
+
+cleanjunk::
+ -rm -f a.out changes SymbolTable ttt main.c
+
+clean::
+ -rm -f a.out changes SymbolTable ttt main.c
+ -rm -f classList.stc classList.c
+ -rm -f fclassList.stc fclassList.c
+ -rm -f nxclassList.stc nxclassList.c
+ -rm -f miniclassList.stc miniclassList.c
+ -rm -f tinyclassList.stc tinyclassList.c
+
+clobber::
+ -rm -rf resources source bitmaps changes
+ -rm -f smalltalk minitalk tinytalk abbrev.stc st.img
+ -rm -f main.o
+
+#
+# make a new resources subdirectory
+#
+newResources:
+ rm -rf resources
+ $(MAKE) resources
+
+resources:
+ -mkdir resources
+ cp $(LIBWIDGETDIR)/resources/*.rs resources
+ cp $(LIBVIEWDIR)/resources/*.rs resources
+ cp ../fileIn/resources/*.rs resources
+ cp $(CLIENTDIR)/*/resources/*.rs resources
+
+#
+# make an abbreviation file by collecting all existing ones
+#
+abbrev.stc: $(LIBBASICDIR)/abbrev.stc $(LIBCOMPDIR)/abbrev.stc \
+ $(LIBVIEWDIR)/abbrev.stc $(LIBWIDGETDIR)/abbrev.stc \
+ ../fileIn/abbrev.stc ../clients/MailTool/abbrev.stc \
+ ../clients/DrawTool/abbrev.stc ../clients/DocTool/abbrev.stc \
+ ../clients/DirView/abbrev.stc
+ cat $(LIBBASICDIR)/abbrev.stc > abbrev.stc
+ cat $(LIBCOMPDIR)/abbrev.stc >> abbrev.stc
+ cat $(LIBVIEWDIR)/abbrev.stc >> abbrev.stc
+ cat $(LIBWIDGETDIR)/abbrev.stc >> abbrev.stc
+ cat $(CLIENTDIR)/*/abbrev.stc >> abbrev.stc
+ cat ../fileIn/abbrev.stc >> abbrev.stc
+ cat ../goodies/*/abbrev.stc >> abbrev.stc
+
+$(TARGET): $(INCLUDE)/stc.h $(INCLUDE)/stcIntern.h
+
+$(LIBCOMPDIR)/slopstones.o:
+ (cd ../libcomp; make slopstones.o)
+
+$(LIBCOMPDIR)/smopstones.o:
+ (cd ../libcomp; make smopstones.o)
+
+$(CLIENTDIR)/Tetris/tetris$(OBJNAME):
+ (cd ../clients/Tetris; make obj)
+
+$(CLIENTDIR)/DirView/dirView$(OBJNAME):
+ (cd ../clients/DirView; make obj)
+
+$(CLIENTDIR)/DocTool/docTool$(OBJNAME):
+ (cd ../clients/DocTool; make obj)
+
+installDemo: install
+ -rm $(DESTLIBDIR)/source/BCompiler.st
+ -rm $(DESTLIBDIR)/source/ObjectView.st
+ -strip $(DESTBINDIR)/smalltalk
+
+binInstall::
+ -mkdir $(DESTLIBDIR)
+ -mkdir $(DESTBINDIR)
+ $(INSTALL) smalltalk $(DESTBINDIR)
+ -strip $(DESTBINDIR)/smalltalk
+
+install:: installThis
+
+#
+# notice the [x-y]* patterns; some unixes (at&t) dont like too many arguments ...
+#
+installThis::
+ -mkdir $(DESTLIBDIR)
+ -mkdir $(DESTBINDIR)
+ $(INSTALL) smalltalk $(DESTBINDIR)
+ -strip $(DESTBINDIR)/smalltalk
+ -mkdir $(DESTLIBDIR)/source
+ -chmod a+rx $(DESTLIBDIR)/source
+ -cp source/[A-G]* $(DESTLIBDIR)/source
+ -cp source/[H-P]* $(DESTLIBDIR)/source
+ -cp source/[Q-Z]* $(DESTLIBDIR)/source
+ -chmod a+r $(DESTLIBDIR)/source/[A-G]*
+ -chmod a+r $(DESTLIBDIR)/source/[H-P]*
+ -chmod a+r $(DESTLIBDIR)/source/[Q-Z]*
+ -mkdir $(DESTLIBDIR)/bitmaps
+ -chmod a+rx $(DESTLIBDIR)/bitmaps
+ -cp bitmaps/[A-I]* $(DESTLIBDIR)/bitmaps
+ -cp bitmaps/[J-Z]* $(DESTLIBDIR)/bitmaps
+ -cp bitmaps/[a-i]* $(DESTLIBDIR)/bitmaps
+ -cp bitmaps/[j-z]* $(DESTLIBDIR)/bitmaps
+ -chmod a+r $(DESTLIBDIR)/bitmaps/[A-I]*
+ -chmod a+r $(DESTLIBDIR)/bitmaps/[J-Z]*
+ -chmod a+r $(DESTLIBDIR)/bitmaps/[a-i]*
+ -chmod a+r $(DESTLIBDIR)/bitmaps/[j-z]*
+ -chmod a+rx $(DESTLIBDIR)/resources
+ -mkdir $(DESTLIBDIR)/resources
+ -cp resources/* $(DESTLIBDIR)/resources
+ -chmod a+r $(DESTLIBDIR)/resources/*.rs
+ -cp *.rc *.stc patches $(DESTLIBDIR)
+ -chmod a+r $(DESTLIBDIR)/*.rc $(DESTLIBDIR)/*.stc $(DESTLIBDIR)/patches
+
+qinstall:: installThis