--- gforth/Makefile.in 2007/02/23 16:43:05 1.341 +++ gforth/Makefile.in 2007/10/22 20:11:43 1.370 @@ -48,6 +48,8 @@ PATHSEP = @PATHSEP@ osclass = @OSCLASS@ +EC = @EC@ + # ------------- Utility programs SHELL = /bin/sh @@ -57,12 +59,13 @@ CP = cp -p MV = mv TAR = tar cf - INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -s +INSTALL_PROGRAM = @INSTALL_PROGRAM@ MASSAGE_EXE = @MASSAGE_EXE@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INFO = @INSTALL_INFO@ LN_S = @LN_S@ +M4 = @M4@ GCC = @CC@ CC = $(GCC) FORTHPATH = .$(PATHSEP)$(libdir)/gforth/site-forth$(PATHSEP)$(siteforthdir)$(PATHSEP)$(libdir)/gforth/$(VERSION)$(PATHSEP)$(datadir)/gforth/$(VERSION) @@ -118,13 +121,16 @@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ srcdir = @srcdir@ -bindir = $(exec_prefix)/bin +bindir = @bindir@ #read-only architecture-independent files -datadir = $(prefix)/share +datarootdir = @datarootdir@ +datadir = @datadir@ #read-only architecture-dependent non-ascii files -libdir = $(prefix)/lib -infodir = $(prefix)/info -mandir = $(prefix)/man +libdir = @libdir@ +includedir = @includedir@ +infodir = @infodir@ +htmldir = @htmldir@ +mandir = @mandir@ man1dir= $(mandir)/man1 man1ext= .1 #older emacses have their site-lisp in $(libdir)/emacs/ @@ -221,6 +227,7 @@ GFORTH_FI_SRC = \ hash.fs \ history.fs \ intcomp.fs \ + libcc.fs \ locals.fs \ look.fs \ quotes.fs \ @@ -231,6 +238,7 @@ GFORTH_FI_SRC = \ source.fs \ startup.fs \ struct.fs \ + struct0x.fs \ stuff.fs \ tasker.fs \ termsize.fs \ @@ -252,14 +260,16 @@ FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) envos.dos envos.os2 etags.fs fft.fs filedump.fs fi2c.fs \ fsl-util.4th glosgen.fs gray.fs httpd.fs proxy.fs \ make-app.fs doc/makedoc.fs \ - locate.fs more.fs other.fs prims2x.fs random.fs \ + locate.fs more.fs onebench.fs other.fs prims2x.fs random.fs \ regexp.fs sokoban.fs string.fs table.fs tags.fs \ tt.fs \ unbuffer.fs wordsets.fs xwords.fs \ - test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs \ - test/string.fs test/float.fs test/gforth.fs \ + test/tester.fs test/ttester.fs \ + test/coretest.fs test/postpone.fs test/dbltest.fs \ + test/string.fs test/float.fs test/search.fs test/gforth.fs \ test/other.fs test/signals.fs test/checkans.fs \ test/primtest.fs test/coreext.fs test/deferred.fs \ + test/coremore.fs test/gforth-nofast.fs test/libcc.fs \ bubble.fs siev.fs matrix.fs fib.fs \ oof.fs oofsampl.fs objects.fs objexamp.fs mini-oof.fs moof-exm.fs \ moofglos.fs fixpath.fs \ @@ -298,6 +308,9 @@ ARCHS = \ arch/power/_sync_cache_range.c \ arch/alpha/machine.h \ arch/arm/machine.h \ + arch/arm/cacheflush0.c \ + arch/arm/cacheflush1.c \ + arch/arm/cacheflush2.c \ arch/ia64/machine.h \ arch/ia64/flush_icache_block.c \ arch/amd64/machine.h \ @@ -374,13 +387,13 @@ SOURCES = $(CVSDIRS) compat Makefile.in engine/config.h.in stamp-h.in envos.fs.in \ iss.sh install-sh INSTALL INSTALL.BINDIST NEWS README ToDo BUGS \ BUILD-FROM-SCRATCH model \ - COPYING COPYING.DOC AUTHORS ChangeLog Benchres aclocal.m4 \ - doc/gforth.ds doc/texinfo.tex doc/gforth.1 doc/version.texi.in \ + COPYING COPYING.LIB COPYING.DOC AUTHORS ChangeLog Benchres aclocal.m4 \ + doc/gforth.ds doc/gforth.1 doc/version.texi.in \ doc/vmgen.texi doc/fdl.texi doc/gpl.texi \ gforth.el \ prim cache0.vmg cache1.vmg peeprules.vmg \ engine/engine.c engine/main.c \ - engine/io.c engine/support.c engine/signals.c \ + engine/io.c engine/support.c engine/signals.c engine/libcc.h.in \ $(ARCHS) \ engine/profile.c \ engine/getopt.c engine/getopt1.c engine/getopt.h engine/select.c \ @@ -397,16 +410,16 @@ SOURCES = $(CVSDIRS) compat Makefile.in gforthmi.cmd glosgen.glo doc/glossaries.doc \ $(INCLUDES) $(FORTH_SRC) $(COMPAT) $(VMGEN_EX) $(VMGEN_EX2) \ timings.sc \ - test/coretest.out test/checkans.out \ + test/coretest.out test/checkans.out test/gforth.out \ cache-fast*.vmg RCS_FILES = ToDo model high-level -ENGINES = gforth$(EXE) gforth-ditc$(EXE) gforth-itc$(EXE) $(PROFEXES) +ENGINES = gforth$(EC)$(EXE) gforth-ditc$(EC)$(EXE) gforth-itc$(EC)$(EXE) $(PROFEXES) -ENGINES_FAST = gforth-fast$(EXE) #gforth-native$(EXE) +ENGINES_FAST = gforth-fast$(EC)$(EXE) #gforth-native$(EXE) -GEN = $(ENGINES) $(ENGINES_FAST) kernel/version.fs +GEN = $(ENGINES) $(ENGINES_FAST) kernel/version.fs gforth.elc # things that need a working forth system to be generated FORTH_GEN_ENGINE=engine/prim.i engine/prim_lab.i engine/prim_names.i \ @@ -425,15 +438,15 @@ FORTH_GEN = $(FORTH_GEN0) @KERNEL@ gfor FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@ build-ec #kernel dependencies -KERN_DEPS = $(KERN_SRC) kernel/version.fs machpc.fs $(FORTH_GEN0) compat/strcomp.fs +KERN_DEPS = $(KERN_SRC) kernel/version.fs machpc.fs $(FORTH_GEN0) compat/strcomp.fs gforth$(EXE) #distributed documentation DOCDIST = doc/gforth.info doc/gforth.info-* doc/gforth.ps \ doc/vmgen.info doc/vmgen.ps -KERNLS = kernl16b.fi- kernl16l.fi- \ - kernl32b.fi- kernl32l.fi- \ - kernl64b.fi- kernl64l.fi- +KERNLS = kernl16b$(EC).fi- kernl16l$(EC).fi- \ + kernl32b$(EC).fi- kernl32l$(EC).fi- \ + kernl64b$(EC).fi- kernl64l$(EC).fi- GEN_PRECIOUS = $(FORTH_GEN) $(KERNLS) \ doc/gforth.texi doc/gforth.dvi doc/gforth.ps \ @@ -460,7 +473,6 @@ version: Makefile.in configure.in # shell und file utilities. kernel/version.fs: version - $(MAKE) gforth$(EXE) echo ": version-string s\" $(VERSION)\" ;" > kernel/version.fs more: engines $(FORTH_GEN) $(GEN) @@ -498,9 +510,10 @@ docclean: FORCE clean: mostlyclean -$(RM) -rf $(GEN) *.o engine/*.o arch/*/*.o version \ - engine/gforth$(EXE) engine/gforth-fast$(EXE) \ - engine/gforth-native$(EXE) engine/gforth-itc$(EXE) \ - engine/gforth-ditc$(EXE) engine/gforth-prof$(EXE) + engine/gforth$(EC)$(EXE) engine/gforth-fast$(EC)$(EXE) \ + engine/gforth-native$(EC)$(EXE) engine/gforth-itc$(EC)$(EXE) \ + engine/gforth-ditc$(EC)$(EXE) engine/gforth-prof$(EC)$(EXE) \ + engine/prim-s.i distclean: clean -$(RM) -rf config.cache config.log config.status \ @@ -522,15 +535,11 @@ virtualclean: mostlyclean #Makefile if it contains our dist rules. Therefore we have put these #rules in Makedist (you can use them with GNU make on these systems). -dist: Makedist machpc.fs FORCE - -sed -e 's/@[^ ]*CALLFLAG@/false/g' -e 's/@[P]EEPHOLEFLAG@/true/g' -e 's/@[L]IBFFIFLAG@/false/g' machpc.fs +dist: Makedist FORCE $(MAKE) -f Makedist d$@ - -$(RM) machpc.fs -dosdist: Makedist machpc.fs FORCE - -sed -e 's/@[^ ]*CALLFLAG@/false/g' -e 's/@[P]EEPHOLEFLAG@/true/g' machpc.fs +dosdist: Makedist FORCE $(MAKE) -f Makedist d$@ - -$(RM) machpc.fs srcdist: Makedist FORCE $(MAKE) -f Makedist d$@ @@ -544,15 +553,11 @@ docdist: Makedist FORCE htmldist: Makedist FORCE $(MAKE) -f Makedist d$@ -bindist: Makedist machpc.fs FORCE - -sed -e 's/@[^ ]*CALLFLAG@/false/g' -e 's/@[P]EEPHOLEFLAG@/true/g' machpc.fs +bindist: Makedist FORCE $(MAKE) -f Makedist d$@ - -$(RM) machpc.fs -binonlydist: Makedist machpc.fs FORCE - -sed -e 's/@[^ ]*CALLFLAG@/false/g' -e 's/@[P]EEPHOLEFLAG@/true/g' machpc.fs +binonlydist: Makedist FORCE $(MAKE) -f Makedist d$@ - -$(RM) machpc.fs #HPUX make breaks the cycle differently when the dates are equal, so # touch some of the files if it acts up @@ -567,50 +572,52 @@ hpux-workaround: #hard to generate). #we rebuild gforth.fi, because it contains some path names. #we delete $build/gforth.fi and $build/install.TAGS after installation because of ownership. -install: gforth$(EXE) $(FORTH_SRC) $(kernel_fi) gforth.fi gforthmi vmgen doc/gforth.1 prim install.TAGS installdirs +install: gforth$(EC)$(EXE) $(FORTH_SRC) $(kernel_fi) gforth.fi gforthmi vmgen doc/gforth.1 prim install.TAGS installdirs $(NORMAL_INSTALL) touch $(DESTDIR)$(siteforthdir)/siteinit.fs - -$(RM) $(DESTDIR)$(bindir)/gforth$(EXE) $(DESTDIR)$(bindir)/gforth-$(VERSION)$(EXE) $(DESTDIR)$(bindir)/gforthmi $(DESTDIR)$(bindir)/vmgen - -$(RM) $(DESTDIR)$(bindir)/gforth-fast$(EXE) $(DESTDIR)$(bindir)/gforth-fast-$(VERSION)$(EXE) - -$(RM) $(DESTDIR)$(bindir)/gforth-itc$(EXE) $(DESTDIR)$(bindir)/gforth-itc-$(VERSION)$(EXE) - $(INSTALL_PROGRAM) gforth$(EXE) $(DESTDIR)$(bindir)/gforth-$(VERSION)$(EXE) - -$(MASSAGE_EXE) $(DESTDIR)$(bindir)/gforth-$(VERSION)$(EXE) - (cd $(DESTDIR)$(bindir) && $(LN_S) gforth-$(VERSION)$(EXE) gforth$(EXE)) - $(INSTALL_PROGRAM) gforth-fast$(EXE) $(DESTDIR)$(bindir)/gforth-fast-$(VERSION)$(EXE) - -$(MASSAGE_EXE) $(DESTDIR)$(bindir)/gforth-fast-$(VERSION)$(EXE) - (cd $(DESTDIR)$(bindir) && $(LN_S) gforth-fast-$(VERSION)$(EXE) gforth-fast$(EXE)) - $(INSTALL_PROGRAM) gforth-itc$(EXE) $(DESTDIR)$(bindir)/gforth-itc-$(VERSION)$(EXE) - (cd $(DESTDIR)$(bindir) && $(LN_S) gforth-itc-$(VERSION)$(EXE) gforth-itc$(EXE)) + -$(RM) $(DESTDIR)$(bindir)/gforth$(EC)$(EXE) $(DESTDIR)$(bindir)/gforth-$(VERSION)$(EC)$(EXE) $(DESTDIR)$(bindir)/gforthmi #$(DESTDIR)$(bindir)/vmgen + -$(RM) $(DESTDIR)$(bindir)/gforth-fast$(EC)$(EXE) $(DESTDIR)$(bindir)/gforth-fast-$(VERSION)$(EC)$(EXE) + -$(RM) $(DESTDIR)$(bindir)/gforth-itc$(EC)$(EXE) $(DESTDIR)$(bindir)/gforth-itc-$(VERSION)$(EC)$(EXE) + $(INSTALL_PROGRAM) gforth$(EC)$(EXE) $(DESTDIR)$(bindir)/gforth-$(VERSION)$(EC)$(EXE) + -$(MASSAGE_EXE) $(DESTDIR)$(bindir)/gforth-$(VERSION)$(EC)$(EXE) + (cd $(DESTDIR)$(bindir) && $(LN_S) gforth-$(VERSION)$(EC)$(EXE) gforth$(EC)$(EXE)) + $(INSTALL_PROGRAM) gforth-fast$(EC)$(EXE) $(DESTDIR)$(bindir)/gforth-fast-$(VERSION)$(EC)$(EXE) + -$(MASSAGE_EXE) $(DESTDIR)$(bindir)/gforth-fast-$(VERSION)$(EC)$(EXE) + (cd $(DESTDIR)$(bindir) && $(LN_S) gforth-fast-$(VERSION)$(EC)$(EXE) gforth-fast$(EC)$(EXE)) + $(INSTALL_PROGRAM) gforth-itc$(EC)$(EXE) $(DESTDIR)$(bindir)/gforth-itc-$(VERSION)$(EC)$(EXE) + (cd $(DESTDIR)$(bindir) && $(LN_S) gforth-itc-$(VERSION)$(EC)$(EXE) gforth-itc$(EC)$(EXE)) $(INSTALL_SCRIPT) gforthmi $(DESTDIR)$(bindir)/gforthmi-$(VERSION) - $(INSTALL_SCRIPT) vmgen $(DESTDIR)$(bindir)/vmgen-$(VERSION) + #$(INSTALL_SCRIPT) vmgen $(DESTDIR)$(bindir)/vmgen-$(VERSION) $(INSTALL_PROGRAM) gforth-ditc $(DESTDIR)$(libdir)/gforth/$(VERSION) (cd $(DESTDIR)$(bindir) && $(LN_S) gforthmi-$(VERSION) gforthmi) - (cd $(DESTDIR)$(bindir) && $(LN_S) vmgen-$(VERSION) vmgen) + #(cd $(DESTDIR)$(bindir) && $(LN_S) vmgen-$(VERSION) vmgen) -$(INSTALL_DATA) $(srcdir)/doc/gforth.1 $(DESTDIR)$(man1dir) - -for i in $(srcdir)/doc/gforth.info* $(srcdir)/doc/vmgen.info*; do $(INSTALL_DATA) $$i $(DESTDIR)$(infodir); done + #-for i in $(srcdir)/doc/gforth.info* $(srcdir)/doc/vmgen.info*; do $(INSTALL_DATA) $$i $(DESTDIR)$(infodir); done + -for i in $(srcdir)/doc/gforth.info*; do $(INSTALL_DATA) $$i $(DESTDIR)$(infodir); done for i in $(FORTH_SRC) $(COMPAT) prim; do \ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(datadir)/gforth/$(VERSION)/$$i; \ done $(INSTALL_DATA) $(kernel_fi) $(DESTDIR)$(datadir)/gforth/$(VERSION) - @if test -d "$(emacssitelispdir)"; then \ - $(INSTALL_DATA) $(srcdir)/gforth.el $(DESTDIR)$(emacssitelispdir); \ + @if test -d "$(DESTDIR)$(emacssitelispdir)"; then \ + $(INSTALL_DATA) gforth.elc $(DESTDIR)$(emacssitelispdir); \ else \ - echo ">>>>>Please install $(srcdir)/gforth.el in your .../emacs/site-lisp directory"; \ + echo ">>>>>Please install gforth.elc in your .../emacs/site-lisp directory"; \ fi -$(RM) gforth.fi - GFORTHD="./gforth-ditc -p $(DESTDIR)$(libdir)/gforth/site-forth$(PATHSEP)$(DESTDIR)$(siteforthdir)$(PATHSEP)$(DESTDIR)$(datadir)/gforth/$(VERSION) -i $(kernel_fi)" GFORTH="./gforth-ditc --die-on-signal -i $(kernel_fi) $(STARTUP)" ./gforthmi gforth.fi $(FORTHSIZES) $(STARTUP) + GFORTHD="./gforth-ditc -p $(DESTDIR)$(libdir)/gforth/site-forth$(PATHSEP)$(DESTDIR)$(siteforthdir)$(PATHSEP)$(DESTDIR)$(datadir)/gforth/$(VERSION) -i $(kernel_fi)" GFORTH="./gforth-ditc --die-on-signal -i $(kernel_fi) $(STARTUP)" includedir=$(includedir) bindir=$bindir GFORTHPATH=.:"$$GFORTHPATH" GFORTHDESTDIR="$(DESTDIR)" ./gforthmi gforth.fi $(FORTHSIZES) $(STARTUP) $(INSTALL_DATA) gforth.fi $(DESTDIR)$(libdir)/gforth/$(VERSION) $(INSTALL_DATA) install.TAGS $(DESTDIR)$(datadir)/gforth/$(VERSION)/TAGS $(RM) gforth.fi install.TAGS + $(INSTALL_DATA) include/gforth/$(VERSION)/* $(DESTDIR)$(includedir)/gforth/$(VERSION) $(POST_INSTALL) $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/gforth.info - $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/vmgen.info + #$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/vmgen.info install-strip: install installdirs: mkinstalldirs $(NORMAL_INSTALL) - for i in $(bindir) $(man1dir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(siteforthdir); do \ + for i in $(bindir) $(man1dir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(siteforthdir) $(includedir)/gforth/$(VERSION); do \ $(srcdir)/mkinstalldirs $(DESTDIR)$$i; \ done for i in $(CVSDIRS); do \ @@ -622,8 +629,8 @@ installdirs: mkinstalldirs #to uninstall version foo, type `make uninstall VERSION=foo' uninstall: FORCE $(NORMAL_UNINSTALL) - -$(RM) -rf $(DESTDIR)$(libdir)/gforth/$(VERSION) $(DESTDIR)$(datadir)/gforth/$(VERSION) $(DESTDIR)$(bindir)/gforth-$(VERSION)$(EXE) $(DESTDIR)$(bindir)/gforth-fast-$(VERSION)$(EXE) $(DESTDIR)$(bindir)/gforth-itc-$(VERSION)$(EXE) $(DESTDIR)$(bindir)/gforthmi-$(VERSION) $(DESTDIR)(bindir)/vmgen-$(VERSION) - @echo -e "To remove Gforth completely, type\n$(RM) -rf $(DESTDIR)$(bindir)/gforth$(EXE) $(DESTDIR)$(bindir)/gforth-fast$(EXE) $(DESTDIR)$(bindir)/gforth-itc$(EXE) $(DESTDIR)$(bindir)/gforthmi $(DESTDIR)$(bindir)/vmgen $(DESTDIR)$(man1dir)/gforth.1 $(DESTDIR)$(infodir)/gforth.info* $(DESTDIR)$(datadir)/gforth $(DESTDIR)$(libdir)/gforth" + -$(RM) -rf $(DESTDIR)$(libdir)/gforth/$(VERSION) $(DESTDIR)$(datadir)/gforth/$(VERSION) $(DESTDIR)$(bindir)/gforth-$(VERSION)$(EC)$(EXE) $(DESTDIR)$(bindir)/gforth-fast-$(VERSION)$(EC)$(EXE) $(DESTDIR)$(bindir)/gforth-itc-$(VERSION)$(EC)$(EXE) $(DESTDIR)$(bindir)/gforthmi-$(VERSION) $(DESTDIR)(bindir)/vmgen-$(VERSION) $(DESTDIR)$(includedir)/gforth/$(VERSION) + @echo -e "To remove Gforth completely, type\n$(RM) -rf $(DESTDIR)$(bindir)/gforth$(EC)$(EXE) $(DESTDIR)$(bindir)/gforth-fast$(EC)$(EXE) $(DESTDIR)$(bindir)/gforth-itc$(EC)$(EXE) $(DESTDIR)$(bindir)/gforthmi $(DESTDIR)$(bindir)/vmgen $(DESTDIR)$(man1dir)/gforth.1 $(DESTDIR)$(infodir)/gforth.info* $(DESTDIR)$(datadir)/gforth $(DESTDIR)$(libdir)/gforth" check: gforths gforth.fi $(MAKE) checkone check-nofast ENGINE="./gforth --no-dynamic" >/dev/null 2>&1 @@ -634,52 +641,42 @@ check: gforths gforth.fi $(MAKE) checkone ENGINE="./gforth-fast" >/dev/null 2>&1 @echo "*** Check successful ***" -checkone test: gforth$(EXE) gforth.fi - $(FORTH) test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs test/string.fs test/float.fs test/deferred.fs test/coreext.fs -e bye 2>&1 | tr -d '\015' | diff -c - $(srcdir)/test/coretest.out +checkone test: gforth$(EC)$(EXE) gforth.fi engine/prim-s.i + $(FORTH) test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs test/string.fs test/float.fs test/deferred.fs test/coreext.fs test/search.fs -e bye 2>&1 | tr -d '\015' | diff -c - $(srcdir)/test/coretest.out $(FORTH) test/other.fs -e bye $(FORTHS) test/signals.fs -e bye $(FORTHS) test/coremore.fs test/gforth.fs -e bye 2>&1 | tr -d '\015' | diff -c - $(srcdir)/test/gforth.out $(FORTH) code.fs test/checkans.fs -e bye | tr -d '\015' | diff -c - $(srcdir)/test/checkans.out $(FORTH) prims2x.fs -e \ "c-flag on s\" prim.i\" out-filename 2! s\" $(srcdir)/prim.b\" ' output-c ' output-c-combined process-file bye"| \ - tr -d '\015' | diff -c - $(srcdir)/engine/prim.i + tr -d '\015' | grep -v '^#line '|diff -c - engine/prim-s.i -check-nofast: gforth$(EXE) gforth.fi +check-nofast: gforth$(EC)$(EXE) gforth.fi $(FORTHS) test/gforth-nofast.fs -e bye test/primtest.fi: test/primtest.fs mach32l.fs cross.fs - $(FORTHB) -e 's" mach32b.fs"' $(srcdir)/test/primtest.fs -e "save-cross $@ $(bindir)/gforth-$(VERSION) bye" + $(FORTHB) -e 's" mach32l.fs"' $(srcdir)/test/primtest.fs -e "save-cross $@ $(bindir)/gforth-$(VERSION) bye" primtest: gforth gforth-native test/primtest.fi FORCE (echo rs|ENVVAR=bla ./gforth -i test/primtest.fi) && (echo rs|ENVVAR=bla ./gforth-native -i test/primtest.fi); echo $$? -bench: gforth-fast$(EXE) gforth.fi +bench: gforth-fast$(EC)$(EXE) gforth.fi @echo 'Each benchmark takes about 30s on a 486-66 (gcc-2.6.3 -DFORCE_REG)' time $(FORTH_FAST) siev.fs -e "main bye" time $(FORTH_FAST) bubble.fs -e "main bye" time $(FORTH_FAST) matrix.fs -e "main bye" time $(FORTH_FAST) fib.fs -e "main bye" -onebench: - @echo 'sieve bubble matrix fib' - @echo -n " "`\time 2>&1 -f "%U" $(FORTH_FAST) siev.fs -e "main bye"` - @echo -n " "`\time 2>&1 -f "%U" $(FORTH_FAST) -e "warnings off" bubble.fs -e "main bye"` - @echo -n " "`\time 2>&1 -f "%U" $(FORTH_FAST) matrix.fs -e "main bye"` - @echo " "`\time 2>&1 -f "%U" $(FORTH_FAST) fib.fs -e "main bye"` - -all-bench: gforth-fast$(EXE) gforth$(EXE) gforth-itc$(EXE) gforth-ditc$(EXE) gforth.fi - @echo "*** gforth-fast dynamic:" - @$(MAKE) onebench ENGINE_FAST="./gforth-fast --dynamic" - @echo "*** gforth-fast not dynamic:" - @$(MAKE) onebench ENGINE_FAST="./gforth-fast --no-dynamic" - @echo "*** gforth dynamic:" - @$(MAKE) onebench ENGINE_FAST="./gforth --dynamic" - @echo "*** gforth not dynamic:" - @$(MAKE) onebench ENGINE_FAST="./gforth --no-dynamic" - @echo "*** gforth-itc:" - @$(MAKE) onebench ENGINE_FAST=./gforth-itc - @echo "*** gforth-ditc:" - @$(MAKE) onebench ENGINE_FAST=./gforth-ditc +onebench one-bench: + $(FORTH_FAST) onebench.fs + +all-bench allbench: gforth-fast$(EC)$(EXE) gforth$(EC)$(EXE) gforth-itc$(EC)$(EXE) gforth-ditc$(EC)$(EXE) gforth.fi + ./gforth-fast --dynamic onebench.fs + ./gforth-fast --no-dynamic onebench.fs + ./gforth --dynamic onebench.fs + ./gforth --no-dynamic onebench.fs + ./gforth-itc onebench.fs + ./gforth-ditc onebench.fs # ------------- Make forth images @@ -691,23 +688,23 @@ all-bench: gforth-fast$(EXE) gforth$(EXE # 3. copy new kernels to kernlXYZ.fi # these are the ones we want to use now -kernl16l.fi-: $(KERN_DEPS) mach16l.fs - $(FORTHB) -e 's" mach16l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye" +kernl16l$(EC).fi-: $(KERN_DEPS) mach16l.fs + $(FORTHB) -e 's" mach16l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16l$(EC).fi- $(bindir)/gforth-$(VERSION) bye" -kernl16b.fi-: $(KERN_DEPS) mach16b.fs - $(FORTHB) -e 's" mach16b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16b.fi- $(bindir)/gforth-$(VERSION) bye" +kernl16b$(EC).fi-: $(KERN_DEPS) mach16b.fs + $(FORTHB) -e 's" mach16b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16b$(EC).fi- $(bindir)/gforth-$(VERSION) bye" -kernl32l.fi-: $(KERN_DEPS) mach32l.fs - $(FORTHB) -e 's" mach32l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32l.fi- $(bindir)/gforth-$(VERSION) bye" +kernl32l$(EC).fi-: $(KERN_DEPS) mach32l.fs + $(FORTHB) -e 's" mach32l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32l$(EC).fi- $(bindir)/gforth-$(VERSION) bye" -kernl32b.fi-: $(KERN_DEPS) mach32b.fs - $(FORTHB) -e 's" mach32b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32b.fi- $(bindir)/gforth-$(VERSION) bye" +kernl32b$(EC).fi-: $(KERN_DEPS) mach32b.fs + $(FORTHB) -e 's" mach32b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32b$(EC).fi- $(bindir)/gforth-$(VERSION) bye" -kernl64l.fi-: $(KERN_DEPS) mach64l.fs - $(FORTHB) -e 's" mach64l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64l.fi- $(bindir)/gforth-$(VERSION) bye" +kernl64l$(EC).fi-: $(KERN_DEPS) mach64l.fs + $(FORTHB) -e 's" mach64l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64l$(EC).fi- $(bindir)/gforth-$(VERSION) bye" -kernl64b.fi-: $(KERN_DEPS) mach64b.fs - $(FORTHB) -e 's" mach64b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye" +kernl64b$(EC).fi-: $(KERN_DEPS) mach64b.fs + $(FORTHB) -e 's" mach64b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64b$(EC).fi- $(bindir)/gforth-$(VERSION) bye" #Solaris make does not like that: @GNUMAKE@kernl-%.fi: arch/%/mach.fs arch/%/prim.fs arch/%/asm.fs $(KERN_SRC) kernel/version.fs $(FORTH_GEN0) @@ -720,45 +717,45 @@ kernl64b.fi-: $(KERN_DEPS) mach64b.fs #SunOS make does not like that #arch/%/mach.fs: arch/%/prim.fs arch/%/asm.fs -kernl16b.fi: $(KERNLS) - -$(CP) kernl16b.fi kernl16b.fi~ - -$(CP) kernl16b.fi- kernl16b.fi - -kernl16l.fi: $(KERNLS) - -$(CP) kernl16l.fi kernl16l.fi~ - -$(CP) kernl16l.fi- kernl16l.fi - -kernl32b.fi: $(KERNLS) - -$(CP) kernl32b.fi kernl32b.fi~ - -$(CP) kernl32b.fi- kernl32b.fi - -kernl32l.fi: $(KERNLS) - -$(CP) kernl32l.fi kernl32l.fi~ - -$(CP) kernl32l.fi- kernl32l.fi - -kernl64b.fi: $(KERNLS) - -$(CP) kernl64b.fi kernl64b.fi~ - -$(CP) kernl64b.fi- kernl64b.fi - -kernl64l.fi: $(KERNLS) - -$(CP) kernl64l.fi kernl64l.fi~ - -$(CP) kernl64l.fi- kernl64l.fi +kernl16b$(EC).fi: $(KERNLS) + -$(CP) kernl16b$(EC).fi kernl16b$(EC).fi~ + -$(CP) kernl16b$(EC).fi- kernl16b$(EC).fi + +kernl16l$(EC).fi: $(KERNLS) + -$(CP) kernl16l$(EC).fi kernl16l$(EC).fi~ + -$(CP) kernl16l$(EC).fi- kernl16l$(EC).fi + +kernl32b$(EC).fi: $(KERNLS) + -$(CP) kernl32b$(EC).fi kernl32b$(EC).fi~ + -$(CP) kernl32b$(EC).fi- kernl32b$(EC).fi + +kernl32l$(EC).fi: $(KERNLS) + -$(CP) kernl32l$(EC).fi kernl32l$(EC).fi~ + -$(CP) kernl32l$(EC).fi- kernl32l$(EC).fi + +kernl64b$(EC).fi: $(KERNLS) + -$(CP) kernl64b$(EC).fi kernl64b$(EC).fi~ + -$(CP) kernl64b$(EC).fi- kernl64b$(EC).fi + +kernl64l$(EC).fi: $(KERNLS) + -$(CP) kernl64l$(EC).fi kernl64l$(EC).fi~ + -$(CP) kernl64l$(EC).fi- kernl64l$(EC).fi #kernl%.fi: kernl%.fi- $(KERNLS) # -$(CP) $@ $@~ # -$(CP) $< $@ -gforth.fi: $(kernel_fi) gforthmi gforth$(EXE) gforth-ditc$(EXE) $(GFORTH_FI_SRC) comp-i.fs - GFORTHD="./gforth-ditc -p .$(PATHSEP)$(srcdir)" GFORTH="./gforth-ditc --die-on-signal -p .$(PATHSEP)$(srcdir) -i $(kernel_fi) $(STARTUP)" ./gforthmi gforth.fi $(FORTHSIZES) $(FORTHKFLAGS) $(STARTUP) +gforth.fi: $(kernel_fi) gforthmi gforth$(EC)$(EXE) gforth-ditc$(EC)$(EXE) $(GFORTH_FI_SRC) comp-i.fs + GFORTHD="./gforth-ditc -p .$(PATHSEP)$(srcdir)" GFORTH="./gforth-ditc --die-on-signal -p .$(PATHSEP)$(srcdir) -i $(kernel_fi) $(STARTUP)" includedir=`pwd`/include bindir=`pwd` ./gforthmi gforth.fi $(FORTHSIZES) $(FORTHKFLAGS) $(STARTUP) # ------------- Make c-engine prim.b: prim cache0.vmg - m4 -s $(srcdir)/prim >$@ + $(M4) -Dcondbranch_opt=0 $(srcdir)/prim >$@ sleep 1 #should make hpux-workaround unnecessary -prim-fast.b: prim cache-fast$(STACK_CACHE_DEFAULT_FAST).vmg peeprules.vmg - m4 -DSTACK_CACHE_FILE=cache-fast$(STACK_CACHE_DEFAULT_FAST).vmg -s $(srcdir)/prim >$@ +prim-fast.b: prim cache-fast$(STACK_CACHE_DEFAULT_FAST).vmg peeprules.vmg Makefile.in + $(M4) -Dcondbranch_opt=@condbranch_opt@ -DSTACK_CACHE_FILE=cache-fast$(STACK_CACHE_DEFAULT_FAST).vmg $(srcdir)/prim >$@ sleep 1 #should make hpux-workaround unnecessary $(FORTH_GEN_ENGINE_FAST): prim-fast.b prims2x.fs @@ -767,6 +764,9 @@ $(FORTH_GEN_ENGINE_FAST): prim-fast.b pr $(FORTH_GEN_ENGINE): prim.b prims2x.fs GFORTH="$(FORTHP)" $(srcdir)/gfgen +engine/prim-s.i: engine/prim.i + grep -v '^#line ' $(srcdir)/engine/prim.i >$@ + kernel/aliases.fs: prim.b prims2x.fs kernel/aliases0.fs $(CP) kernel/aliases0.fs $@- $(FORTHP) prims2x.fs -e "forth-flag on s\" prim.b\" ' output-alias ' noop process-file bye" >>$@- @@ -779,39 +779,39 @@ kernel/prim.fs: prim.b prims2x.fs kernel $(CP) $@- $@ $(RM) $@- -gforth$(EXE): engines - -$(CP) gforth$(EXE) gforth~ +gforth$(EC)$(EXE): engines + -$(CP) gforth$(EC)$(EXE) gforth~ $(CP) engine/$@ $@ -$(MASSAGE_EXE) $@ @GFORTH_EXE@ -gforth-fast$(EXE): engines-fast +gforth-fast$(EC)$(EXE): engines-fast $(CP) engine/$@ $@ -$(MASSAGE_EXE) $@ @GFORTHFAST_EXE@ -gforth-native$(EXE): engines-fast +gforth-native$(EC)$(EXE): engines-fast $(CP) engine/$@ $@ -$(MASSAGE_EXE) $@ #@GFORTHX_EXE@ -gforth-itc$(EXE): engines +gforth-itc$(EC)$(EXE): engines $(CP) engine/$@ $@ @GFORTHITC_EXE@ -gforth-ditc$(EXE): engines +gforth-ditc$(EC)$(EXE): engines $(CP) engine/$@ $@ @GFORTHDITC_EXE@ -gforth-prof$(EXE): engines +gforth-prof$(EC)$(EXE): engines $(CP) engine/$@ $@ gforths: $(ENGINES) $(ENGINES_FAST) -engines: FORCE $(FORTH_GEN_ENGINE) engine/Makefile +engines: FORCE $(FORTH_GEN_ENGINE) engine/Makefile engine/config.h cd engine && $(MAKE) $(ENGINES) -engines-fast: FORCE $(FORTH_GEN_ENGINE_FAST) engine/Makefile +engines-fast: FORCE $(FORTH_GEN_ENGINE_FAST) engine/Makefile engine/config.h cd engine && $(MAKE) $(ENGINES_FAST) # ------------- additional C primitives @@ -831,24 +831,21 @@ TAGS: gforth.TAGS tags: gforth.tags $(CP) gforth.tags $@ -install.TAGS: gforth.TAGS - sed 's;^\$(srcdir)/;$(datadir)/gforth/$(VERSION)/;' gforth.TAGS >install.TAGS +install.TAGS: TAGS + sed 's;^\$(srcdir)/;;' TAGS|awk 'BEGIN {RS="\014\n"; ORS=RS} {if (NR==1) print $0; else print "$(datadir)/gforth/$(VERSION)/"$$0;}' >install.TAGS -gforth.TAGS: @kernel_fi@ gforth$(EXE) $(GFORTH_FI_SRC) prim.TAGS kernel.TAGS +gforth.TAGS: @kernel_fi@ gforth$(EC)$(EXE) $(GFORTH_FI_SRC) prim.TAGS kernel.TAGS $(FORTHK) etags.fs except.fs startup.fs -e bye cat TAGS prim.TAGS kernel.TAGS >gforth.TAGS rm TAGS -gforth.tags: @kernel_fi@ gforth$(EXE) $(GFORTH_FI_SRC) prim.tags kernel.tags +gforth.tags: @kernel_fi@ gforth$(EC)$(EXE) $(GFORTH_FI_SRC) prim.tags kernel.tags $(FORTHK) tags.fs except.fs startup.fs -e bye cat tags prim.tags kernel.tags >gforth.tags rm tags prim.TAGS: prim.b prims2x.fs - #echo '2c\' >prim.TAGS.sed - #echo $(srcdir)/prim >>prim.TAGS.sed - #$(FORTHP) prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag dup process-file bye" | sed -f prim.TAGS.sed >$@- - $(FORTHP) prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag dup process-file bye" >$@- + $(FORTHP) prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag dup process-file bye"|sed 's#^./prim#prim#' >$@- $(CP) $@- $@ $(RM) $@- @@ -861,13 +858,19 @@ prim.tags: prim.b prims2x.fs $(RM) $@- kernel.TAGS: - rm kernl16l.fi-; $(MAKE) @kernel_fi@ + rm kernl16l$(EC).fi-; $(MAKE) @kernel_fi@ kernel.tags: - rm kernl16l.fi-; $(MAKE) @kernel_fi@ + rm kernl16l$(EC).fi-; $(MAKE) @kernel_fi@ + +#elc files +gforth.elc: gforth.el + emacs -batch -f batch-byte-compile $< + +#Documentation doc/doc.fd: doc/makedoc.fs $(GFORTH_FI_SRC) code.fs objects.fs oof.fs moofglos.fs - $(FORTHK) -e "s\" doc/doc.fd\"" doc/makedoc.fs except.fs startup.fs code.fs objects.fs oof.fs moofglos.fs -e bye + $(FORTHK) -e "s\" doc/doc.fd\"" doc/makedoc.fs except.fs startup.fs code.fs objects.fs oof.fs moofglos.fs regexp.fs fft.fs -e bye doc/crossdoc.fd: $(KERN_SRC) kernel/version.fs $(FORTH_GEN0) $(FORTHK) -e 's" mach32l.fs"' kernel/main.fs -e bye @@ -881,6 +884,7 @@ doc/gforth.texi: doc/gforth.ds prim.b ds checkdoc: doc/gforth.ds prim.b ds2texi.fs prims2x.fs doc/doc.fd doc/crossdoc.fd answords.fs doc/gforth.texi $(FORTH) ds2texi.fs prims2x.fs -e "s\" $(srcdir)/prim.b\" ' register-doc ' noop process-file" doc/crossdoc.fd doc/doc.fd answords.fs -e bye -grep unknown doc/gforth.texi + -grep doc- doc/gforth.texi dvi: doc/gforth.dvi doc/vmgen.dvi