*** mstcint.c	Wed Jun 03 22:20:06 1992
--- smalltalk-1.2/mstcint.c	Sun Mar 01 23:19:37 1992
***************
*** 302,308 ****
    extern void window_create();
    extern int system();
    extern char *getenv();
!   extern int read(), write(), open(), close(), ioctl(), lseek()/*, tell()*/;
  
    defineCFunc("system", system);
    defineCFunc("getenv", getenv);
--- 302,308 ----
    extern void window_create();
    extern int system();
    extern char *getenv();
!   extern int read(), write(), open(), close(), ioctl(), lseek(), tell();
  
    defineCFunc("system", system);
    defineCFunc("getenv", getenv);
***************
*** 315,321 ****
    /* defineCFunc("ioctl", myioctl); */
    defineCFunc("ioctl", ioctl);
    defineCFunc("lseek", lseek);
! /*  defineCFunc("tell", tell);*/
  
    /* just to round out the set */
    defineCFunc("readChar", readChar);
--- 315,321 ----
    /* defineCFunc("ioctl", myioctl); */
    defineCFunc("ioctl", ioctl);
    defineCFunc("lseek", lseek);
!   defineCFunc("tell", tell);
  
    /* just to round out the set */
    defineCFunc("readChar", readChar);
*** mstoop.c	Wed Jun 10 17:57:41 1992
--- smalltalk-1.2/mstoop.c	Sun Mar 01 23:19:39 1992
***************
*** 105,116 ****
  /* you can increase this value if you need more space, and it won't hurt
   * performance *if* your machine has enough physical memory (otherwise, you
   * thrash the pager) */
- #ifdef AMIGA
- #define INIT_MEM_SPACE_SIZE		/*(512 * K) */ (1500 * K)
- #else
  #define INIT_MEM_SPACE_SIZE		/*(512 * K) */ (2 * K * K)
  #else
- #endif
  #define INIT_MEM_SPACE_SIZE		(1152 * K) 
  #endif
  
--- 105,112 ----
*** mstpaths.h-dist	Wed Jun 03 22:01:12 1992
--- smalltalk-1.2/mstpaths.h-dist	Sun Feb 16 19:31:40 1992
***************
*** 57,65 ****
  #define __MSTPATHS__
  
  /* This defines where the kernel smalltalk (.st) files can be found */
! #define KERNEL_PATH "work2:projects/smalltalk-1.2"
  
  /* This defines where to search for the saved binary image */
! #define IMAGE_PATH "work2:projects/smalltalk-1.2"
  
  #endif /* __MSTPATHS__ */
--- 57,65 ----
  #define __MSTPATHS__
  
  /* This defines where the kernel smalltalk (.st) files can be found */
! #define KERNEL_PATH "/usr/gnu/smalltalk"
  
  /* This defines where to search for the saved binary image */
! #define IMAGE_PATH "/usr/gnu/smalltalk"
  
  #endif /* __MSTPATHS__ */
*** ymakefile	Sat Jun 06 16:37:47 1992
--- smalltalk-1.2/ymakefile	Sun Mar 01 23:19:43 1992
***************
*** 1,21 ****
! ;#include "mstconfig.h"
! ;#include "mstpaths.h"
  
  
! ;#ifndef DEFAULT_LIBRARIES
  #define DEFAULT_LIBRARIES -lm
! ;#endif
  
  #ifndef EXTRA_CC_FLAGS
  #define EXTRA_CC_FLAGS
  #endif
  
  
  #ifndef OTHER_FILES
  #define OTHER_FILES
  #endif
  
! 
  #ifndef OBJECTS_SYSTEM
  #define OBJECTS_SYSTEM
  #endif
--- 1,76 ----
! /*******************************************************************
!  * 
!  * Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
!  * Written by Steve Byrne.
!  * 
!  * This file is part of GNU Smalltalk.
!  *  
!  * GNU Smalltalk is free software; you can redistribute it and/or modify it
!  * under the terms of the GNU General Public License as published by the Free
!  * Software Foundation; either version 1, or (at your option) any later 
!  * version.
!  * 
!  * GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT
!  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
!  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
!  * more details.
!  * 
!  * You should have received a copy of the GNU General Public License along with
!  * GNU Smalltalk; see the file COPYING.  If not, write to the Free Software
!  * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
!  *
!  ********************************************************************/
  
+ #include "mstconfig.h"
+ #include "mstpaths.h"
  
! #ifndef DEFAULT_LIBRARIES
  #define DEFAULT_LIBRARIES -lm
! #endif
  
+ /* The configuration files can define extra flags for the C compiler
+  * using this definition
+  */
  #ifndef EXTRA_CC_FLAGS
  #define EXTRA_CC_FLAGS
  #endif
  
  
