| # (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. |
| |
|
| VERSION =0.2.0#gforth version |
#gforth version |
| DOSVERSION=020#gforth version |
VERSION_MAJOR=0 |
| |
VERSION_MINOR=2 |
| |
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 |
RMTREE = rm -rf |
| INSTALL = @INSTALL@ |
INSTALL = @INSTALL@ |
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
| INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_DATA = @INSTALL_DATA@ |
| INSTALL_DIR = $(srcdir)/install-sh -d |
|
| LN_S = @LN_S@ |
LN_S = @LN_S@ |
| GCC = @CC@ |
GCC = @CC@ |
| CC = $(GCC) |
CC = $(GCC) |
| 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 \ |
| |
conditionals.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 \ |
| 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) @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@ |
| |
|
| all: version.fs more |
all: version.fs more |
| |
|
| version.h: Makefile.in |
#this rule avoids remaking everything after minor changes in Makefile.in |
| |
version-stamp: Makefile.in |
| |
test x'$(VERSION)' = x`cat $@` || echo $(VERSION) >$@ |
| |
|
| |
version.h: version-stamp |
| echo "static char gforth_version[]=\"$(VERSION)\" ;" >$@ |
echo "static char gforth_version[]=\"$(VERSION)\" ;" >$@ |
| |
|
| version.fs: Makefile.in |
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. |
| #install does not depend on gforth.info, because that would require |
#install does not depend on gforth.info, because that would require |
| #supplying a lot of files that can be easily generated (only info is |
#supplying a lot of files that can be easily generated (only info is |
| #hard to generate) |
#hard to generate) |
| install: gforth $(FORTH_SRC) kernel.fi gforth.fi gforth.1 primitives gforth.TAGS |
install: gforth $(FORTH_SRC) kernel.fi gforth.fi gforth.1 primitives gforth.TAGS installdirs |
| for i in $(bindir) $(mandir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(datadir)/gforth/site-forth; do \ |
|
| $(INSTALL_DIR) $$i; \ |
|
| done |
|
| 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) $(srcdir)/gforth.1 $(mandir) |
-$(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) |
| $(FORTHP) $(FORTHSIZES) startup.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) $(srcdir)/gforth.el $(emacssitelispdir); \ |
$(INSTALL_DATA) $(srcdir)/gforth.el $(emacssitelispdir); \ |
| else \ |
else \ |
| |
|
| install-strip: install |
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: 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)' |
| $(GCC) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@ |
$(GCC) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@ |
| @MAKE_EXE@ |
@MAKE_EXE@ |
| |
|
| kernl16l.fi-: $(KERN_SRC) version.fs mach16l.fs $(FORTH_GEN0) |
kernl%.fi-: mach%.fs $(KERN_SRC) version.fs $(FORTH_GEN0) |
| $(FORTHK) -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) version.fs mach16b.fs $(FORTH_GEN0) |
|
| $(FORTHK) -e 's" mach16b.fs"' main.fs -e "save-cross kernl16b.fi- $(bindir)/gforth-$(VERSION) bye" |
|
| |
|
| kernl32l.fi-: $(KERN_SRC) version.fs mach32l.fs $(FORTH_GEN0) |
kernl%.fi: kernl%.fi- $(KERNLS) |
| $(FORTHK) -e 's" mach32l.fs"' main.fs -e "save-cross kernl32l.fi- $(bindir)/gforth-$(VERSION) bye" |
-$(CP) $@ $@~ |
| |
-$(CP) $< $@ |
| kernl32b.fi-: $(KERN_SRC) version.fs mach32b.fs $(FORTH_GEN0) |
@LINK_KERNL@ |
| $(FORTHK) -e 's" mach32b.fs"' main.fs -e "save-cross kernl32b.fi- $(bindir)/gforth-$(VERSION) bye" |
|
| |
|
| kernl64l.fi-: $(KERN_SRC) version.fs mach64l.fs $(FORTH_GEN0) |
|
| $(FORTHK) -e 's" mach64l.fs"' main.fs -e "save-cross kernl64l.fi- $(bindir)/gforth-$(VERSION) bye" |
|
| |
|
| 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" |
|
| |
|
| kernl16b.fi: $(KERNLS) |
|
| -$(CP) kernl16b.fi kernl16b.fi~ |
|
| -$(CP) kernl16b.fi- kernl16b.fi |
|
| @LINK_KERNL16B@ |
|
| |
|
| kernl16l.fi: $(KERNLS) |
|
| -$(CP) kernl16l.fi kernl16l.fi~ |
|
| -$(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: @kernel_fi@ gforth $(GFORTH_FI_SRC) |
gforth.fi: @kernel_fi@ gforth $(GFORTH_FI_SRC) |
| $(FORTHK) $(FORTHSIZES) startup.fs -e "savesystem gforth.fi bye" |
$(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 is a GNU standard target |
| TAGS: gforth.TAGS |
TAGS: gforth.TAGS |
| 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" >$@ |