--- gforth/Makefile.in 1997/09/01 23:07:04 1.106 +++ gforth/Makefile.in 1998/06/17 16:55:04 1.112 @@ -30,18 +30,17 @@ # ------------- gforth version -VERSION_MAJOR=0 -VERSION_MINOR=3 -VERSION_RELEASE=1 -VERSION =$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_RELEASE) -DOSVERSION=$(VERSION_MAJOR)$(VERSION_MINOR)$(VERSION_RELEASE) +VERSION = @VERSION@ +DOSVERSION=`echo $VERSION|sed 's/\.//g'` # ------------- System specific variables -machine=@mach_h@ +machine=@machine@ +kernel_fi=@kernel_fi@ + # this is the type of machine # used to extend the include path with ./arch/$machine -# so we could include a machine specific +# so we can include a machine specific # machine.h file PATHSEP = @PATHSEP@ @@ -61,12 +60,12 @@ INSTALL_DATA = @INSTALL_DATA@ LN_S = @LN_S@ GCC = @CC@ CC = $(GCC) -FORTHPATH = $(libdir)/gforth/site-forth$(PATHSEP)$(datadir)/gforth/site-forth$(PATHSEP)$(libdir)/gforth/$(VERSION)$(PATHSEP)$(datadir)/gforth/$(VERSION)$(PATHSEP). +FORTHPATH = .$(PATHSEP)$(libdir)/gforth/site-forth$(PATHSEP)$(datadir)/gforth/site-forth$(PATHSEP)$(libdir)/gforth/$(VERSION)$(PATHSEP)$(datadir)/gforth/$(VERSION) FORTHSIZES = @FORTHSIZES@ -FORTH = ./gforth -p $(FORTHPATH)$(PATHSEP)$(srcdir) -FORTHKFLAGS= -p .$(PATHSEP)$(srcdir) -i ./kernel.fi +FORTH = ./gforth --die-on-signal -p $(FORTHPATH)$(PATHSEP)$(srcdir) +FORTHKFLAGS= --die-on-signal -p .$(PATHSEP)$(srcdir) -i ./$(kernel_fi) FORTHK = ./gforth $(FORTHKFLAGS) -FORTHP = ./gforth -i ./kernel.fi +FORTHP = ./gforth --die-on-signal -i ./$(kernel_fi) STRIP = strip TEXI2DVI = texi2dvi DVI2PS = dvips -D300 @@ -105,7 +104,7 @@ mandir = $(prefix)/man man1dir= $(mandir)/man1 man1ext= .1 #older emacses have their site-lisp in $(libdir)/emacs/ -emacssitelispdir=$(datadir)/emacs/site-lisp +emacssitelispdir=@lispdir@ INCLUDES = engine/CVS engine/forth.h engine/threaded.h engine/io.h @@ -131,11 +130,31 @@ KERN_SRC = \ kernel/vars.fs \ kernel/accept.fs \ kernel/basics.fs \ - kernel/interp.fs \ + kernel/int.fs \ + kernel/comp.fs \ kernel/io.fs \ kernel/license.fs \ kernel/nio.fs \ - kernel/saccept.fs + kernel/saccept.fs \ + kernel/doers.fs \ + kernel/getdoers.fs + +EC_SRC = \ + asm/00-readme \ + asm/bitmask.fs \ + asm/numref.fs \ + asm/basic.fs \ + asm/generic.fs \ + asm/target.fs \ + ec/00-readme \ + ec/crossdoc.fd \ + ec/mirror.fs \ + ec/mirrors.fs \ + ec/shex.fs \ + ec/builttag.fs \ + ec/dotx.fs \ + ec/mirrored.fs \ + ec/nesting.fs GFORTH_FI_SRC = \ assert.fs \ @@ -171,7 +190,7 @@ GFORTH_FI_SRC = \ sieve.fs \ add.fs -FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) \ +FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) $(EC_SRC) \ ans-report.fs ansi.fs answords.fs \ code.fs colorize.fs comp-i.fs \ doskey.fs ds2texi.fs \ @@ -191,6 +210,8 @@ FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) COMPAT = compat/CVS compat/README compat/control.fs compat/anslocal.fs \ compat/struct.fs compat/loops.fs +GFORTH_TEXI = doc/gforth.texi doc/version.texi + ALLSUBDIRS = engine ARCHS = arch/generic/machine.h \ @@ -213,7 +234,30 @@ ARCHS = arch/generic/machine.h \ arch/misc/prim.fs \ arch/misc/sim.fs \ arch/misc/sokoban.fs \ - arch/misc/tt.fs + arch/misc/tt.fs \ + arch/6502/asm.fs \ + arch/6502/prim.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/compiler.fs \ + arch/shboom/dis.fs \ + arch/shboom/mach.fs \ + arch/shboom/prim.fs \ + arch/shboom/dis2.fs \ + arch/shboom/sh.p \ + arch/shboom/doers.fs SOURCES = CVS compat Makefile.in engine/Makefile.in gforthmi \ configure.in configure config.sub config.guess \ @@ -240,10 +284,6 @@ RCS_FILES = ToDo model high-level GEN = gforth gforth-ditc kernel/version.fs version-stamp -OBJECTS0 = engine/replace.a -OBJECTS = engine/engine.o engine/main.o -OBJECTS_DITC = engine/engine-ditc.o engine/main-ditc.o - # 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_GEN = $(FORTH_GEN0) @KERNEL@ gforth.fi @@ -256,15 +296,15 @@ DOCDIST = doc/gforth.info doc/gforth.inf #stuff in a binonly distribution BINONLYDIST = config.status Makefile gforth gforth-ditc \ $(OBJECTS0) $(OBJECTS) $(OBJECTS_DITC)\ - arch/$(machine)/machine.h engine/config.h kernel.fi \ - stamp-h engine/version.h kernel/version.fs version-stamp \ + arch/$(machine)/machine.h engine/config.h engione/Makefile \ + stamp-h kernel/version.fs version-stamp \ INSTALL.BINDIST KERNLS = kernl16b.fi- kernl16l.fi- \ kernl32b.fi- kernl32l.fi- \ kernl64b.fi- kernl64l.fi- -GEN_PRECIOUS = $(FORTH_GEN) $(KERNLS) doc/gforth.texi doc/gforth.dvi doc/gforth.ps Makefile configure +GEN_PRECIOUS = $(FORTH_GEN) $(KERNLS) doc/gforth.texi doc/gforth.dvi doc/gforth.ps Makefile engine/Makefile configure #standards.info recommends this: .SUFFIXES: @@ -285,12 +325,9 @@ version: Makefile.in # of the "/ and \" problem. Copying works because we use the # shell und file utilities. -engine/version.h: version - bash versions.bsh $(VERSION) - kernel/version.fs: version - $(MAKE) gforth - bash versions.bsh $(VERSION) + $(MAKE) gforth + $(SHELL) versions.bsh $(VERSION) more: engine $(FORTH_GEN) gforth @@ -312,15 +349,14 @@ mostlyclean: FORCE doc/gforth.dvi doc/gforth.fn doc/gforth.ky doc/gforth.log \ doc/gforth.pg \ doc/gforth.toc doc/gforth.tp doc/gforth.vr html \ - gforth-$(VERSION).tar.gz \ - engine/version.h + gforth-$(VERSION).tar.gz clean: mostlyclean -$(RM) -rf $(GEN) *.o engine/*.o engine/*.a distclean: clean - -$(RM) machine kernel.fi config.cache config.log \ - config.status engine/config.h Makefile stamp-h + -$(RM) config.cache config.log \ + config.status engine/config.h Makefile engine/Makefile stamp-h #realclean is useless, but dangerous, so it's commented out #realclean: distclean @@ -407,7 +443,7 @@ binonlydist: $(SOURCES) $(FORTH_GEN0) @K #install does not depend on gforth.info, because that would require #supplying a lot of files that can be easily generated (only info is #hard to generate) -install: gforth $(FORTH_SRC) kernel.fi gforth.fi doc/gforth.1 prim gforth.TAGS installdirs +install: gforth $(FORTH_SRC) $(kernel_fi) gforth.fi doc/gforth.1 prim gforth.TAGS installdirs touch $(datadir)/gforth/site-forth/siteinit.fs -$(RM) $(bindir)/gforth $(bindir)/gforth-$(VERSION) $(INSTALL_PROGRAM) -s gforth $(bindir) @@ -417,16 +453,16 @@ install: gforth $(FORTH_SRC) kernel.fi g for i in $(FORTH_SRC) prim; do \ $(INSTALL_DATA) $(srcdir)/$$i $(datadir)/gforth/$(VERSION); \ done - $(INSTALL_DATA) kernel.fi $(libdir)/gforth/$(VERSION) + $(INSTALL_DATA) $(kernel_fi) $(datadir)/gforth/$(VERSION) $(RM) gforth.fi; $(MAKE) gforth.fi #gforth.fi contains some path names $(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); \ else \ echo ">>>>>Please install $(srcdir)/gforth.el in your .../emacs/site-lisp directory"; \ fi - echo ">>>>> Please make an entry for Gforth in your info dir file; e.g.:"; \ + @echo ">>>>> Please make an entry for Gforth in your info dir file; e.g.:"; \ echo "* Gforth: (gforth). A fast interpreter for the Forth language." install-strip: install @@ -445,7 +481,7 @@ check test: gforth gforth.fi $(FORTH) test/other.fs -e bye $(FORTH) code.fs test/checkans.fs -e bye @echo 'Expect no differences' - $(FORTH) -m 100000 prims2x.fs -e "s\" $(srcdir)/prim.b\"' output-c process-file bye"| diff -c - $(srcdir)/engine/prim.i + $(FORTHK) -m 100000 prims2x.fs -e "s\" $(srcdir)/prim.b\"' output-c process-file bye"| diff -c - $(srcdir)/engine/prim.i bench: gforth gforth.fi @echo 'Each benchmark takes about 30s on a 486-66 (gcc-2.6.3 -DFORCE_REG)' @@ -518,15 +554,8 @@ kernl64l.fi: $(KERNLS) # -$(CP) $@ $@~ # -$(CP) $< $@ -# If we want a new kernel.fi we should use "kernel.fi:" this makes -# a link or a copy from kernl....fi to kernel.fi -# works for dos-computers, too!! - -kernel.fi: @kernel_fi@ - @LINK_KERNL@ - -gforth.fi: kernel.fi gforthmi gforth gforth-ditc $(GFORTH_FI_SRC) - GFORTHD="./gforth-ditc -p .$(PATHSEP)$(srcdir)" GFORTH="./gforth-ditc -p .$(PATHSEP)$(srcdir) -i kernel.fi startup.fs" $(srcdir)/gforthmi gforth.fi $(FORTHSIZES) $(FORTHKFLAGS) startup.fs +gforth.fi: $(kernel_fi) gforthmi gforth gforth-ditc $(GFORTH_FI_SRC) + GFORTHD="./gforth-ditc -p .$(PATHSEP)$(srcdir)" GFORTH="./gforth-ditc -p .$(PATHSEP)$(srcdir) -i $(kernel_fi) startup.fs" $(srcdir)/gforthmi gforth.fi $(FORTHSIZES) $(FORTHKFLAGS) startup.fs # ------------- Make c-engine @@ -555,21 +584,25 @@ kernel/prim.fs: prim.b prims2x.fs kernel $(CP) $@- $@ $(RM) $@- -engine: engine/prim_lab.i engine/prim.i engine/version.h FORCE - bash makein.bsh engine engine - -engine_ditc: engine/prim_lab.i engine/prim.i engine/version.h FORCE - bash makein.bsh engine engine_ditc - -gforth: engine +gforth: FORCE -$(CP) gforth gforth~ - $(GCC) $(LDFLAGS) $(OBJECTS) $(OBJECTS0) $(LDLIBS) -o $@ + cd engine; make gforth; cd .. + $(CP) engine/$@ $@ @GFORTH_EXE@ -gforth-ditc: engine_ditc - $(GCC) $(LDFLAGS) $(OBJECTS_DITC) $(OBJECTS0) $(LDLIBS) -o $@ +gforth-ditc: FORCE + cd engine; make gforth-ditc; cd .. + $(CP) engine/$@ $@ @GFORTHDITC_EXE@ +# ------------- additional C primitives + +%.c: %.pri prim2cl.fs + $(FORTHK) prim2cl.fs -e "file $< altogether bye" >$@ + +%.so: %.c + $(GCC) -shared $(CFLAGS) $< -o $@ + # ------------- Make Documentation #TAGS is a GNU standard target @@ -604,7 +637,7 @@ checkdoc: doc/gforth.ds prim.b ds2texi.f dvi: doc/gforth.dvi -doc/gforth.dvi doc/gforth.fns: doc/gforth.texi +doc/gforth.dvi doc/gforth.fns: $(GFORTH_TEXI) cd doc; $(TEXI2DVI) gforth.texi doc/gforth.ps: doc/gforth.dvi @@ -612,10 +645,10 @@ doc/gforth.ps: doc/gforth.dvi info: doc/gforth.info -doc/gforth.info doc/gforth.info-*: doc/gforth.texi +doc/gforth.info doc/gforth.info-*: $(GFORTH_TEXI) -cd doc; $(MAKEINFO) gforth.texi -html: doc/gforth.texi +html: $(GFORTH_TEXI) -$(RM) html/* -mkdir html cd html; $(TEXI2HTML) -menu -split_node ../doc/gforth.texi @@ -624,9 +657,12 @@ doc: doc/gforth.ps html # For an explanation of the following Makefile rules, see node # `Automatic Remaking' in GNU Autoconf documentation. -$(srcdir)/configure: configure.in +$(srcdir)/configure: configure.in aclocal.m4 cd $(srcdir) && autoconf +aclocal.m4: acinclude.m4 configure.in + aclocal + # autoheader might not change config.h.in, so touch a stamp file. config.h.in: stamp-h.in stamp-h.in: configure.in acconfig.h @@ -637,8 +673,12 @@ engine/config.h: stamp-h stamp-h: config.h.in config.status CONFIG_FILES=$@ CONFIG_HEADERS=engine/config.h ./config.status echo > stamp-h + Makefile: Makefile.in config.status CONFIG_FILES="$@ engine/$@" CONFIG_HEADERS=engine/config.h ./config.status + +engine/Makefile: engine/Makefile.in config.status + CONFIG_FILES="$@ engine/$@" CONFIG_HEADERS=engine/config.h ./config.status config.status: configure ./config.status --recheck