+ #ifdef USE_READLINE
+ READLINEDIR = READLINEDIRDEF
+ READLINEDEF = -DUSE_READLINE -I$(READLINEDIR)
+ READLINELIB = -L$(READLINEDIR)./readline -lreadline -ltermcap
+ #endif
+ 
+ #ifdef USE_DLD
+ DLDDIR = DLDDIRDEF
+ DLDDEF = -DDLD -I$(DLDDIR)
+ DLDLIB = -L$(DLDDIR) -ldld
+ #if defined(SUNOS40)
+ /* BINDING = -Bstatic */
+ #endif
+ #endif
+ 
+ 
+ #ifndef SYSTEM_MALLOC
+ #ifdef HAVE_ALLOCA
+ mallocobj = malloc.o
+ #else
+ mallocobj = alloca.o malloc.o
+ #endif
+ #endif
+ 
+ 
+ /* just to be sure the sh is used */
+ SHELL=/bin/sh
+ 
+ /* Enable recompilation of certain other files depending on system type.  */
+ 
  #ifndef OTHER_FILES
  #define OTHER_FILES
  #endif
  
! /* Enable inclusion of object files in temacs depending on system type.  */
  #ifndef OBJECTS_SYSTEM
  #define OBJECTS_SYSTEM
  #endif
***************
*** 25,53 ****
  #endif
  
  
! #define HAVE_ALLOCA
  
  MAINTAINER = 'sbb@Eng.sun.com'
  
! CFLAGS_NORMAL   = -g $(EXTRA_CC_FLAGS)
! CFLAGS_PROFILE  = -g -pg -DUSE_MONCONTROL $(EXTRA_CC_FLAGS)
! CFLAGS_OPTIMIZE = -O2 -DOPTIMIZE $(EXTRA_CC_FLAGS)
! 
! ;#undef PROFILE
! ;#undef NORMAL
! ;#define OPTIMIZE
! ;
! ;#ifdef PROFILE
! ;CFLAGS = $(CFLAGS_PROFILE) $(EXTRA_PACKAGES)
! ;#else
! ;#ifdef OPTIMIZE
! ;CFLAGS = $(CFLAGS_OPTIMIZE) $(EXTRA_PACKAGES)
! ;#else
! ;CFLAGS = $(CFLAGS_NORMAL) $(EXTRA_PACKAGES)
! ;#endif
! ;#endif
! CFLAGS = -mc68020 -m68881
  
  OBJS =  mstmain.o   mstlib.o	mst.tab.o   mstlex.o    mststr.o \
  	mstid.o     msttree.o   mstbyte.o   mstinterp.o mstcomp.o \
  	mstsym.o    mstdict.o   mstoop.o    mstsave.o   mstcint.o \
--- 80,165 ----
  #endif
  
  
! /* Some machines have alloca built-in.
!  * They should define HAVE_ALLOCA, or may just let alloca.s
!  * be used but generate no code.
!  * Some have it written in assembler in alloca.s.
!  * Some use the C version in alloca.c (these define C_ALLOCA in mstconfig.h).
!  */
! 
! #ifdef C_ALLOCA
! ALLOCA = alloca.o alloc.o
! alloca.o: alloca.c
! #else
! #ifdef NEED_ALLOCA
! ALLOCA = alloca.o
! alloca.o : alloca.s mstconfig.h
! /* $(CPP) is cc -E, which may get confused by filenames
!  * that do not end in .c.  So copy file to a safe name.  */
! 	cp alloca.s allocatem.c
! /* remove any ^L, blank lines, and preprocessor comments,
!  * since some assemblers barf on them */
! 	$(CPP) allocatem.c | \
! 	sed -e 's///' -e 's/^#.*//' | \
! 	sed -n -e '/^..*$$/p' > allocatem.s
! 	-rm -f alloca.o
! /* Xenix, in particular, needs to run assembler via cc.  */
! 	$(CC) -c allocatem.s
! 	mv allocatem.o alloca.o
! 	rm allocatem.s allocatem.c
! #endif /* NEED_ALLOCA */
! #endif /* not C_ALLOCA */
! 
! 
! 
! /* System-specific programs to be made.
!    OTHER_FILES, OBJECTS_SYSTEM and OBJECTS_MACHINE
!    select which of these should be compiled.  */
! 
! 
  
+ /*************
+  *
+  * These variables you may wish to change
+  *
+  *************/
+ 
+ /* Mail path to GNU Smalltalk maintainer (Steve Byrne) */
  MAINTAINER = 'sbb@Eng.sun.com'
  
