--- gforth/Makefile.in 1998/05/02 21:28:41 1.107 +++ gforth/Makefile.in 1998/06/17 16:55:04 1.112 @@ -30,18 +30,17 @@ # ------------- gforth version -VERSION_MAJOR=0 -VERSION_MINOR=4 -VERSION_RELEASE=0 -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 @@ -136,7 +135,9 @@ KERN_SRC = \ 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 \ @@ -209,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 \ @@ -281,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 @@ -297,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: @@ -326,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 @@ -353,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 @@ -448,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) @@ -458,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 @@ -559,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 @@ -596,19 +584,15 @@ kernel/prim.fs: prim.b prims2x.fs kernel $(CP) $@- $@ $(RM) $@- -engine: engine/prim_lab.i engine/prim.i engine/version.h FORCE - $(MAKE) -C engine engine - -engine_ditc: engine/prim_lab.i engine/prim.i engine/version.h FORCE - $(MAKE) -C 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 @@ -653,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 @@ -661,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 @@ -673,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 @@ -686,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