| #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. |
| |
|
| # 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 |
| #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 |
| LDFLAGS = $(DEBUGFLAG) $(XLDFLAGS) |
LDFLAGS = $(DEBUGFLAG) $(XLDFLAGS) |
| LDLIBS = @LIBS@ |
LDLIBS = @LIBS@ |
| |
|
| # ------------ Install Directorys |
STACK_CACHE_DEFAULT_FAST = @STACK_CACHE_DEFAULT_FAST@ |
| |
|
| |
# ------------ Install Directories |
| |
|
| VPATH = @srcdir@ |
VPATH = @srcdir@ |
| prefix = @prefix@ |
prefix = @prefix@ |
| kernel/saccept.fs \ |
kernel/saccept.fs \ |
| kernel/doers.fs \ |
kernel/doers.fs \ |
| kernel/getdoers.fs \ |
kernel/getdoers.fs \ |
| kernel/pass.fs |
kernel/pass.fs \ |
| |
kernel/xchars.fs |
| |
|
| EC_SRC = \ |
EC_SRC = \ |
| asm/README \ |
asm/README \ |
| 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 \ |
| 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/alpha/asm.fs arch/alpha/disasm.fs \ |
arch/amd64/asm.fs arch/amd64/disasm.fs \ |
| arch/mips/asm.fs arch/mips/disasm.fs arch/mips/insts.fs |
arch/alpha/asm.fs arch/alpha/disasm.fs arch/alpha/testasm.fs\ |
| |
arch/mips/asm.fs arch/mips/disasm.fs arch/mips/insts.fs \ |
| |
arch/mips/testasm.fs arch/mips/testdisasm.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 \ |
| 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 test/coreext.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 \ |
| 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 \ |
| 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 \ |
| echo ": version-string s\" $(VERSION)\" ;" > kernel/version.fs |
echo ": version-string s\" $(VERSION)\" ;" > kernel/version.fs |
| |
|
| more: engines $(FORTH_GEN) $(GEN) |
more: engines $(FORTH_GEN) $(GEN) |
| |
@make check |
| |
@$(FORTH_FAST) --diag -e bye |
| |
|
| #from the gcc Makefile: |
#from the gcc Makefile: |
| #"Deletion of files made during compilation. |
#"Deletion of files made during compilation. |
| -$(RM) -rf config.cache config.log config.status \ |
-$(RM) -rf config.cache config.log config.status \ |
| engine/config.h Makefile Makedist engine/Makefile \ |
engine/config.h Makefile Makedist engine/Makefile \ |
| stamp-h engine/stamp-h \ |
stamp-h engine/stamp-h \ |
| doc/version.texi gforthmi vmgen |
doc/version.texi gforthmi vmgen \ |
| |
prim-fast.b $(FORTH_GEN_ENGINE_FAST) |
| |
|
| #realclean is useless, but dangerous, so it's commented out |
#realclean is useless, but dangerous, so it's commented out |
| realclean: distclean |
realclean: distclean |
| @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 test/coreext.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 |
| 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 |
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" |
$(FORTHB) -e 's" mach32b.fs"' $(srcdir)/test/primtest.fs -e "save-cross $@ $(bindir)/gforth-$(VERSION) bye" |
| |
|
| primtest: gforth gforth-native test/primtest.fi FORCE |
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 $$? |
(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)' |
| 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 cache1.vmg peeprules.vmg |
prim-fast.b: prim cache-fast$(STACK_CACHE_DEFAULT_FAST).vmg peeprules.vmg |
| m4 -DM4_ENGINE_FAST -s $(srcdir)/prim >$@ |
m4 -DSTACK_CACHE_FILE=cache-fast$(STACK_CACHE_DEFAULT_FAST).vmg -s $(srcdir)/prim >$@ |
| sleep 1 #should make hpux-workaround unnecessary |
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 $@- |