*** 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 ----