| |
|
| # ------------- gforth version |
# ------------- gforth version |
| |
|
| VERSION_MAJOR=0 |
VERSION = @VERSION@ |
| VERSION_MINOR=4 |
DOSVERSION=`echo $VERSION|sed 's/\.//g'` |
| VERSION_RELEASE=0 |
|
| VERSION =$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_RELEASE) |
|
| DOSVERSION=$(VERSION_MAJOR)$(VERSION_MINOR)$(VERSION_RELEASE) |
|
| |
|
| # ------------- System specific variables |
# ------------- System specific variables |
| |
|
| machine=@mach_h@ |
machine=@machine@ |
| |
kernel_fi=@kernel_fi@ |
| |
|
| # this is the type of machine |
# this is the type of machine |
| # used to extend the include path with ./arch/$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 |
# machine.h file |
| |
|
| PATHSEP = @PATHSEP@ |
PATHSEP = @PATHSEP@ |
| FORTHPATH = $(libdir)/gforth/site-forth$(PATHSEP)$(datadir)/gforth/site-forth$(PATHSEP)$(libdir)/gforth/$(VERSION)$(PATHSEP)$(datadir)/gforth/$(VERSION)$(PATHSEP). |
FORTHPATH = $(libdir)/gforth/site-forth$(PATHSEP)$(datadir)/gforth/site-forth$(PATHSEP)$(libdir)/gforth/$(VERSION)$(PATHSEP)$(datadir)/gforth/$(VERSION)$(PATHSEP). |
| FORTHSIZES = @FORTHSIZES@ |
FORTHSIZES = @FORTHSIZES@ |
| FORTH = ./gforth --die-on-signal -p $(FORTHPATH)$(PATHSEP)$(srcdir) |
FORTH = ./gforth --die-on-signal -p $(FORTHPATH)$(PATHSEP)$(srcdir) |
| FORTHKFLAGS= --die-on-signal -p .$(PATHSEP)$(srcdir) -i ./kernel.fi |
FORTHKFLAGS= --die-on-signal -p .$(PATHSEP)$(srcdir) -i ./$(kernel_fi) |
| FORTHK = ./gforth $(FORTHKFLAGS) |
FORTHK = ./gforth $(FORTHKFLAGS) |
| FORTHP = ./gforth --die-on-signal -i ./kernel.fi |
FORTHP = ./gforth --die-on-signal -i ./$(kernel_fi) |
| STRIP = strip |
STRIP = strip |
| TEXI2DVI = texi2dvi |
TEXI2DVI = texi2dvi |
| DVI2PS = dvips -D300 |
DVI2PS = dvips -D300 |
| man1dir= $(mandir)/man1 |
man1dir= $(mandir)/man1 |
| man1ext= .1 |
man1ext= .1 |
| #older emacses have their site-lisp in $(libdir)/emacs/ |
#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 |
INCLUDES = engine/CVS engine/forth.h engine/threaded.h engine/io.h |
| |
|
| |
|
| GEN = gforth gforth-ditc kernel/version.fs version-stamp |
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 |
# 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 kernel/aliases.fs kernel/prim.fs |
| FORTH_GEN = $(FORTH_GEN0) @KERNEL@ gforth.fi |
FORTH_GEN = $(FORTH_GEN0) @KERNEL@ gforth.fi |
| #stuff in a binonly distribution |
#stuff in a binonly distribution |
| BINONLYDIST = config.status Makefile gforth gforth-ditc \ |
BINONLYDIST = config.status Makefile gforth gforth-ditc \ |
| $(OBJECTS0) $(OBJECTS) $(OBJECTS_DITC)\ |
$(OBJECTS0) $(OBJECTS) $(OBJECTS_DITC)\ |
| arch/$(machine)/machine.h engine/config.h kernel.fi \ |
arch/$(machine)/machine.h engine/config.h \ |
| stamp-h engine/version.h kernel/version.fs version-stamp \ |
stamp-h kernel/version.fs version-stamp \ |
| INSTALL.BINDIST |
INSTALL.BINDIST |
| |
|
| KERNLS = kernl16b.fi- kernl16l.fi- \ |
KERNLS = kernl16b.fi- kernl16l.fi- \ |
| # of the "/ and \" problem. Copying works because we use the |
# of the "/ and \" problem. Copying works because we use the |
| # shell und file utilities. |
# shell und file utilities. |
| |
|
| engine/version.h: version |
|
| bash versions.bsh $(VERSION) |
|
| |
|
| kernel/version.fs: version |
kernel/version.fs: version |
| $(MAKE) gforth |
$(MAKE) gforth |
| bash versions.bsh $(VERSION) |
$(SHELL) versions.bsh $(VERSION) |
| |
|
| more: engine $(FORTH_GEN) gforth |
more: engine $(FORTH_GEN) gforth |
| |
|
| doc/gforth.dvi doc/gforth.fn doc/gforth.ky doc/gforth.log \ |
doc/gforth.dvi doc/gforth.fn doc/gforth.ky doc/gforth.log \ |
| doc/gforth.pg \ |
doc/gforth.pg \ |
| doc/gforth.toc doc/gforth.tp doc/gforth.vr html \ |
doc/gforth.toc doc/gforth.tp doc/gforth.vr html \ |
| gforth-$(VERSION).tar.gz \ |
gforth-$(VERSION).tar.gz |
| engine/version.h |
|
| |
|
| clean: mostlyclean |
clean: mostlyclean |
| -$(RM) -rf $(GEN) *.o engine/*.o engine/*.a |
-$(RM) -rf $(GEN) *.o engine/*.o engine/*.a |
| |
|
| distclean: clean |
distclean: clean |
| -$(RM) machine kernel.fi config.cache config.log \ |
-$(RM) config.cache config.log \ |
| config.status engine/config.h Makefile stamp-h |
config.status engine/config.h Makefile stamp-h |
| |
|
| #realclean is useless, but dangerous, so it's commented out |
#realclean is useless, but dangerous, so it's commented out |
| #install does not depend on gforth.info, because that would require |
#install does not depend on gforth.info, because that would require |
| #supplying a lot of files that can be easily generated (only info is |
#supplying a lot of files that can be easily generated (only info is |
| #hard to generate) |
#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 |
touch $(datadir)/gforth/site-forth/siteinit.fs |
| -$(RM) $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
-$(RM) $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
| $(INSTALL_PROGRAM) -s gforth $(bindir) |
$(INSTALL_PROGRAM) -s gforth $(bindir) |
| for i in $(FORTH_SRC) prim; do \ |
for i in $(FORTH_SRC) prim; do \ |
| $(INSTALL_DATA) $(srcdir)/$$i $(datadir)/gforth/$(VERSION); \ |
$(INSTALL_DATA) $(srcdir)/$$i $(datadir)/gforth/$(VERSION); \ |
| done |
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 |
$(RM) gforth.fi; $(MAKE) gforth.fi #gforth.fi contains some path names |
| $(INSTALL_DATA) gforth.fi $(libdir)/gforth/$(VERSION) |
$(INSTALL_DATA) gforth.fi $(libdir)/gforth/$(VERSION) |
| sed 's:^$(srcdir)/:$(datadir)/gforth/$(VERSION)/:' gforth.TAGS >TAGS; $(INSTALL_DATA) TAGS $(datadir)/gforth/$(VERSION) |
sed 's:^$(srcdir)/:$(datadir)/gforth/$(VERSION)/:' gforth.TAGS >TAGS; $(INSTALL_DATA) TAGS $(datadir)/gforth/$(VERSION) |
| # -$(CP) $@ $@~ |
# -$(CP) $@ $@~ |
| # -$(CP) $< $@ |
# -$(CP) $< $@ |
| |
|
| # If we want a new kernel.fi we should use "kernel.fi:" this makes |
gforth.fi: $(kernel_fi) gforthmi gforth gforth-ditc $(GFORTH_FI_SRC) |
| # a link or a copy from kernl....fi to kernel.fi |
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 |
| # 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 |
|
| |
|
| # ------------- Make c-engine |
# ------------- Make c-engine |
| |
|
| $(CP) $@- $@ |
$(CP) $@- $@ |
| $(RM) $@- |
$(RM) $@- |
| |
|
| engine: engine/prim_lab.i engine/prim.i engine/version.h FORCE |
gforth: 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 |
|
| -$(CP) gforth gforth~ |
-$(CP) gforth gforth~ |
| $(GCC) $(LDFLAGS) $(OBJECTS) $(OBJECTS0) $(LDLIBS) -o $@ |
cd engine; make gforth; cd .. |
| |
$(CP) engine/$@ $@ |
| @GFORTH_EXE@ |
@GFORTH_EXE@ |
| |
|
| gforth-ditc: engine_ditc |
gforth-ditc: FORCE |
| $(GCC) $(LDFLAGS) $(OBJECTS_DITC) $(OBJECTS0) $(LDLIBS) -o $@ |
cd engine; make gforth-ditc; cd .. |
| |
$(CP) engine/$@ $@ |
| @GFORTHDITC_EXE@ |
@GFORTHDITC_EXE@ |
| |
|
| # ------------- additional C primitives |
# ------------- additional C primitives |