| |
|
| #gforth version |
#gforth version |
| VERSION_MAJOR=0 |
VERSION_MAJOR=0 |
| VERSION_MINOR=2 |
VERSION_MINOR=3 |
| VERSION_RELEASE=9 |
VERSION_RELEASE=0 |
| VERSION =$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_RELEASE) |
VERSION =$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_RELEASE) |
| DOSVERSION=$(VERSION_MAJOR)$(VERSION_MINOR)$(VERSION_RELEASE) |
DOSVERSION=$(VERSION_MAJOR)$(VERSION_MINOR)$(VERSION_RELEASE) |
| SHELL = /bin/sh |
SHELL = /bin/sh |
| FORTHPATH = $(libdir)/gforth/site-forth$(PATHSEP)$(datadir)/gforth/site-forth$(PATHSEP)$(libdir)/gforth/$(VERSION)$(PATHSEP)$(datadir)/gforth/$(VERSION)$(PATHSEP). |
FORTHPATH = $(libdir)/gforth/site-forth$(PATHSEP)$(datadir)/gforth/site-forth$(PATHSEP)$(libdir)/gforth/$(VERSION)$(PATHSEP)$(datadir)/gforth/$(VERSION)$(PATHSEP). |
| FORTHSIZES = @FORTHSIZES@ |
FORTHSIZES = @FORTHSIZES@ |
| FORTH = ./gforth -p $(FORTHPATH)$(PATHSEP)$(srcdir) |
FORTH = ./gforth -p $(FORTHPATH)$(PATHSEP)$(srcdir) |
| FORTHK = ./gforth -p .$(PATHSEP)$(srcdir) -i ./kernel.fi |
FORTHKFLAGS= -p .$(PATHSEP)$(srcdir) -i ./kernel.fi |
| |
FORTHK = ./gforth $(FORTHKFLAGS) |
| FORTHP = ./gforth -i ./kernel.fi |
FORTHP = ./gforth -i ./kernel.fi |
| STRIP = strip |
STRIP = strip |
| TEXI2DVI = texi2dvi |
TEXI2DVI = texi2dvi |
| INCLUDES = forth.h threading.h io.h |
INCLUDES = forth.h threading.h io.h |
| |
|
| KERN_SRC = \ |
KERN_SRC = \ |
| add.fs \ |
aliases0.fs \ |
| aliases.fs \ |
aliases.fs \ |
| |
args.fs \ |
| |
conditionals.fs \ |
| |
cond-old.fs \ |
| cross.fs \ |
cross.fs \ |
| errore.fs \ |
errore.fs \ |
| extend.fs \ |
files.fs \ |
| kernel.fs \ |
kernel.fs \ |
| main.fs \ |
main.fs \ |
| |
primitives0.fs \ |
| search-order.fs \ |
search-order.fs \ |
| special.fs \ |
special.fs \ |
| tools.fs \ |
tools.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 \ |
| look.fs \ |
look.fs \ |
| search-order.fs \ |
search-order.fs \ |
| see.fs \ |
see.fs \ |
| |
see-ext.fs \ |
| source.fs \ |
source.fs \ |
| startup.fs \ |
startup.fs \ |
| struct.fs \ |
struct.fs \ |
| doskey.fs ds2texi.fs \ |
doskey.fs ds2texi.fs \ |
| etags.fs filedump.fs \ |
etags.fs filedump.fs \ |
| glosgen.fs gray.fs \ |
glosgen.fs gray.fs \ |
| makedoc.fs \ |
makedoc.fs comp-image.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 \ |
| more.fs other.fs prims2x.fs random.fs \ |
more.fs other.fs prims2x.fs random.fs \ |
| sieve.fs \ |
sieve.fs \ |
| ecvt.c memcmp.c strtol.c strtoul.c ansidecl.h memmove.c pow10.c atanh.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 dosconf.h \ |
INSTALL.DOS makefile.dos mkdosmf.sed configure.bat dosconf.h \ |
| startup.dos history.dos \ |
startup.dos history.dos mkinstalldirs \ |
| configure.cmd mkos2mf.sed os2conf.h makefile.os2 \ |
configure.cmd mkos2mf.sed os2conf.h makefile.os2 \ |
| glosgen.glo glossaries.doc \ |
glosgen.glo glossaries.doc \ |
| $(INCLUDES) $(FORTH_SRC) |
$(INCLUDES) $(FORTH_SRC) |
| |
|
| GEN = gforth version.fs |
GEN = gforth version.fs |
| |
|
| OBJECTS = engine.o io.o main.o memcasecmp.o @LIBOBJS@ @getopt_long@ |
OBJECTS0 = io.o memcasecmp.o @LIBOBJS@ @getopt_long@ |
| |
OBJECTS = engine.o main.o |
| |
OBJECTS_DITC = engine-ditc.o main-ditc.o |
| |
|
| # 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) @KERNEL@ gforth.fi |
FORTH_GEN = $(FORTH_GEN0) @KERNEL@ gforth.fi |
| # this is used for antidependences, |
# this is used for antidependences, |
| FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@ |
FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@ |
| DOCDIST = gforth.info* gforth.ps |
DOCDIST = gforth.info* gforth.ps |
| |
|
| #stuff in a binonly distribution |
#stuff in a binonly distribution |
| BINONLYDIST = config.status Makefile gforth $(OBJECTS) \ |
BINONLYDIST = config.status Makefile gforth gforth-ditc \ |
| |
$(OBJECTS0) $(OBJECTS) $(OBJECTS_DITC)\ |
| machine.h config.h kernel.fi stamp-h version.h version.fs \ |
machine.h config.h kernel.fi stamp-h version.h version.fs \ |
| INSTALL.BINDIST |
INSTALL.BINDIST |
| |
|
| |
|
| #this rule avoids remaking everything after minor changes in Makefile.in |
#this rule avoids remaking everything after minor changes in Makefile.in |
| version-stamp: Makefile.in |
version-stamp: Makefile.in |
| if test x'$(VERSION)' != x`cat $@`; then echo $(VERSION) >$@; fi |
test x'$(VERSION)' = x`cat $@` || echo $(VERSION) >$@ |
| |
|
| version.h: version-stamp |
version.h: version-stamp |
| echo "static char gforth_version[]=\"$(VERSION)\" ;" >$@ |
echo "static char gforth_version[]=\"$(VERSION)\" ;" >$@ |
| $(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. |
| dosdist: $(SOURCES) $(FORTH_GEN0) @KERNEL@ $(DOCDIST) |
dosdist: $(SOURCES) $(FORTH_GEN0) @KERNEL@ $(DOCDIST) |
| -$(RMTREE) gforth.$(DOSVERSION) |
-$(RMTREE) gforth.$(DOSVERSION) |
| mkdir gforth.$(DOSVERSION) |
mkdir gforth.$(DOSVERSION) |
| $(CP) -rp $(SOURCES) $(FORTH_GEN0) @KERNEL@ $(DOCDIST) gforth.$(DOSVERSION) |
$(CP) -rp $(SOURCES) $(FORTH_GEN) $(DOCDIST) gforth.$(DOSVERSION) |
| zip -r9 gforth.zip gforth.$(DOSVERSION)/* |
zip -r9 gforth.zip gforth.$(DOSVERSION)/* |
| -$(RMTREE) gforth.$(DOSVERSION) |
-$(RMTREE) gforth.$(DOSVERSION) |
| |
|
| -$(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) $(srcdir)/gforth.1 $(man1dir) |
-$(INSTALL_DATA) $(srcdir)/gforth.1 $(man1dir) |
| for i in $(srcdir)/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) $(srcdir)/$$i $(datadir)/gforth/$(VERSION); \ |
$(INSTALL_DATA) $(srcdir)/$$i $(datadir)/gforth/$(VERSION); \ |
| done |
done |
| $(INSTALL_DATA) kernel.fi $(libdir)/gforth/$(VERSION) |
$(INSTALL_DATA) kernel.fi $(libdir)/gforth/$(VERSION) |
| $(RM) gforth.fi; $(MAKE) gforth.fi #gforth.fi contains some path names |
$(RM) gforth.fi; $(MAKE) gforth.fi #gforth.fi contains some path names |
| |
$(INSTALL_DATA) gforth.fi $(libdir)/gforth/$(VERSION) |
| sed s:^$(srcdir)/:$(datadir)/gforth/$(VERSION)/: gforth.TAGS >TAGS; $(INSTALL_DATA) TAGS $(datadir)/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) $(srcdir)/gforth.el $(emacssitelispdir); \ |
$(INSTALL_DATA) $(srcdir)/gforth.el $(emacssitelispdir); \ |
| #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: 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\" $(srcdir)/primitives.b\" ' output-c process-file bye"| diff -c - $(srcdir)/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)' |
| |
|
| dvi: gforth.dvi |
dvi: gforth.dvi |
| |
|
| gforth: $(OBJECTS) |
gforth: $(OBJECTS) $(OBJECTS0) |
| -$(CP) gforth gforth~ |
-$(CP) gforth gforth~ |
| $(GCC) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@ |
$(GCC) $(LDFLAGS) $(OBJECTS) $(OBJECTS0) $(LDLIBS) -o $@ |
| @MAKE_EXE@ |
@MAKE_EXE@ |
| |
|
| |
gforth-ditc: $(OBJECTS_DITC) $(OBJECTS0) |
| |
$(GCC) $(LDFLAGS) $(OBJECTS_DITC) $(OBJECTS0) $(LDLIBS) -o $@ |
| |
@MAKE_EXE@ |
| |
|
| |
kernl%.fi-: mach%.fs $(KERN_SRC) version.fs $(FORTH_GEN0) |
| |
$(FORTHK) -e 's" $<"' main.fs -e "save-cross $@ $(bindir)/gforth-$(VERSION) bye" |
| |
|
| kernl16l.fi-: $(KERN_SRC) version.fs mach16l.fs $(FORTH_GEN0) |
kernl16l.fi-: $(KERN_SRC) version.fs mach16l.fs $(FORTH_GEN0) |
| $(FORTHK) -e 's" mach16l.fs"' main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye" |
$(FORTHK) -e 's" mach16l.fs"' main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye" |
| |
|
| kernl64b.fi-: $(KERN_SRC) version.fs mach64b.fs $(FORTH_GEN0) |
kernl64b.fi-: $(KERN_SRC) version.fs mach64b.fs $(FORTH_GEN0) |
| $(FORTHK) -e 's" mach64b.fs"' main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye" |
$(FORTHK) -e 's" mach64b.fs"' main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye" |
| |
|
| |
kernl%.fi: kernl%.fi- $(KERNLS) |
| |
-$(CP) $@ $@~ |
| |
-$(CP) $< $@ |
| |
@LINK_KERNL@ |
| |
|
| kernl16b.fi: $(KERNLS) |
kernl16b.fi: $(KERNLS) |
| -$(CP) kernl16b.fi kernl16b.fi~ |
-$(CP) kernl16b.fi kernl16b.fi~ |
| -$(CP) kernl16b.fi- kernl16b.fi |
-$(CP) kernl16b.fi- kernl16b.fi |
| -$(CP) kernl64l.fi- kernl64l.fi |
-$(CP) kernl64l.fi- kernl64l.fi |
| @LINK_KERNL64L@ |
@LINK_KERNL64L@ |
| |
|
| gforth.fi: @kernel_fi@ gforth $(GFORTH_FI_SRC) |
gforth.fi: @kernel_fi@ gforth-makeimage gforth gforth-ditc $(GFORTH_FI_SRC) |
| $(FORTHK) --clear-dictionary $(FORTHSIZES) startup.fs -e "savesystem gforth.fi1 bye" |
GFORTH=./gforth-ditc $(srcdir)/gforth-makeimage gforth.fi $(FORTHSIZES) $(FORTHKFLAGS) startup.fs |
| $(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 is a GNU standard target |
| TAGS: gforth.TAGS |
TAGS: gforth.TAGS |
| engine.o: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) config.h |
engine.o: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) config.h |
| $(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c $(srcdir)/engine.c |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c $(srcdir)/engine.c |
| |
|
| |
engine-ditc.o: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) config.h |
| |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -DDOUBLY_INDIRECT -o $@ -c $(srcdir)/engine.c |
| |
|
| main.o: main.c machine.h threading.h $(INCLUDES) config.h version.h |
main.o: main.c machine.h threading.h $(INCLUDES) config.h version.h |
| $(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c $(srcdir)/main.c |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c $(srcdir)/main.c |
| |
|
| |
main-ditc.o: main.c machine.h threading.h $(INCLUDES) config.h version.h |
| |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -DDOUBLY_INDIRECT -o $@ -c $(srcdir)/main.c |
| |
|
| strtoul.o: strtoul.c strtol.c |
strtoul.o: strtoul.c strtol.c |
| |
|
| primitives.b: primitives |
primitives.b: primitives |
| prim_labels.i : primitives.b prims2x.fs |
prim_labels.i : primitives.b prims2x.fs |
| $(FORTHK) 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 |
aliases.fs: primitives.b prims2x.fs aliases0.fs |
| $(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-alias 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 |
|
| $(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-forth 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) prims2x.fs -e "s\" $(srcdir)/primitives.b\" ' output-tag process-file bye" >$@ |
$(FORTHK) prims2x.fs -e "s\" $(srcdir)/primitives.b\" ' output-tag process-file bye" >$@ |