version 1.285, 2003/10/30 10:31:58
|
version 1.303, 2004/12/31 13:23:56
|
Line 1
|
Line 1
|
#Makefile for Gforth |
#Makefile for Gforth |
|
|
#Copyright (C) 1995,1996,1997,1998,2000,2003 Free Software Foundation, Inc. |
#Copyright (C) 1995,1996,1997,1998,2000,2003,2004 Free Software Foundation, Inc. |
|
|
#This file is part of Gforth. |
#This file is part of Gforth. |
|
|
Line 76 FORTHS = $(ENGINE) $(FORTHS_ARGS)
|
Line 76 FORTHS = $(ENGINE) $(FORTHS_ARGS)
|
# possible to override this variable at the command line for an initial build (jaw) |
# possible to override this variable at the command line for an initial build (jaw) |
BUILDFORTH = $(ENGINE) --die-on-signal -m 4M -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" -i $(kernel_fi) |
BUILDFORTH = $(ENGINE) --die-on-signal -m 4M -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" -i $(kernel_fi) |
# the forth system plus flags we use to build |
# the forth system plus flags we use to build |
FORTHB = $(BUILDFORTH) -e 3 exboot.fs -e 'fpath= .|~+|$(srcdir)' |
FORTHB = $(BUILDFORTH) exboot.fs -e 'fpath= .|~+|$(srcdir)' |
# the Forth system for running prims2x.fs |
# the Forth system for running prims2x.fs |
FORTHP = $(FORTH) |
FORTHP = $(FORTH) |
ENGINE_FAST = $(ENGINE)-fast |
ENGINE_FAST = $(ENGINE)-fast |
Line 86 FORTHK = $(ENGINE) $(FORTHKFLAGS)
|
Line 86 FORTHK = $(ENGINE) $(FORTHKFLAGS)
|
#FORTHP = $(ENGINE) --die-on-signal -i ./$(kernel_fi) |
#FORTHP = $(ENGINE) --die-on-signal -i ./$(kernel_fi) |
#the "-2 image-included-files +!" undoes the change to image-included-files |
#the "-2 image-included-files +!" undoes the change to image-included-files |
# in exboot.fs |
# in exboot.fs |
STARTUP = -e 3 exboot.fs startup.fs @asm_fs@ @disasm_fs@ |
STARTUP = exboot.fs startup.fs @asm_fs@ @disasm_fs@ |
STRIP = strip |
STRIP = strip |
TEXI2DVI = texi2dvi -e |
TEXI2DVI = texi2dvi -e |
TEXI2PDF = texi2dvi --pdf -e |
TEXI2PDF = texi2dvi --pdf -e |
Line 202 GFORTH_FI_SRC = \
|
Line 202 GFORTH_FI_SRC = \
|
code.fs \ |
code.fs \ |
debug.fs \ |
debug.fs \ |
debugs.fs \ |
debugs.fs \ |
|
dis-gdb.fs \ |
ekey.fs \ |
ekey.fs \ |
savesys.fs \ |
savesys.fs \ |
environ.fs \ |
environ.fs \ |
Line 227 GFORTH_FI_SRC = \
|
Line 228 GFORTH_FI_SRC = \
|
stuff.fs \ |
stuff.fs \ |
tasker.fs \ |
tasker.fs \ |
termsize.fs \ |
termsize.fs \ |
|
utf-8.fs \ |
vt100.fs \ |
vt100.fs \ |
vt100key.fs \ |
vt100key.fs \ |
wordinfo.fs \ |
wordinfo.fs \ |
arch/386/asm.fs arch/386/disasm.fs \ |
arch/386/asm.fs arch/386/disasm.fs \ |
|
arch/amd64/asm.fs arch/amd64/disasm.fs \ |
arch/alpha/asm.fs arch/alpha/disasm.fs \ |
arch/alpha/asm.fs arch/alpha/disasm.fs \ |
arch/mips/asm.fs arch/mips/disasm.fs arch/mips/insts.fs |
arch/mips/asm.fs arch/mips/disasm.fs arch/mips/insts.fs |
|
|
FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) $(EC_SRC) \ |
FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) $(EC_SRC) \ |
ans-report.fs ansi.fs answords.fs \ |
ans-report.fs ansi.fs answords.fs \ |
colorize.fs comp-i.fs \ |
colorize.fs comp-i.fs \ |
dosekey.fs doskey.fs ds2texi.fs \ |
depth-changes.fs dosekey.fs doskey.fs ds2texi.fs \ |
envos.fs envos.dos envos.os2 etags.fs filedump.fs fi2c.fs \ |
envos.fs envos.dos envos.os2 etags.fs filedump.fs fi2c.fs \ |
glosgen.fs gray.fs httpd.fs proxy.fs \ |
fsl-util.4th glosgen.fs gray.fs httpd.fs proxy.fs \ |
make-app.fs doc/makedoc.fs \ |
make-app.fs doc/makedoc.fs \ |
locate.fs more.fs other.fs prims2x.fs random.fs \ |
locate.fs more.fs other.fs prims2x.fs random.fs \ |
sokoban.fs string.fs table.fs tags.fs \ |
sokoban.fs string.fs table.fs tags.fs \ |
Line 248 FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC)
|
Line 251 FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC)
|
test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs \ |
test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs \ |
test/string.fs test/float.fs test/gforth.fs \ |
test/string.fs test/float.fs test/gforth.fs \ |
test/other.fs test/signals.fs test/checkans.fs \ |
test/other.fs test/signals.fs test/checkans.fs \ |
|
test/primtest.fs \ |
bubble.fs siev.fs matrix.fs fib.fs \ |
bubble.fs siev.fs matrix.fs fib.fs \ |
oof.fs oofsampl.fs objects.fs objexamp.fs mini-oof.fs moof-exm.fs \ |
oof.fs oofsampl.fs objects.fs objexamp.fs mini-oof.fs moof-exm.fs \ |
moofglos.fs fixpath.fs \ |
moofglos.fs fixpath.fs \ |
Line 295 ARCHS = \
|
Line 299 ARCHS = \
|
arch/misc/README \ |
arch/misc/README \ |
arch/misc/asm.fs \ |
arch/misc/asm.fs \ |
arch/misc/mach.fs \ |
arch/misc/mach.fs \ |
|
arch/misc/optcmove.fs \ |
arch/misc/prim.fs \ |
arch/misc/prim.fs \ |
arch/misc/sim.fs \ |
arch/misc/sim.fs \ |
arch/misc/sokoban.fs \ |
arch/misc/sokoban.fs \ |
arch/misc/tt.fs \ |
arch/misc/tt.fs \ |
arch/6502/asm.fs \ |
|
arch/6502/prim.fs \ |
arch/6502/prim.fs \ |
arch/6502/mach.fs \ |
arch/6502/mach.fs \ |
arch/6502/zero.fs \ |
|
arch/6502/softuart.fs \ |
|
arch/6502/cold.fs \ |
|
arch/8086/asm.fs \ |
|
arch/8086/mach.fs \ |
|
arch/8086/mach.sh \ |
|
arch/8086/prim.fs \ |
|
arch/avr/asm.fs \ |
|
arch/c165/asm.fs \ |
|
arch/c165/mach.fs \ |
|
arch/c165/prim.fs \ |
|
arch/h8/asm.fs \ |
|
arch/shboom/asm.fs \ |
arch/shboom/asm.fs \ |
arch/shboom/compiler.fs \ |
arch/shboom/compiler.fs \ |
arch/shboom/dis.fs \ |
arch/shboom/dis.fs \ |
Line 325 ARCHS = \
|
Line 317 ARCHS = \
|
arch/sharc/mach.fs \ |
arch/sharc/mach.fs \ |
arch/sharc/machine.h \ |
arch/sharc/machine.h \ |
arch/sharc/compile.sharc \ |
arch/sharc/compile.sharc \ |
arch/sharc/unistd.h \ |
|
arch/sharc/systypes.h \ |
arch/sharc/systypes.h \ |
arch/sharc/types.h \ |
arch/sharc/types.h \ |
arch/sharc/g21k-3.3.4-bp1.diff |
arch/sharc/g21k-3.3.4-bp1.diff |
|
|
|
#not included in distribution until distribution terms are included: |
|
ARCHS_NO_DIST = \ |
|
arch/6502/asm.fs \ |
|
arch/6502/cold.fs \ |
|
arch/6502/softuart.fs \ |
|
arch/6502/zero.fs \ |
|
arch/8086/asm.fs \ |
|
arch/8086/mach.fs \ |
|
arch/8086/mach.sh \ |
|
arch/8086/prim.fs \ |
|
arch/avr/asm.fs \ |
|
arch/c165/asm.fs \ |
|
arch/c165/mach.fs \ |
|
arch/c165/prim.fs \ |
|
arch/h8/asm.fs \ |
|
arch/sharc/unistd.h |
|
|
VMGEN_EX = vmgen-ex/CVS vmgen-ex/Makefile vmgen-ex/README vmgen-ex/disasm.c \ |
VMGEN_EX = vmgen-ex/CVS vmgen-ex/Makefile vmgen-ex/README vmgen-ex/disasm.c \ |
vmgen-ex/engine.c vmgen-ex/fib.mini \ |
vmgen-ex/engine.c vmgen-ex/fib.mini \ |
vmgen-ex/mini-inst.vmg vmgen-ex/mini-super.vmg vmgen-ex/mini.h \ |
vmgen-ex/mini-inst.vmg vmgen-ex/mini-super.vmg vmgen-ex/mini.h \ |
Line 350 SOURCES = $(CVSDIRS) compat Makefile.in
|
Line 358 SOURCES = $(CVSDIRS) compat Makefile.in
|
doc/gforth.ds doc/texinfo.tex doc/gforth.1 doc/version.texi.in \ |
doc/gforth.ds doc/texinfo.tex doc/gforth.1 doc/version.texi.in \ |
doc/vmgen.texi doc/fdl.texi doc/gpl.texi \ |
doc/vmgen.texi doc/fdl.texi doc/gpl.texi \ |
gforth.el \ |
gforth.el \ |
prim peeprules.vmg engine/engine.c engine/main.c \ |
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 \ |
$(ARCHS) \ |
$(ARCHS) \ |
engine/profile.c \ |
engine/profile.c \ |
Line 372 SOURCES = $(CVSDIRS) compat Makefile.in
|
Line 381 SOURCES = $(CVSDIRS) compat Makefile.in
|
|
|
RCS_FILES = ToDo model high-level |
RCS_FILES = ToDo model high-level |
|
|
ENGINES = gforth$(EXE) gforth-ditc$(EXE) gforth-fast$(EXE) gforth-itc$(EXE) $(PROFEXES) #gforth-native$(EXE) |
ENGINES = gforth$(EXE) gforth-ditc$(EXE) gforth-itc$(EXE) $(PROFEXES) |
|
|
|
ENGINES_FAST = gforth-fast$(EXE) gforth-native$(EXE) |
|
|
GEN = $(ENGINES) kernel/version.fs |
GEN = $(ENGINES) $(ENGINES_FAST) kernel/version.fs |
|
|
# things that need a working forth system to be generated |
# things that need a working forth system to be generated |
FORTH_GEN_ENGINE=engine/prim.i engine/prim_lab.i engine/prim_names.i \ |
FORTH_GEN_ENGINE=engine/prim.i engine/prim_lab.i engine/prim_names.i \ |
Line 594 check: gforths gforth.fi
|
Line 605 check: gforths gforth.fi
|
@echo "*** Check successful ***" |
@echo "*** Check successful ***" |
|
|
checkone test: gforth$(EXE) gforth.fi |
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/gforth.fs -e bye | tr -d '\015' | diff -c - $(srcdir)/test/coretest.out |
$(FORTH) test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs test/string.fs test/float.fs test/gforth.fs test/deferred.fs -e bye | tr -d '\015' | diff -c - $(srcdir)/test/coretest.out |
$(FORTH) test/other.fs -e bye |
$(FORTH) test/other.fs -e bye |
$(FORTHS) test/signals.fs -e bye |
$(FORTHS) test/signals.fs -e bye |
$(FORTH) code.fs test/checkans.fs -e bye | tr -d '\015' | diff -c - $(srcdir)/test/checkans.out |
$(FORTH) code.fs test/checkans.fs -e bye | tr -d '\015' | diff -c - $(srcdir)/test/checkans.out |
Line 602 checkone test: gforth$(EXE) gforth.fi
|
Line 613 checkone test: gforth$(EXE) gforth.fi
|
"c-flag on s\" prim.i\" out-filename 2! s\" $(srcdir)/prim.b\" ' output-c ' output-c-combined process-file bye"| \ |
"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' | diff -c - $(srcdir)/engine/prim.i |
|
|
|
test/primtest.fi: test/primtest.fs mach32l.fs cross.fs |
|
$(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$(EXE) 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)' |
time $(FORTH_FAST) siev.fs -e "main bye" |
time $(FORTH_FAST) siev.fs -e "main bye" |
Line 701 gforth.fi: $(kernel_fi) gforthmi gforth$
|
Line 718 gforth.fi: $(kernel_fi) gforthmi gforth$
|
|
|
# ------------- Make c-engine |
# ------------- Make c-engine |
|
|
prim.b: prim peeprules.vmg |
prim.b: prim cache0.vmg |
m4 -s $(srcdir)/prim >$@ |
m4 -s $(srcdir)/prim >$@ |
sleep 1 #should make hpux-workaround unnecessary |
sleep 1 #should make hpux-workaround unnecessary |
|
|
prim-fast.b: prim.b |
prim-fast.b: prim cache1.vmg peeprules.vmg |
cp prim.b prim-fast.b |
m4 -DM4_ENGINE_FAST -s $(srcdir)/prim >$@ |
|
sleep 1 #should make hpux-workaround unnecessary |
|
|
$(FORTH_GEN_ENGINE_FAST): prim-fast.b prims2x.fs |
$(FORTH_GEN_ENGINE_FAST): prim-fast.b prims2x.fs |
GFORTH="$(FORTHP)" gfgen -fast |
GFORTH="$(FORTHP)" $(srcdir)/gfgen -fast |
|
|
$(FORTH_GEN_ENGINE): prim.b prims2x.fs |
$(FORTH_GEN_ENGINE): prim.b prims2x.fs |
GFORTH="$(FORTHP)" gfgen |
GFORTH="$(FORTHP)" $(srcdir)/gfgen |
|
|
kernel/aliases.fs: prim.b prims2x.fs kernel/aliases0.fs |
kernel/aliases.fs: prim.b prims2x.fs kernel/aliases0.fs |
$(CP) kernel/aliases0.fs $@- |
$(CP) kernel/aliases0.fs $@- |
Line 731 gforth$(EXE): engines
|
Line 749 gforth$(EXE): engines
|
$(CP) engine/$@ $@ |
$(CP) engine/$@ $@ |
@GFORTH_EXE@ |
@GFORTH_EXE@ |
|
|
gforth-fast$(EXE): engines |
gforth-fast$(EXE): engines-fast |
$(CP) engine/$@ $@ |
$(CP) engine/$@ $@ |
@GFORTHFAST_EXE@ |
@GFORTHFAST_EXE@ |
|
|
gforth-native$(EXE): engines |
gforth-native$(EXE): engines-fast |
$(CP) engine/$@ $@ |
$(CP) engine/$@ $@ |
#@GFORTHX_EXE@ |
#@GFORTHX_EXE@ |
|
|
Line 750 gforth-ditc$(EXE): engines
|
Line 768 gforth-ditc$(EXE): engines
|
gforth-prof$(EXE): engines |
gforth-prof$(EXE): engines |
$(CP) engine/$@ $@ |
$(CP) engine/$@ $@ |
|
|
gforths: $(ENGINES) |
gforths: $(ENGINES) $(ENGINES_FAST) |
|
|
engines: FORCE $(FORTH_GEN_ENGINE) engine/Makefile |
engines: FORCE $(FORTH_GEN_ENGINE) engine/Makefile |
cd engine && $(MAKE) $(ENGINES) |
cd engine && $(MAKE) $(ENGINES) |
|
|
|
engines-fast: FORCE $(FORTH_GEN_ENGINE_FAST) engine/Makefile |
|
cd engine && $(MAKE) $(ENGINES_FAST) |
|
|
# ------------- additional C primitives |
# ------------- additional C primitives |
|
|
%.c: %.pri prim2cl.fs |
%.c: %.pri prim2cl.fs |