! /* Compilation flags definitions */
! CFLAGS_NORMAL   = -g EXTRA_CC_FLAGS 
! CFLAGS_PROFILE  = -g -pg -DUSE_MONCONTROL EXTRA_CC_FLAGS 
! CFLAGS_OPTIMIZE = -O -DOPTIMIZE EXTRA_CC_FLAGS 
! 
! #ifdef SUNOS40
! /* +++ Sun hacks */
! CFLAGS_OPTIMIZE = -O3 -DOPTIMIZE EXTRA_CC_FLAGS 
! CFLAGS_TEST = -O3 -DOPTIMIZE -pg EXTRA_CC_FLAGS
! #endif
! 
! EXTRA_PACKAGES = $(READLINEDEF) $(DLDDEF)
! 
! #ifdef PROFILE
! /* Actual compilation flags and compiler definition */
! CFLAGS = $(CFLAGS_PROFILE) $(EXTRA_PACKAGES)
! #else
! #ifdef OPTIMIZE
! /* Actual compilation flags and compiler definition */
! CFLAGS = $(CFLAGS_OPTIMIZE) $(EXTRA_PACKAGES)
! #else
! /* Actual compilation flags and compiler definition */
! CFLAGS = $(CFLAGS_NORMAL) $(EXTRA_PACKAGES)
! #endif
! #endif
! 
! 
  
+ /********************************************************************
+  * The following definitions are not something that the casual user would
+  * want to change.
+  ********************************************************************/
+ 
  OBJS =  mstmain.o   mstlib.o	mst.tab.o   mstlex.o    mststr.o \
  	mstid.o     msttree.o   mstbyte.o   mstinterp.o mstcomp.o \
  	mstsym.o    mstdict.o   mstoop.o    mstsave.o   mstcint.o \
***************
*** 59,71 ****
  	mstsysdep.c mstcallin.c 
  
  
! LIBS =  $(DEFAULT_LIBRARIES) $(USER_LIBS) $(READLINELIB) $(DLDLIB)
  
  
  all: mst
  
  mst: $(OBJS)
! 	$(CC) $(BINDING) -o mst $(CFLAGS) $(OBJS) $(LIBS) -lm
  
  mst.tab.h mst.tab.c: mst.y
  	bison -dv mst.y
--- 171,183 ----
  	mstsysdep.c mstcallin.c 
  
  
! LIBS =  DEFAULT_LIBRARIES $(USER_LIBS) $(READLINELIB) $(DLDLIB)
  
  
  all: mst
  
  mst: $(OBJS)
! 	$(CC) $(BINDING) -o mst $(CFLAGS) $(OBJS) $(LIBS)
  
  mst.tab.h mst.tab.c: mst.y
  	bison -dv mst.y
***************
*** 74,81 ****
--- 186,201 ----
  
  mstlex.o: mst.tab.h
  
+ /* These depend on the oop table size */
  mstsave.o mstoop.o mstlib.o mstsym.o: mstoop.h
  
+ #if defined(SUNOS40) && defined(OPTIMIZE)
+ mstinterp.o: mstinterp.c
+ 	$(CC) -O2 -DOPTIMIZE $(EXTRA_PACKAGES) -c mstinterp.c
+ #endif
+ 
+ /* !!! Clean these up in the future */ 
+ 
  mstlib.o: mst.h
  mstlib.o: mstconfig.h
  mstlib.o: mst.tab.h
***************
*** 197,202 ****
--- 317,341 ----
  mstcallin.o: mstoop.h
  
  
+ 
+ /*
+  * Install the files into the proper place
+  */
+ 
+ install:
+ 	if test ! -d KERNEL_PATH ; then      \
+ 	    mkdir -p KERNEL_PATH ;           \
+ 	fi
+ 	cp *.st KERNEL_PATH
+ 	(cd KERNEL_PATH; chmod +r *.st)
+ 	if test ! -d IMAGE_PATH ; then      \
+ 	    mkdir -p IMAGE_PATH ;           \
+ 	fi
+ 	(x=`pwd`; cd IMAGE_PATH; $$x/mst -Vi)
+ 
+ /***
+  *** Experimental Linting of the code
+  ***/
  lint: $(SRCS)
  	lint $(SRCS)
  
***************
*** 207,212 ****
--- 346,363 ----
  profile:
  	make CFLAGS='$(CFLAGS) -pg -Dprofiling'
  
+ senddiffs: diffs
+ 	kermit -e 1000 -s mst.diffs
+ 
+ mail-diffs:
+ 	@echo "Please enter a brief note describing the contents of"
+ 	@echo "the diffs file that you've created.  End with Ctrl-D."
+ 	@cat > mst.diffs.note
+ 	@echo "-----------------------------------" >> mst.diffs.note
+ 	@### If there''s a more portable/better way to do this, please
+ 	@### don''t hesitate to fix this and send the new version back -- SBB
+ 	@cat mst.diffs.note mst.diffs | mail $(MAINTAINER)
+ 
  diffs:
  	mk_mst_diffs
  
***************
*** 218,224 ****
  	rm -rf ./orig
  	mkdir ./orig
  	tar cbf 20 - `cat mstfiles` | (cd ./orig; tar xbBf 20 -)
- 
  
  
  
--- 369,374 ----
