version 1.49, 1995/12/15 01:54:08
|
version 1.62, 1996/05/23 15:13:07
|
Line 26
|
Line 26
|
#To do: |
#To do: |
#use $(srcdir) to make compilation in a non-srcdir possible |
#use $(srcdir) to make compilation in a non-srcdir possible |
|
|
VERSION =0.1beta#gforth version |
VERSION =0.2.0#gforth version |
SHELL = /bin/sh |
SHELL = /bin/sh |
RM = rm |
RM = rm |
CP = cp |
CP = cp |
Line 58 GCCLDFLAGS = @GCCLDFLAGS@
|
Line 58 GCCLDFLAGS = @GCCLDFLAGS@
|
LDFLAGS = $(DEBUGFLAG) $(XLDFLAGS) $(GCCLDFLAGS) |
LDFLAGS = $(DEBUGFLAG) $(XLDFLAGS) $(GCCLDFLAGS) |
LDLIBS = @LIBS@ |
LDLIBS = @LIBS@ |
|
|
|
VPATH = @srcdir@ |
prefix = @prefix@ |
prefix = @prefix@ |
exec_prefix = @exec_prefix@ |
exec_prefix = @exec_prefix@ |
srcdir = @srcdir@ |
srcdir = @srcdir@ |
Line 67 datadir = $(prefix)/share
|
Line 68 datadir = $(prefix)/share
|
#read-only architecture-dependent non-ascii files |
#read-only architecture-dependent non-ascii files |
libdir = $(prefix)/lib |
libdir = $(prefix)/lib |
infodir = $(prefix)/info |
infodir = $(prefix)/info |
mandir = $(prefix)/man/man1 |
mandir = $(prefix)/man |
|
man1dir= $(mandir)/man1 |
|
man1ext= .1 |
INCLUDES = forth.h threading.h io.h io-dos.h |
#older emacses have their site-lisp in $(libdir)/emacs/ |
|
emacssitelispdir=$(datadir)/emacs/site-lisp |
KERN_SRC = main.fs search-order.fs cross.fs aliases.fs vars.fs add.fs \ |
|
errore.fs kernal.fs version.fs extend.fs tools.fs toolsext.fs |
INCLUDES = forth.h threading.h io.h io-dos.h config.h |
|
|
FORTH_SRC = anslocal.fs add.fs assert.fs ansi.fs answords.fs blocks.fs bufio.fs checkans.fs \ |
KERN_SRC = \ |
code.fs colorize.fs cross.fs debug.fs debugging.fs doskey.fs ds2texi.fs \ |
add.fs \ |
dumpimage.fs environ.fs errore.fs etags.fs extend.fs filedump.fs \ |
aliases.fs \ |
float.fs glocals.fs glosgen.fs gray.fs hash.fs history.fs \ |
cross.fs \ |
kernal.fs locals-test.fs look.fs main.fs makedoc.fs \ |
errore.fs \ |
|
extend.fs \ |
|
kernal.fs \ |
|
main.fs \ |
|
search-order.fs \ |
|
tools.fs \ |
|
toolsext.fs \ |
|
vars.fs \ |
|
version.fs |
|
|
|
GFORTH_FI_SRC = \ |
|
assert.fs \ |
|
blockedit.fb \ |
|
blocks.fs \ |
|
bufio.fs \ |
|
debug.fs \ |
|
debugging.fs \ |
|
dumpimage.fs \ |
|
environ.fs \ |
|
float.fs \ |
|
glocals.fs \ |
|
hash.fs \ |
|
history.fs \ |
|
interpretation.fs \ |
|
look.fs \ |
|
search-order.fs \ |
|
see.fs \ |
|
source.fs \ |
|
startup.fs \ |
|
struct.fs \ |
|
stuff.fs \ |
|
tasker.fs \ |
|
termsize.fs \ |
|
vt100.fs \ |
|
vt100key.fs \ |
|
wordinfo.fs |
|
|
|
FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) \ |
|
ansi.fs answords.fs \ |
|
checkans.fs \ |
|
code.fs colorize.fs \ |
|
doskey.fs ds2texi.fs \ |
|
etags.fs filedump.fs \ |
|
glosgen.fs gray.fs \ |
|
makedoc.fs \ |
mach16b.fs mach16l.fs mach32b.fs mach32l.fs mach64b.fs mach64l.fs \ |
mach16b.fs mach16l.fs mach32b.fs mach32l.fs mach64b.fs mach64l.fs \ |
other.fs prims2x.fs random.fs search-order.fs see.fs sieve.fs source.fs \ |
more.fs other.fs prims2x.fs random.fs \ |
startup.fs site-init.fs struct.fs tools.fs toolsext.fs tt.fs vars.fs \ |
sieve.fs \ |
vt100.fs vt100key.fs wordinfo.fs wordsets.fs \ |
site-init.fs \ |
tester.fs coretest.fs \ |
tt.fs sokoban.fs \ |
|
wordsets.fs \ |
|
tester.fs coretest.fs postponetest.fs dbltest.fs \ |
bubble.fs siev.fs matrix.fs fib.fs |
bubble.fs siev.fs matrix.fs fib.fs |
|
|
SOURCES = CVS Makefile.in configure.in configure config.sub config.guess \ |
SOURCES = CVS compat Makefile.in configure.in configure config.sub config.guess \ |
|
acconfig.h config.h.in \ |
install-sh INSTALL README ToDo BUGS model COPYING Benchres \ |
install-sh INSTALL README ToDo BUGS model COPYING Benchres \ |
gforth.ds texinfo.tex gforth.1 gforth.el \ |
gforth.ds texinfo.tex gforth.1 gforth.el \ |
primitives engine.c main.c io.c \ |
primitives engine.c main.c io.c memcasecmp.c \ |
m68k.h mips.h 386.h hppa.h cache.c sparc.h power.h alpha.h 32bit.h \ |
m68k.h mips.h 386.h hppa.h cache.c sparc.h power.h alpha.h 32bit.h \ |
getopt.c getopt1.c getopt.h select.c \ |
getopt.c getopt1.c getopt.h select.c \ |
ecvt.c memcmp.c strtol.c strtoul.c ansidecl.h memmove.c pow10.c \ |
ecvt.c memcmp.c strtol.c strtoul.c ansidecl.h memmove.c pow10.c \ |
strerror.c strsignal.c \ |
strerror.c strsignal.c dblsub.c \ |
INSTALL.DOS makefile.dos mkdosmf.sed configure.bat \ |
INSTALL.DOS makefile.dos mkdosmf.sed configure.bat \ |
startup.dos history.dos \ |
startup.dos history.dos \ |
glosgen.glo glossaries.doc \ |
glosgen.glo glossaries.doc \ |
Line 104 RCS_FILES = ToDo model high-level
|
Line 152 RCS_FILES = ToDo model high-level
|
|
|
GEN = gforth version.fs |
GEN = gforth version.fs |
|
|
OBJECTS = engine.o io.o main.o @LIBOBJS@ @getopt_long@ |
OBJECTS = engine.o io.o main.o memcasecmp.o @LIBOBJS@ @getopt_long@ |
|
|
# things that need a working forth system to be generated |
# things that need a working forth system to be generated |
FORTH_GEN0 = primitives.b primitives.i prim_labels.i aliases.fs |
FORTH_GEN0 = primitives.b primitives.i prim_labels.i aliases.fs |
Line 157 clean: mostlyclean
|
Line 205 clean: mostlyclean
|
-$(RM) -rf $(GEN) *.o |
-$(RM) -rf $(GEN) *.o |
|
|
distclean: clean |
distclean: clean |
-$(RM) machine.h kernal.fi config.cache config.log config.status Makefile |
-$(RM) machine.h kernal.fi config.cache config.log config.status config.h Makefile |
|
|
realclean: distclean |
#realclean is useless, but dangerous, so it's commented out |
-$(RM) $(GEN_PRECIOUS) |
#realclean: distclean |
|
# -$(RM) $(GEN_PRECIOUS) |
|
|
#mostlyclean, but also remove some of the stuff that is distributed |
#mostlyclean, but also remove some of the stuff that is distributed |
virtualclean: mostlyclean |
virtualclean: mostlyclean |
-$(RM) -rf gforth.fns gforth.texi gforth.ps gforth.info* \ |
-$(RM) -rf gforth.fns gforth.texi gforth.ps gforth.info* \ |
gforth-$(VERSION).tar.gz config.cache *~ |
gforth-$(VERSION).tar.gz config.cache *~ */*~ |
|
|
dist: $(SOURCES) $(FORTH_GEN) $(DOCDIST) |
dist: $(SOURCES) $(FORTH_GEN) $(DOCDIST) |
-rm -rf gforth-$(VERSION) |
-rm -rf gforth-$(VERSION) |
Line 203 binonlydist: $(SOURCES) $(FORTH_GEN) gfo
|
Line 252 binonlydist: $(SOURCES) $(FORTH_GEN) gfo
|
#strip gforth, because the debugging stuff is hardly useful once |
#strip gforth, because the debugging stuff is hardly useful once |
# gforth manages to execute more than a few primitives |
# gforth manages to execute more than a few primitives |
|
|
install: gforth $(FORTH_SRC) kernal.fi gforth.fi gforth.1 gforth.info* |
install: gforth $(FORTH_SRC) kernal.fi gforth.fi gforth.1 gforth.info* primitives gforth.TAGS |
for i in $(bindir) $(mandir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(datadir)/gforth/site-forth; do \ |
for i in $(bindir) $(mandir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(datadir)/gforth/site-forth; do \ |
$(INSTALL_DIR) $$i; \ |
$(INSTALL_DIR) $$i; \ |
done |
done |
Line 213 install: gforth $(FORTH_SRC) kernal.fi g
|
Line 262 install: gforth $(FORTH_SRC) kernal.fi g
|
ln $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
ln $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
$(INSTALL_DATA) gforth.1 $(mandir) |
$(INSTALL_DATA) gforth.1 $(mandir) |
for i in gforth.info*; do $(INSTALL_DATA) $$i $(infodir); done |
for i in gforth.info*; do $(INSTALL_DATA) $$i $(infodir); done |
for i in $(FORTH_SRC); do \ |
for i in $(FORTH_SRC) primitives; do \ |
$(INSTALL_DATA) $$i $(datadir)/gforth/$(VERSION); \ |
$(INSTALL_DATA) $$i $(datadir)/gforth/$(VERSION); \ |
done |
done |
$(INSTALL_DATA) kernal.fi $(libdir)/gforth/$(VERSION) |
$(INSTALL_DATA) kernal.fi $(libdir)/gforth/$(VERSION) |
$(FORTHK) startup.fs dumpimage.fs -e "savesystem $(libdir)/gforth/$(VERSION)/gforth.fi bye" #gforth.fi contains some path names |
$(FORTHK) startup.fs dumpimage.fs -e "savesystem $(libdir)/gforth/$(VERSION)/gforth.fi bye" #gforth.fi contains some path names |
|
sed s:$(srcdir)/:$(datadir)/gforth/$(VERSION): gforth.TAGS >TAGS; $(INSTALL_DATA) TAGS $(datadir)/gforth/$(VERSION) |
|
if test -d $(emacssitelispdir); then \ |
|
$(INSTALL_DATA) gforth.el $(emacssitelispdir); \ |
|
else \ |
|
echo "please install gforth.el in your .../emacs/site-lisp directory"; \ |
|
fi |
|
|
#deinstall all files specific to this version of gforth |
#deinstall all files specific to this version of gforth |
#to uninstall version foo, type `make uninstall VERSION=foo' |
#to uninstall version foo, type `make uninstall VERSION=foo' |
Line 230 check: test
|
Line 284 check: test
|
touch test |
touch test |
|
|
test: gforth gforth.fi |
test: gforth gforth.fi |
$(FORTH) tester.fs coretest.fs -e bye |
$(FORTH) tester.fs coretest.fs postponetest.fs dbltest.fs -e bye |
$(FORTH) code.fs checkans.fs -e bye |
$(FORTH) code.fs checkans.fs -e bye |
@echo 'Expect no differences' |
@echo 'Expect no differences' |
$(FORTH) prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye"| diff -c - primitives.i |
$(FORTH) prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye"| diff -c - primitives.i |
Line 250 gforth: $(OBJECTS)
|
Line 304 gforth: $(OBJECTS)
|
@MAKE_EXE@ |
@MAKE_EXE@ |
|
|
kernl16l.fi-: $(KERN_SRC) mach16l.fs $(FORTH_GEN0) |
kernl16l.fi-: $(KERN_SRC) mach16l.fs $(FORTH_GEN0) |
$(FORTHK) -p . -e 's" mach16l.fs"' main.fs |
$(FORTHK) -p . interpretation.fs -e 's" mach16l.fs"' main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye" |
|
|
kernl16b.fi-: $(KERN_SRC) mach16b.fs $(FORTH_GEN0) |
kernl16b.fi-: $(KERN_SRC) mach16b.fs $(FORTH_GEN0) |
$(FORTHK) -p . -e 's" mach16b.fs"' main.fs |
$(FORTHK) -p . interpretation.fs -e 's" mach16b.fs"' main.fs -e "save-cross kernl16b.fi- $(bindir)/gforth-$(VERSION) bye" |
|
|
kernl32l.fi-: $(KERN_SRC) mach32l.fs $(FORTH_GEN0) |
kernl32l.fi-: $(KERN_SRC) mach32l.fs $(FORTH_GEN0) |
$(FORTHK) -p . -e 's" mach32l.fs"' main.fs |
$(FORTHK) -p . interpretation.fs -e 's" mach32l.fs"' main.fs -e "save-cross kernl32l.fi- $(bindir)/gforth-$(VERSION) bye" |
|
|
kernl32b.fi-: $(KERN_SRC) mach32b.fs $(FORTH_GEN0) |
kernl32b.fi-: $(KERN_SRC) mach32b.fs $(FORTH_GEN0) |
$(FORTHK) -p . -e 's" mach32b.fs"' main.fs |
$(FORTHK) -p . interpretation.fs -e 's" mach32b.fs"' main.fs -e "save-cross kernl32b.fi- $(bindir)/gforth-$(VERSION) bye" |
|
|
kernl64l.fi-: $(KERN_SRC) mach64l.fs $(FORTH_GEN0) |
kernl64l.fi-: $(KERN_SRC) mach64l.fs $(FORTH_GEN0) |
$(FORTHK) -p . -e 's" mach64l.fs"' main.fs |
$(FORTHK) -p . interpretation.fs -e 's" mach64l.fs"' main.fs -e "save-cross kernl64l.fi- $(bindir)/gforth-$(VERSION) bye" |
|
|
kernl64b.fi-: $(KERN_SRC) mach64b.fs $(FORTH_GEN0) |
kernl64b.fi-: $(KERN_SRC) mach64b.fs $(FORTH_GEN0) |
$(FORTHK) -p . -e 's" mach64b.fs"' main.fs |
$(FORTHK) -p . interpretation.fs -e 's" mach64b.fs"' main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye" |
|
|
kernl16b.fi: $(KERNLS) |
kernl16b.fi: $(KERNLS) |
-$(CP) kernl16b.fi kernl16b.fi~ |
-$(CP) kernl16b.fi kernl16b.fi~ |
Line 297 kernl64l.fi: $(KERNLS)
|
Line 351 kernl64l.fi: $(KERNLS)
|
-$(CP) kernl64l.fi- kernl64l.fi |
-$(CP) kernl64l.fi- kernl64l.fi |
@LINK_KERNL64L@ |
@LINK_KERNL64L@ |
|
|
gforth.fi: @kernal_fi@ gforth startup.fs glocals.fs search-order.fs hash.fs float.fs debugging.fs environ.fs wordinfo.fs look.fs vt100.fs see.fs bufio.fs debug.fs history.fs vt100key.fs assert.fs source.fs blocks.fs struct.fs dumpimage.fs |
gforth.fi: @kernal_fi@ gforth $(GFORTH_FI_SRC) |
$(FORTHK) startup.fs dumpimage.fs -e "savesystem gforth.fi bye" |
$(FORTHK) -p . startup.fs -e "savesystem gforth.fi bye" |
|
|
|
gforth.TAGS: @kernal_fi@ gforth $(GFORTH_FI_SRC) primitives.TAGS |
|
$(FORTHK) -p . etags.fs startup.fs -e bye |
|
cat TAGS primitives.TAGS kernal.TAGS >gforth.TAGS |
|
|
engine.s: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) |
engine.s: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -S engine.c |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -S engine.c |
Line 312 main.o: main.c machine.h threading.h $(
|
Line 370 main.o: main.c machine.h threading.h $(
|
strtoul.o: strtoul.c strtol.c |
strtoul.o: strtoul.c strtol.c |
|
|
primitives.b: primitives |
primitives.b: primitives |
m4 primitives >$@ |
m4 -s $(srcdir)/primitives >$@ |
|
|
primitives.i : primitives.b prims2x.fs |
primitives.i : primitives.b prims2x.fs |
$(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye" >$@ |
$(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye" >$@ |
Line 326 aliases.fs: primitives.b prims2x.fs
|
Line 384 aliases.fs: primitives.b prims2x.fs
|
primitives.fs: primitives.b prims2x.fs |
primitives.fs: primitives.b prims2x.fs |
$(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-forth process-file bye" >$@ |
$(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-forth process-file bye" >$@ |
|
|
|
primitives.TAGS: primitives.b prims2x.fs |
|
$(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-tag process-file bye" >$@ |
|
|
doc.fd: makedoc.fs float.fs search-order.fs glocals.fs environ.fs \ |
doc.fd: makedoc.fs float.fs search-order.fs glocals.fs environ.fs \ |
toolsext.fs wordinfo.fs \ |
toolsext.fs wordinfo.fs \ |
Line 334 doc.fd: makedoc.fs float.fs search-orde
|
Line 394 doc.fd: makedoc.fs float.fs search-orde
|
$(FORTHK) -p . -e "s\" doc.fd\"" makedoc.fs startup.fs code.fs -e bye |
$(FORTHK) -p . -e "s\" doc.fd\"" makedoc.fs startup.fs code.fs -e bye |
|
|
crossdoc.fd: $(KERN_SRC) $(FORTH_GEN0) |
crossdoc.fd: $(KERN_SRC) $(FORTH_GEN0) |
$(FORTHK) -p . -e 's" mach32l.fs"' main.fs |
$(FORTHK) -p . interpretation.fs -e 's" mach32l.fs"' main.fs |
|
|
gforth.texi: gforth.ds primitives.b ds2texi.fs prims2x.fs doc.fd crossdoc.fd |
gforth.texi: gforth.ds primitives.b ds2texi.fs prims2x.fs doc.fd crossdoc.fd |
$(FORTHK) -p . ds2texi.fs -e "s\" gforth.ds\" r/o open-file throw ds2texi bye" >$@ |
$(FORTHK) -p . ds2texi.fs -e "s\" gforth.ds\" r/o open-file throw ds2texi bye" >$@ |
Line 358 html: gforth.texi
|
Line 418 html: gforth.texi
|
|
|
# For an explanation of the following Makefile rules, see node |
# For an explanation of the following Makefile rules, see node |
# `Automatic Remaking' in GNU Autoconf documentation. |
# `Automatic Remaking' in GNU Autoconf documentation. |
|
${srcdir}/configure: configure.in |
|
cd ${srcdir} && autoconf |
|
|
|
# autoheader might not change config.h.in, so touch a stamp file. |
|
${srcdir}/config.h.in: stamp-h.in |
|
${srcdir}/stamp-h.in: configure.in acconfig.h |
|
cd ${srcdir} && autoheader |
|
echo timestamp > ${srcdir}/stamp-h.in |
|
|
|
config.h: stamp-h |
|
stamp-h: config.h.in config.status |
|
CONFIG_FILES=$@ CONFIG_HEADERS=config.h ./config.status |
|
echo > stamp-h |
Makefile: Makefile.in config.status |
Makefile: Makefile.in config.status |
CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status |
CONFIG_FILES=$@ CONFIG_HEADERS=config.h ./config.status |
|
|
config.status: configure |
config.status: configure |
./config.status --recheck |
./config.status --recheck |
configure: configure.in |
|
cd $(srcdir) && autoconf |
|
|
|
|
|
|
#create files for DOS, because DOS cannot do it itself |
makefile.dos: mkdosmf.sed Makefile.in |
makefile.dos: mkdosmf.sed Makefile.in |
sed -f mkdosmf.sed <Makefile.in >makefile.dos |
sed -f mkdosmf.sed <Makefile.in >makefile.dos |
|
|
Line 374 history.dos: history.fs Makefile.in
|
Line 448 history.dos: history.fs Makefile.in
|
startup.dos: startup.fs Makefile.in |
startup.dos: startup.fs Makefile.in |
sed -e "s/\\\\ include doskey/include doskey/g" \ |
sed -e "s/\\\\ include doskey/include doskey/g" \ |
-e "s/include vt100key/\\\\ include vt100key/g" <startup.fs >startup.dos |
-e "s/include vt100key/\\\\ include vt100key/g" <startup.fs >startup.dos |
|
|