| #Makefile for Gforth |
#Makefile for Gforth |
| |
|
| #Copyright (C) 1995 Free Software Foundation, Inc. |
#Copyright (C) 1995, 1996 Free Software Foundation, Inc. |
| |
|
| #This file is part of Gforth. |
#This file is part of Gforth. |
| |
|
| # (which will cause the Makefiles to be regenerated when you run `make'); |
# (which will cause the Makefiles to be regenerated when you run `make'); |
| # (2) otherwise, pass the desired values on the `make' command line. |
# (2) otherwise, pass the desired values on the `make' command line. |
| |
|
| #To do: |
#gforth version |
| #use $(srcdir) to make compilation in a non-srcdir possible |
VERSION_MAJOR=0 |
| |
VERSION_MINOR=2 |
| VERSION =0.2.0#gforth version |
VERSION_RELEASE=9 |
| |
VERSION =$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_RELEASE) |
| |
DOSVERSION=$(VERSION_MAJOR)$(VERSION_MINOR)$(VERSION_RELEASE) |
| SHELL = /bin/sh |
SHELL = /bin/sh |
| RM = rm |
RM = rm |
| |
RMTREE = rm -rf |
| CP = cp |
CP = cp |
| |
TAR = tar cf - |
| INSTALL = @INSTALL@ |
INSTALL = @INSTALL@ |
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
| INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_DATA = @INSTALL_DATA@ |
| INSTALL_DIR = ./install-sh -d |
|
| LN_S = @LN_S@ |
LN_S = @LN_S@ |
| GCC = @CC@ |
GCC = @CC@ |
| CC = $(GCC) |
CC = $(GCC) |
| FORTH = ./gforth |
PATHSEP = @PATHSEP@ |
| FORTHK = $(FORTH) -i ./kernal.fi |
FORTHPATH = $(libdir)/gforth/site-forth$(PATHSEP)$(datadir)/gforth/site-forth$(PATHSEP)$(libdir)/gforth/$(VERSION)$(PATHSEP)$(datadir)/gforth/$(VERSION)$(PATHSEP). |
| |
FORTHSIZES = @FORTHSIZES@ |
| |
FORTH = ./gforth -p $(FORTHPATH)$(PATHSEP)$(srcdir) |
| |
FORTHK = ./gforth -p .$(PATHSEP)$(srcdir) -i ./kernel.fi |
| |
FORTHP = ./gforth -i ./kernel.fi |
| STRIP = strip |
STRIP = strip |
| TEXI2DVI = texi2dvi |
TEXI2DVI = texi2dvi |
| DVI2PS = dvips -D300 |
DVI2PS = dvips -D300 |
| SWITCHES = $(XCFLAGS) $(XDEFINES) #-DNDEBUG #turn off assertions |
SWITCHES = $(XCFLAGS) $(XDEFINES) #-DNDEBUG #turn off assertions |
| ENGINE_FLAGS = @ENGINE_FLAGS@ -fno-defer-pop -fcaller-saves |
ENGINE_FLAGS = @ENGINE_FLAGS@ -fno-defer-pop -fcaller-saves |
| DEBUGFLAG = @DEBUGFLAG@ |
DEBUGFLAG = @DEBUGFLAG@ |
| CFLAGS = $(DEBUGFLAG) -O4 -Wall $(SWITCHES) -DDEFAULTPATH=\"$(libdir)/gforth/site-forth:$(datadir)/gforth/site-forth:$(libdir)/gforth/$(VERSION):$(datadir)/gforth/$(VERSION):.\" |
CFLAGS = $(DEBUGFLAG) -I. -I$(srcdir) -O4 -Wall $(SWITCHES) -DDEFAULTPATH=\"$(FORTHPATH)\" |
| |
|
| #John Wavrik should use -Xlinker -N to get a writable text (executable) |
#John Wavrik should use -Xlinker -N to get a writable text (executable) |
| XLDFLAGS = @LDFLAGS@ |
XLDFLAGS = @LDFLAGS@ |
| #older emacses have their site-lisp in $(libdir)/emacs/ |
#older emacses have their site-lisp in $(libdir)/emacs/ |
| emacssitelispdir=$(datadir)/emacs/site-lisp |
emacssitelispdir=$(datadir)/emacs/site-lisp |
| |
|
| INCLUDES = forth.h threading.h io.h io-dos.h config.h |
INCLUDES = forth.h threading.h io.h |
| |
|
| KERN_SRC = \ |
KERN_SRC = \ |
| add.fs \ |
aliases0.fs \ |
| aliases.fs \ |
aliases.fs \ |
| |
conditionals.fs \ |
| cross.fs \ |
cross.fs \ |
| errore.fs \ |
errore.fs \ |
| extend.fs \ |
files.fs \ |
| kernal.fs \ |
kernel.fs \ |
| main.fs \ |
main.fs \ |
| |
primitives0.fs \ |
| search-order.fs \ |
search-order.fs \ |
| |
special.fs \ |
| tools.fs \ |
tools.fs \ |
| toolsext.fs \ |
toolsext.fs \ |
| vars.fs \ |
vars.fs |
| version.fs |
|
| |
|
| GFORTH_FI_SRC = \ |
GFORTH_FI_SRC = \ |
| assert.fs \ |
assert.fs \ |
| debugging.fs \ |
debugging.fs \ |
| dumpimage.fs \ |
dumpimage.fs \ |
| environ.fs \ |
environ.fs \ |
| |
errors.fs \ |
| |
extend.fs \ |
| float.fs \ |
float.fs \ |
| glocals.fs \ |
glocals.fs \ |
| hash.fs \ |
hash.fs \ |
| history.fs \ |
history.fs \ |
| interpretation.fs \ |
intcomp.fs \ |
| look.fs \ |
look.fs \ |
| search-order.fs \ |
search-order.fs \ |
| see.fs \ |
see.fs \ |
| wordinfo.fs |
wordinfo.fs |
| |
|
| FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) \ |
FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) \ |
| ansi.fs answords.fs \ |
ans-report.fs ansi.fs answords.fs \ |
| checkans.fs \ |
checkans.fs \ |
| code.fs colorize.fs \ |
code.fs colorize.fs \ |
| doskey.fs ds2texi.fs \ |
doskey.fs ds2texi.fs \ |
| tt.fs sokoban.fs \ |
tt.fs sokoban.fs \ |
| wordsets.fs \ |
wordsets.fs \ |
| tester.fs coretest.fs postponetest.fs dbltest.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 \ |
| |
oof.fs oofsampl.fs objects.fs |
| |
|
| SOURCES = CVS compat 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 \ |
acconfig.h config.h.in stamp-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 memcasecmp.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 atanh.c \ |
| strerror.c strsignal.c dblsub.c \ |
strerror.c strsignal.c dblsub.c \ |
| INSTALL.DOS makefile.dos mkdosmf.sed configure.bat \ |
INSTALL.DOS makefile.dos mkdosmf.sed configure.bat dosconf.h \ |
| startup.dos history.dos \ |
startup.dos history.dos \ |
| |
configure.cmd mkos2mf.sed os2conf.h makefile.os2 \ |
| glosgen.glo glossaries.doc \ |
glosgen.glo glossaries.doc \ |
| $(INCLUDES) $(FORTH_SRC) |
$(INCLUDES) $(FORTH_SRC) |
| |
|
| OBJECTS = engine.o io.o main.o memcasecmp.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 primitives.fs |
| FORTH_GEN = $(FORTH_GEN0) @KERNAL@ gforth.fi |
FORTH_GEN = $(FORTH_GEN0) @KERNEL@ gforth.fi |
| # this is used for antidependences, |
# this is used for antidependences, |
| FORTH_GEN1 = $(FORTH_GEN0) @kernal_fi@ |
FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@ |
| |
|
| #distributed documentation |
#distributed documentation |
| DOCDIST = gforth.texi gforth.fns gforth.ps gforth.info* |
DOCDIST = gforth.info* gforth.ps |
| |
|
| |
#stuff in a binonly distribution |
| |
BINONLYDIST = config.status Makefile gforth $(OBJECTS) \ |
| |
machine.h config.h kernel.fi stamp-h version.h version.fs \ |
| |
INSTALL.BINDIST |
| |
|
| KERNLS = kernl16b.fi- kernl16l.fi- \ |
KERNLS = kernl16b.fi- kernl16l.fi- \ |
| kernl32b.fi- kernl32l.fi- \ |
kernl32b.fi- kernl32l.fi- \ |
| |
|
| all: version.fs more |
all: version.fs more |
| |
|
| version.c: Makefile.in |
#this rule avoids remaking everything after minor changes in Makefile.in |
| echo "char gforth_version[]=\"$(VERSION)\" ;" >$@ |
version-stamp: Makefile.in |
| |
test x'$(VERSION)' = x`cat $@` || echo $(VERSION) >$@ |
| |
|
| version.fs: Makefile.in |
version.h: version-stamp |
| |
echo "static char gforth_version[]=\"$(VERSION)\" ;" >$@ |
| |
|
| |
version.fs: version-stamp |
| $(MAKE) gforth |
$(MAKE) gforth |
| echo ": version-string s\" $(VERSION)\" ;" >$@ |
echo ": version-string s\" $(VERSION)\" ;" >$@ |
| |
|
| more: $(FORTH_GEN) gforth |
more: $(OBJECTS) $(FORTH_GEN) gforth |
| |
|
| #from the gcc Makefile: |
#from the gcc Makefile: |
| #"Deletion of files made during compilation. |
#"Deletion of files made during compilation. |
| # `realclean' also deletes everything that could be regenerated automatically." |
# `realclean' also deletes everything that could be regenerated automatically." |
| |
|
| mostlyclean: |
mostlyclean: |
| -$(RM) -rf *.s gforth.fi *.fi~ *.fi- version.fs TAGS \ |
-$(RM) -rf *.s gforth.fi *.fi~ *.fi- version.fs *TAGS \ |
| crossdoc.fd doc.fd gforth.aux gforth.cp gforth.cps \ |
crossdoc.fd doc.fd gforth.texi gforth.fns gforth.aux gforth.cp gforth.cps \ |
| gforth.dvi gforth.fn gforth.ky gforth.log gforth.pg \ |
gforth.dvi gforth.fn gforth.ky gforth.log gforth.pg \ |
| gforth.toc gforth.tp gforth.vr html |
gforth.toc gforth.tp gforth.vr html gforth-$(VERSION).tar.gz \ |
| |
version.h |
| |
|
| clean: mostlyclean |
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 config.h Makefile |
-$(RM) machine.h kernel.fi config.cache config.log \ |
| |
config.status config.h Makefile stamp-h |
| |
|
| #realclean is useless, but dangerous, so it's commented out |
#realclean is useless, but dangerous, so it's commented out |
| #realclean: distclean |
#realclean: distclean |
| -$(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) |
#use dist targets only when srcdir=. |
| -rm -rf gforth-$(VERSION) |
dist: $(SOURCES) $(FORTH_GEN0) @KERNEL@ $(DOCDIST) |
| |
-$(RMTREE) gforth-$(VERSION) |
| |
mkdir gforth-$(VERSION) |
| |
$(CP) -rp $(SOURCES) $(FORTH_GEN0) @KERNEL@ $(DOCDIST) gforth-$(VERSION) |
| |
$(TAR) gforth-$(VERSION)|gzip -9 >gforth-$(VERSION).tar.gz |
| |
-$(RMTREE) gforth-$(VERSION) |
| |
|
| |
#use dist targets only when srcdir=. |
| |
dosdist: $(SOURCES) $(FORTH_GEN0) @KERNEL@ $(DOCDIST) |
| |
-$(RMTREE) gforth.$(DOSVERSION) |
| |
mkdir gforth.$(DOSVERSION) |
| |
$(CP) -rp $(SOURCES) $(FORTH_GEN0) @KERNEL@ $(DOCDIST) gforth.$(DOSVERSION) |
| |
zip -r9 gforth.zip gforth.$(DOSVERSION)/* |
| |
-$(RMTREE) gforth.$(DOSVERSION) |
| |
|
| |
#A source distribution contains only the things needed to install gforth, |
| |
#without the documents. |
| |
srcdist: $(SOURCES) $(FORTH_GEN0) @KERNEL@ |
| |
-$(RMTREE) gforth-$(VERSION) |
| mkdir gforth-$(VERSION) |
mkdir gforth-$(VERSION) |
| $(CP) -rp $(SOURCES) $(FORTH_GEN0) @KERNAL@ $(DOCDIST) gforth-$(VERSION) |
$(CP) -rp $(SOURCES) $(FORTH_GEN0) @KERNEL@ gforth-$(VERSION) |
| tar cvf - gforth-$(VERSION)|gzip -9 >gforth-$(VERSION).tar.gz |
$(TAR) gforth-$(VERSION)|gzip -9 >gforth-src-$(VERSION).tar.gz |
| -rm -rf gforth-$(VERSION) |
-$(RMTREE) gforth-$(VERSION) |
| |
|
| |
#A document distribution contains only the documents, which can be created |
| |
#with MAKE. |
| |
docdist: $(DOCDIST) |
| |
-$(RMTREE) gforth-$(VERSION) |
| |
mkdir gforth-$(VERSION) |
| |
$(CP) -rp $(DOCDIST) gforth-$(VERSION) |
| |
$(TAR) gforth-$(VERSION)|gzip -9 >gforth-doc-$(VERSION).tar.gz |
| |
-$(RMTREE) gforth-$(VERSION) |
| |
|
| #a binary distribution contains the complete source distribution, |
#a binary distribution contains the complete source distribution, |
| # the objects, the executable and the links. the objects are there for making |
# the objects, the executable and the links. the objects are there for making |
| # make happy. |
# make happy. |
| bindist: $(SOURCES) $(FORTH_GEN) gforth $(OBJECTS) config.status Makefile |
bindist: $(SOURCES) $(FORTH_GEN0) @KERNEL@ $(DOCDIST) $(BINONLYDIST) |
| -rm -rf gforth-$(VERSION) |
-$(RMTREE) gforth-$(VERSION) |
| mkdir gforth-$(VERSION) |
mkdir gforth-$(VERSION) |
| $(CP) -rp -d $(SOURCES) config.status Makefile $(FORTH_GEN) gforth $(OBJECTS) machine.h kernal.fi gforth-$(VERSION) |
$(CP) -rp -d $(SOURCES) $(FORTH_GEN0) @KERNEL@ $(DOCDIST) $(BINONLYDIST) gforth-$(VERSION) |
| strip gforth-$(VERSION)/gforth |
strip gforth-$(VERSION)/gforth |
| tar cvf - gforth-$(VERSION)|gzip -9 >gforth-$(VERSION)-@host@.tar.gz |
$(TAR) gforth-$(VERSION)|gzip -9 >gforth-$(VERSION)-@host@.tar.gz |
| |
|
| #makes a package with only the stuff not present in the source |
#makes a package with only the stuff not present in the source |
| #package. For installation the source package is still needed! |
#package. For installation the source package is still needed! |
| #all the binonly packages you are interested in on the disk. The user |
#all the binonly packages you are interested in on the disk. The user |
| #then just has to unpack the source and his favourite binonly into the |
#then just has to unpack the source and his favourite binonly into the |
| #same directory and has a full binary distribution. |
#same directory and has a full binary distribution. |
| binonlydist: $(SOURCES) $(FORTH_GEN) gforth $(OBJECTS) |
binonlydist: $(SOURCES) $(FORTH_GEN0) @KERNEL@ $(DOCDIST) $(BINONLYDIST) |
| -rm -rf gforth-$(VERSION) |
-$(RMTREE) gforth-$(VERSION) |
| mkdir gforth-$(VERSION) |
mkdir gforth-$(VERSION) |
| $(CP) -p -d config.status Makefile gforth $(OBJECTS) machine.h kernal.fi gforth-$(VERSION) |
$(CP) -p -d $(BINONLYDIST) gforth-$(VERSION) |
| strip gforth-$(VERSION)/gforth |
strip gforth-$(VERSION)/gforth |
| tar cvf - gforth-$(VERSION)|gzip -9 >gforth-$(VERSION)-binonly-@host@.tar.gz |
$(TAR) gforth-$(VERSION)|gzip -9 >gforth-$(VERSION)-binonly-@host@.tar.gz |
| |
|
| |
|
| |
|
| #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* primitives gforth.TAGS |
#install does not depend on gforth.info, because that would require |
| for i in $(bindir) $(mandir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(datadir)/gforth/site-forth; do \ |
#supplying a lot of files that can be easily generated (only info is |
| $(INSTALL_DIR) $$i; \ |
#hard to generate) |
| done |
install: gforth $(FORTH_SRC) kernel.fi gforth.fi gforth.1 primitives gforth.TAGS installdirs |
| touch $(datadir)/gforth/site-forth/site-init.fs |
touch $(datadir)/gforth/site-forth/site-init.fs |
| -$(RM) $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
-$(RM) $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
| $(INSTALL_PROGRAM) -s gforth $(bindir) |
$(INSTALL_PROGRAM) -s gforth $(bindir) |
| ln $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
ln $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
| $(INSTALL_DATA) gforth.1 $(mandir) |
-$(INSTALL_DATA) $(srcdir)/gforth.1 $(man1dir) |
| for i in gforth.info*; do $(INSTALL_DATA) $$i $(infodir); done |
-for i in $(srcdir)/gforth.info*; do $(INSTALL_DATA) $$i $(infodir); done |
| for i in $(FORTH_SRC) primitives; do \ |
for i in $(FORTH_SRC) primitives; do \ |
| $(INSTALL_DATA) $$i $(datadir)/gforth/$(VERSION); \ |
$(INSTALL_DATA) $(srcdir)/$$i $(datadir)/gforth/$(VERSION); \ |
| done |
done |
| $(INSTALL_DATA) kernal.fi $(libdir)/gforth/$(VERSION) |
$(INSTALL_DATA) kernel.fi $(libdir)/gforth/$(VERSION) |
| $(FORTHK) startup.fs dumpimage.fs -e "savesystem $(libdir)/gforth/$(VERSION)/gforth.fi bye" #gforth.fi contains some path names |
$(RM) gforth.fi; $(MAKE) gforth.fi #gforth.fi contains some path names |
| sed s:$(srcdir)/:$(datadir)/gforth/$(VERSION): gforth.TAGS >TAGS; $(INSTALL_DATA) TAGS $(datadir)/gforth/$(VERSION) |
$(INSTALL_DATA) gforth.fi $(libdir)/gforth/$(VERSION) |
| |
sed s:^$(srcdir)/:$(datadir)/gforth/$(VERSION)/: gforth.TAGS >TAGS; $(INSTALL_DATA) TAGS $(datadir)/gforth/$(VERSION) |
| if test -d $(emacssitelispdir); then \ |
if test -d $(emacssitelispdir); then \ |
| $(INSTALL_DATA) gforth.el $(emacssitelispdir); \ |
$(INSTALL_DATA) $(srcdir)/gforth.el $(emacssitelispdir); \ |
| else \ |
else \ |
| echo "please install gforth.el in your .../emacs/site-lisp directory"; \ |
echo ">>>>>Please install $(srcdir)/gforth.el in your .../emacs/site-lisp directory"; \ |
| fi |
fi |
| |
echo ">>>>> Please make an entry for Gforth in your info dir file; e.g.:"; \ |
| |
echo "* Gforth: (gforth). A fast interpreter for the Forth language." |
| |
|
| |
install-strip: install |
| |
|
| |
installdirs: mkinstalldirs |
| |
$(srcdir)/mkinstalldirs $(bindir) $(man1dir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(datadir)/gforth/site-forth |
| |
|
| #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' |
| uninstall: |
uninstall: |
| -$(RM) -rf $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(bindir)/gforth-$(VERSION) |
-$(RM) -rf $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(bindir)/gforth-$(VERSION) |
| @echo -e "Type\n$(RM) -rf $(bindir)/gforth $(mandir)/gforth.1 $(infodir)/gforth.info* $(datadir)/gforth $(libdir)/gforth\nto remove Gforth completely" |
@echo -e "Type\n$(RM) -rf $(bindir)/gforth $(man1dir)/gforth.1 $(infodir)/gforth.info* $(datadir)/gforth $(libdir)/gforth\nto remove Gforth completely" |
| |
|
| check: test |
|
| touch test |
|
| |
|
| test: gforth gforth.fi |
check test: gforth gforth.fi |
| $(FORTH) tester.fs coretest.fs postponetest.fs dbltest.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) -m 100000 prims2x.fs -e "s\" $(srcdir)/primitives.b\" ' output-c process-file bye"| diff -c - $(srcdir)/primitives.i |
| |
|
| bench: gforth gforth.fi |
bench: gforth gforth.fi |
| @echo 'Each benchmark takes about 30s on a 486-66 (gcc-2.6.3 -DFORCE_REG)' |
@echo 'Each benchmark takes about 30s on a 486-66 (gcc-2.6.3 -DFORCE_REG)' |
| $(GCC) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@ |
$(GCC) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@ |
| @MAKE_EXE@ |
@MAKE_EXE@ |
| |
|
| kernl16l.fi-: $(KERN_SRC) mach16l.fs $(FORTH_GEN0) |
kernl%.fi-: mach%.fs $(KERN_SRC) version.fs $(FORTH_GEN0) |
| $(FORTHK) -p . interpretation.fs -e 's" mach16l.fs"' main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye" |
$(FORTHK) -e 's" $<"' main.fs -e "save-cross $@ $(bindir)/gforth-$(VERSION) bye" |
| |
|
| kernl16b.fi-: $(KERN_SRC) mach16b.fs $(FORTH_GEN0) |
|
| $(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) |
|
| $(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) |
|
| $(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) |
kernl%.fi: kernl%.fi- $(KERNLS) |
| $(FORTHK) -p . interpretation.fs -e 's" mach64l.fs"' main.fs -e "save-cross kernl64l.fi- $(bindir)/gforth-$(VERSION) bye" |
-$(CP) $@ $@~ |
| |
-$(CP) $< $@ |
| |
@LINK_KERNL@ |
| |
|
| |
gforth.fi: @kernel_fi@ gforth $(GFORTH_FI_SRC) |
| |
$(FORTHK) --clear-dictionary $(FORTHSIZES) startup.fs -e "savesystem gforth.fi1 bye" |
| |
$(FORTHK) --clear-dictionary --offset-image $(FORTHSIZES) startup.fs -e "savesystem gforth.fi2 bye" |
| |
$(FORTHK) -m 100000 startup.fs comp-image.fs -e "comp-image gforth.fi1 gforth.fi2 gforth.fi bye" |
| |
|
| |
#TAGS is a GNU standard target |
| |
TAGS: gforth.TAGS |
| |
$(CP) gforth.TAGS $@ |
| |
|
| |
gforth.TAGS: @kernel_fi@ gforth $(GFORTH_FI_SRC) primitives.TAGS |
| |
$(FORTHK) etags.fs startup.fs -e bye |
| |
cat TAGS primitives.TAGS kernel.TAGS >gforth.TAGS |
| |
rm TAGS |
| |
|
| kernl64b.fi-: $(KERN_SRC) mach64b.fs $(FORTH_GEN0) |
engine.s: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) config.h |
| $(FORTHK) -p . interpretation.fs -e 's" mach64b.fs"' main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye" |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -S $(srcdir)/engine.c |
| |
|
| kernl16b.fi: $(KERNLS) |
engine.o: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) config.h |
| -$(CP) kernl16b.fi kernl16b.fi~ |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c $(srcdir)/engine.c |
| -$(CP) kernl16b.fi- kernl16b.fi |
|
| @LINK_KERNL16B@ |
|
| |
|
| kernl16l.fi: $(KERNLS) |
main.o: main.c machine.h threading.h $(INCLUDES) config.h version.h |
| -$(CP) kernl16l.fi kernl16l.fi~ |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c $(srcdir)/main.c |
| -$(CP) kernl16l.fi- kernl16l.fi |
|
| @LINK_KERNL16L@ |
|
| |
|
| kernl32b.fi: $(KERNLS) |
|
| -$(CP) kernl32b.fi kernl32b.fi~ |
|
| -$(CP) kernl32b.fi- kernl32b.fi |
|
| @LINK_KERNL32B@ |
|
| |
|
| kernl32l.fi: $(KERNLS) |
|
| -$(CP) kernl32l.fi kernl32l.fi~ |
|
| -$(CP) kernl32l.fi- kernl32l.fi |
|
| @LINK_KERNL32L@ |
|
| |
|
| kernl64b.fi: $(KERNLS) |
|
| -$(CP) kernl64b.fi kernl64b.fi~ |
|
| -$(CP) kernl64b.fi- kernl64b.fi |
|
| @LINK_KERNL64B@ |
|
| |
|
| kernl64l.fi: $(KERNLS) |
|
| -$(CP) kernl64l.fi kernl64l.fi~ |
|
| -$(CP) kernl64l.fi- kernl64l.fi |
|
| @LINK_KERNL64L@ |
|
| |
|
| gforth.fi: @kernal_fi@ gforth $(GFORTH_FI_SRC) |
|
| $(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) |
|
| $(GCC) $(CFLAGS) $(ENGINE_FLAGS) -S engine.c |
|
| |
|
| engine.o: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) |
|
| $(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c engine.c |
|
| |
|
| main.o: main.c machine.h threading.h $(INCLUDES) |
|
| $(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c main.c |
|
| |
|
| strtoul.o: strtoul.c strtol.c |
strtoul.o: strtoul.c strtol.c |
| |
|
| m4 -s $(srcdir)/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) prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye" >$@ |
| |
|
| prim_labels.i : primitives.b prims2x.fs |
prim_labels.i : primitives.b prims2x.fs |
| $(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-label process-file bye" >$@ |
$(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-label process-file bye" >$@ |
| |
|
| aliases.fs: primitives.b prims2x.fs |
|
| $(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-alias process-file bye" >$@ |
|
| |
|
| primitives.fs: primitives.b prims2x.fs |
aliases.fs: primitives.b prims2x.fs aliases0.fs |
| $(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-forth process-file bye" >$@ |
$(CP) aliases0.fs aliases.fs |
| |
$(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-alias process-file bye" >>$@ |
| |
|
| |
primitives.fs: primitives.b prims2x.fs primitives0.fs |
| |
$(CP) primitives0.fs primitives.fs |
| |
$(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-forth process-file bye" >>$@ |
| |
|
| primitives.TAGS: primitives.b prims2x.fs |
primitives.TAGS: primitives.b prims2x.fs |
| $(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-tag process-file bye" >$@ |
$(FORTHK) prims2x.fs -e "s\" $(srcdir)/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 \ |
| vt100.fs colorize.fs see.fs bufio.fs debug.fs history.fs \ |
vt100.fs colorize.fs see.fs bufio.fs debug.fs history.fs \ |
| doskey.fs vt100key.fs startup.fs assert.fs debugging.fs code.fs |
doskey.fs vt100key.fs startup.fs assert.fs debugging.fs code.fs |
| $(FORTHK) -p . -e "s\" doc.fd\"" makedoc.fs startup.fs code.fs -e bye |
$(FORTHK) -e "s\" doc.fd\"" makedoc.fs startup.fs code.fs -e bye |
| |
|
| crossdoc.fd: $(KERN_SRC) $(FORTH_GEN0) |
crossdoc.fd: $(KERN_SRC) version.fs $(FORTH_GEN0) |
| $(FORTHK) -p . interpretation.fs -e 's" mach32l.fs"' main.fs |
$(FORTHK) -e 's" mach32l.fs"' main.fs -e bye |
| |
|
| 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) -m 100000 ds2texi.fs prims2x.fs -e "s\" $(srcdir)/primitives.b\" ' register-doc process-file" crossdoc.fd doc.fd -e "s\" $(srcdir)/gforth.ds\" r/o open-file throw ds2texi bye" >$@ |
| |
|
| checkdoc: gforth.ds primitives.b ds2texi.fs prims2x.fs doc.fd crossdoc.fd answords.fs |
checkdoc: gforth.ds primitives.b ds2texi.fs prims2x.fs doc.fd crossdoc.fd answords.fs |
| $(FORTHK) -p . ds2texi.fs answords.fs -e bye |
$(FORTHK) ds2texi.fs answords.fs -e bye |
| |
|
| |
dvi: gforth.dvi |
| |
|
| gforth.dvi gforth.fns: gforth.texi |
gforth.dvi gforth.fns: gforth.texi |
| $(TEXI2DVI) gforth.texi |
$(TEXI2DVI) gforth.texi |
| gforth.ps: gforth.dvi |
gforth.ps: gforth.dvi |
| $(DVI2PS) gforth.dvi -o $@ |
$(DVI2PS) gforth.dvi -o $@ |
| |
|
| gforth.info*: gforth.texi |
info: gforth.info |
| |
|
| |
gforth.info: gforth.texi |
| -$(MAKEINFO) gforth.texi |
-$(MAKEINFO) gforth.texi |
| |
|
| html: gforth.texi |
html: gforth.texi |
| -mkdir html |
-mkdir html |
| cd html; $(TEXI2HTML) -menu -split_node ../gforth.texi |
cd html; $(TEXI2HTML) -menu -split_node ../gforth.texi |
| |
|
| |
doc: gforth.ps html |
| |
|
| # 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 |
$(srcdir)/configure: configure.in |
| cd ${srcdir} && autoconf |
cd $(srcdir) && autoconf |
| |
|
| # autoheader might not change config.h.in, so touch a stamp file. |
# autoheader might not change config.h.in, so touch a stamp file. |
| ${srcdir}/config.h.in: stamp-h.in |
$(srcdir)/config.h.in: stamp-h.in |
| ${srcdir}/stamp-h.in: configure.in acconfig.h |
$(srcdir)/stamp-h.in: configure.in acconfig.h |
| cd ${srcdir} && autoheader |
cd $(srcdir) && autoheader |
| echo timestamp > ${srcdir}/stamp-h.in |
echo timestamp > $(srcdir)/stamp-h.in |
| |
|
| config.h: stamp-h |
config.h: stamp-h |
| stamp-h: config.h.in config.status |
stamp-h: config.h.in config.status |
| 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 |
| |
|
| |
makefile.os2: mkos2mf.sed Makefile.in |
| |
sed -f mkos2mf.sed <Makefile.in >makefile.os2 |
| |
echo '%.o: %.c' >>makefile.os2 |
| |
echo ' $$(GCC) $$(CFLAGS) -c $$<' >>makefile.os2 |
| |
|
| history.dos: history.fs Makefile.in |
history.dos: history.fs Makefile.in |
| sed -e "s,~/\.gforth-history,/gforth.his,g" <history.fs >history.dos |
sed -e "s,~/\.gforth-history,/gforth.his,g" <history.fs >history.dos |
| |
|