--- gforth/Makefile.in 2001/02/24 09:58:31 1.198 +++ gforth/Makefile.in 2001/04/30 13:48:56 1.205 @@ -67,9 +67,13 @@ FORTHSIZES = @FORTHSIZES@ FORTH_ARGS = --die-on-signal -p $(FORTHPATH)$(PATHSEP)$(srcdir) ENGINE = ./gforth FORTH = $(ENGINE) $(FORTH_ARGS) +# the (existing) forth system to use for cross compiling and primitives tables +BUILDFORTH = $(FORTHK) +# the forth system plus flags we use to build +FORTHB = $(BUILDFORTH) -m 1000000 -e 'fpath= .|~+|$(srcdir)' ENGINE_FAST = $(ENGINE)-fast FORTH_FAST = $(ENGINE_FAST) $(FORTH_ARGS) -FORTHKFLAGS= --die-on-signal -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" -i $(kernel_fi) +FORTHKFLAGS= --die-on-signal -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" -m 1000000 -i $(kernel_fi) FORTHK = $(ENGINE) $(FORTHKFLAGS) FORTHP = $(ENGINE) --die-on-signal -i ./$(kernel_fi) #the "-2 image-included-files +!" undoes the change to image-included-files @@ -127,7 +131,7 @@ INCLUDES = engine/forth.h engine/threade KERN_SRC = \ mach16b.fs mach16l.fs mach32b.fs mach32l.fs mach64b.fs mach64l.fs \ - machpc.fs \ + machpc.fs.in \ kernel/aliases0.fs \ kernel/aliases.fs \ kernel/args.fs \ @@ -330,10 +334,10 @@ SOURCES = $(CVSDIRS) compat Makefile.in RCS_FILES = ToDo model high-level -GEN = gforth$(EXE) gforth-ditc$(EXE) gforth-fast$(EXE) kernel/version.fs +GEN = gforth$(EXE) gforth-ditc$(EXE) gforth-fast$(EXE) gforth-prof$(EXE) kernel/version.fs # things that need a working forth system to be generated -FORTH_GEN0 = prim.b engine/prim.i engine/prim_lab.i kernel/aliases.fs kernel/prim.fs +FORTH_GEN0 = prim.b engine/prim.i engine/prim_lab.i engine/peephole.i engine/profile.i kernel/aliases.fs kernel/prim.fs FORTH_GEN = $(FORTH_GEN0) @KERNEL@ gforth.fi # this is used for antidependences, FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@ @@ -403,7 +407,7 @@ docclean: FORCE clean: mostlyclean -$(RM) -rf $(GEN) engine/gforth$(EXE) \ - engine/gforth-fast$(EXE) engine/gforth-ditc$(EXE) \ + engine/gforth-fast$(EXE) engine/gforth-ditc$(EXE) engine/gforth-prof$(EXE) \ *.o engine/*.o arch/*/*.o version distclean: clean @@ -516,7 +520,7 @@ bench: gforth-fast$(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) -m 160000 matrix.fs -e "main bye" + time $(FORTH_FAST) -m 200000 matrix.fs -e "main bye" time $(FORTH_FAST) fib.fs -e "main bye" # ------------- Make forth images @@ -529,26 +533,26 @@ bench: gforth-fast$(EXE) gforth.fi # 3. copy new kernels to kernlXYZ.fi # these are the ones we want to use now -kernl16l.fi-: $(KERN_SRC) kernel/version.fs mach16l.fs $(FORTH_GEN0) - $(FORTHK) -e 's" mach16l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye" +kernl16l.fi-: $(KERN_SRC) kernel/version.fs mach16l.fs machpc.fs $(FORTH_GEN0) + $(FORTHB) -e 's" mach16l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye" -kernl16b.fi-: $(KERN_SRC) kernel/version.fs mach16b.fs $(FORTH_GEN0) - $(FORTHK) -e 's" mach16b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16b.fi- $(bindir)/gforth-$(VERSION) bye" +kernl16b.fi-: $(KERN_SRC) kernel/version.fs mach16b.fs machpc.fs $(FORTH_GEN0) + $(FORTHB) -e 's" mach16b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16b.fi- $(bindir)/gforth-$(VERSION) bye" -kernl32l.fi-: $(KERN_SRC) kernel/version.fs mach32l.fs $(FORTH_GEN0) - $(FORTHK) -e 's" mach32l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32l.fi- $(bindir)/gforth-$(VERSION) bye" +kernl32l.fi-: $(KERN_SRC) kernel/version.fs mach32l.fs machpc.fs $(FORTH_GEN0) + $(FORTHB) -e 's" mach32l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32l.fi- $(bindir)/gforth-$(VERSION) bye" -kernl32b.fi-: $(KERN_SRC) kernel/version.fs mach32b.fs $(FORTH_GEN0) - $(FORTHK) -e 's" mach32b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32b.fi- $(bindir)/gforth-$(VERSION) bye" +kernl32b.fi-: $(KERN_SRC) kernel/version.fs mach32b.fs machpc.fs $(FORTH_GEN0) + $(FORTHB) -e 's" mach32b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32b.fi- $(bindir)/gforth-$(VERSION) bye" -kernl64l.fi-: $(KERN_SRC) kernel/version.fs mach64l.fs $(FORTH_GEN0) - $(FORTHK) -e 's" mach64l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64l.fi- $(bindir)/gforth-$(VERSION) bye" +kernl64l.fi-: $(KERN_SRC) kernel/version.fs mach64l.fs machpc.fs $(FORTH_GEN0) + $(FORTHB) -e 's" mach64l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64l.fi- $(bindir)/gforth-$(VERSION) bye" -kernl64b.fi-: $(KERN_SRC) kernel/version.fs mach64b.fs $(FORTH_GEN0) - $(FORTHK) -e 's" mach64b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye" +kernl64b.fi-: $(KERN_SRC) kernel/version.fs mach64b.fs machpc.fs $(FORTH_GEN0) + $(FORTHB) -e 's" mach64b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye" kernl-%.fi: arch/%/mach.fs $(KERN_SRC) kernel/version.fs $(FORTH_GEN0) - $(FORTHK) -e 's" $<"' $(srcdir)/kernel/main.fs -e "save-cross $@- $(bindir)/gforth-$(VERSION) bye" + $(FORTHB) -e 's" $<"' $(srcdir)/kernel/main.fs -e "save-cross $@- $(bindir)/gforth-$(VERSION) bye" if [ -f `echo $< | sed s/fs/sh/` ]; \ then sh `echo $< | sed s/fs/sh/` $@; \ else $(CP) $@- $@; \ @@ -594,24 +598,39 @@ prim.b: prim m4 -s $(srcdir)/prim >$@ engine/prim.i: prim.b prims2x.fs - $(FORTH) -m 1000000 prims2x.fs -e "c-flag on s\" prim.b\" ' output-c ' output-c-combined process-file bye" >$@- + $(FORTHB) prims2x.fs -e "c-flag on s\" prim.b\" ' output-c ' output-c-combined process-file bye" >$@- $(CP) $@- $@ $(RM) $@- engine/prim_lab.i: prim.b prims2x.fs - $(FORTH) -m 1000000 prims2x.fs -e "c-flag on s\" prim.b\" ' output-label dup process-file bye" >$@- + $(FORTHB) prims2x.fs -e "c-flag on s\" prim.b\" ' output-label dup process-file bye" >$@- + $(CP) $@- $@ + $(RM) $@- + +engine/peephole.i: prim.b prims2x.fs + $(FORTHB) prims2x.fs -e "c-flag on s\" prim.b\" ' noop ' output-peephole process-file bye" >$@- + $(CP) $@- $@ + $(RM) $@- + +engine/profile.i: prim.b prims2x.fs + $(FORTHB) prims2x.fs -e "c-flag on s\" prim.b\" ' output-profile ' output-profile process-file bye" >$@- $(CP) $@- $@ $(RM) $@- kernel/aliases.fs: prim.b prims2x.fs kernel/aliases0.fs $(CP) kernel/aliases0.fs $@- - $(FORTH) -m 1000000 prims2x.fs -e "forth-flag on s\" prim.b\" ' output-alias dup process-file bye" >>$@- + $(FORTHB) prims2x.fs -e "forth-flag on s\" prim.b\" ' output-alias dup process-file bye" >>$@- $(CP) $@- $@ $(RM) $@- kernel/prim.fs: prim.b prims2x.fs kernel/prim0.fs $(CP) kernel/prim0.fs kernel/prim.fs- - $(FORTH) -m 1000000 prims2x.fs -e "forth-flag on s\" prim.b\" ' output-forth ' output-forth-combined process-file bye" >>$@- + $(FORTHB) prims2x.fs -e "forth-flag on s\" prim.b\" ' output-forth ' output-forth-combined process-file bye" >>$@- + $(CP) $@- $@ + $(RM) $@- + +kernel/peephole.fs: prim.b prims2x.fs + $(FORTHB) prims2x.fs -e "forth-flag on s\" prim.b\" ' noop ' output-forth-peephole process-file bye" >$@- $(CP) $@- $@ $(RM) $@- @@ -628,8 +647,11 @@ gforth-ditc$(EXE): engines $(CP) engine/$@ $@ @GFORTHDITC_EXE@ -engines: FORCE engine/Makefile engine/prim.i engine/prim_lab.i - cd engine && $(MAKE) gforth$(EXE) gforth-fast$(EXE) gforth-ditc$(EXE) +gforth-prof$(EXE): engines + $(CP) engine/$@ $@ + +engines: FORCE engine/Makefile engine/prim.i engine/prim_lab.i engine/peephole.i engine/profile.i + cd engine && $(MAKE) gforth$(EXE) gforth-fast$(EXE) gforth-ditc$(EXE) gforth-prof$(EXE) # ------------- additional C primitives @@ -656,8 +678,8 @@ gforth.TAGS: @kernel_fi@ gforth$(EXE) $( prim.TAGS: prim.b prims2x.fs #echo '2c\' >prim.TAGS.sed #echo $(srcdir)/prim >>prim.TAGS.sed - #$(FORTH) -m 1000000 prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag dup process-file bye" | sed -f prim.TAGS.sed >$@- - $(FORTH) -m 1000000 prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag dup process-file bye" >$@- + #$(FORTHB) prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag dup process-file bye" | sed -f prim.TAGS.sed >$@- + $(FORTHB) prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag dup process-file bye" >$@- $(CP) $@- $@ $(RM) $@- @@ -672,7 +694,7 @@ doc/crossdoc.fd: $(KERN_SRC) kernel/vers doc/gforth.texi: doc/gforth.ds prim.b ds2texi.fs prims2x.fs \ doc/doc.fd doc/crossdoc.fd - $(FORTH) -m 100000 ds2texi.fs prims2x.fs -e "s\" $(srcdir)/prim.b\" ' register-doc ' noop process-file" doc/crossdoc.fd doc/doc.fd -e "s\" $(srcdir)/doc/gforth.ds\" r/o open-file throw ds2texi bye" >$@- + $(FORTHB) ds2texi.fs prims2x.fs -e "s\" $(srcdir)/prim.b\" ' register-doc ' noop process-file" doc/crossdoc.fd doc/doc.fd -e "s\" $(srcdir)/doc/gforth.ds\" r/o open-file throw ds2texi bye" >$@- $(CP) $@- $@ $(RM) $@- @@ -727,7 +749,7 @@ stamp-h: engine/config.h.in config.statu CONFIG_FILES=$@ CONFIG_HEADERS=engine/config.h ./config.status echo timestamp > stamp-h -Makefile Makedist engine/Makefile gforthmi: Makefile.in Makedist.in engine/Makefile.in gforthmi.in config.status +Makefile Makedist engine/Makefile gforthmi machpc.fs: Makefile.in Makedist.in engine/Makefile.in gforthmi.in machpc.fs.in config.status CONFIG_FILES="$@" CONFIG_HEADERS=engine/config.h ./config.status config.status: configure