| #Makefile for Gforth |
#Makefile for Gforth |
| |
|
| #Copyright (C) 1995 Free Software Foundation, Inc. |
#Copyright (C) 1995, 1996 Free Software Foundation, Inc. |
| |
|
| #This file is part of Gforth. |
#This file is part of Gforth. |
| |
|
| INSTALL = @INSTALL@ |
INSTALL = @INSTALL@ |
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
| INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_DATA = @INSTALL_DATA@ |
| INSTALL_DIR = ./install-sh -d |
INSTALL_DIR = $(srcdir)/install-sh -d |
| LN_S = @LN_S@ |
LN_S = @LN_S@ |
| GCC = @CC@ |
GCC = @CC@ |
| CC = $(GCC) |
CC = $(GCC) |
| FORTH = ./gforth |
FORTHPATH = $(libdir)/gforth/site-forth:$(datadir)/gforth/site-forth:$(libdir)/gforth/$(VERSION):$(datadir)/gforth/$(VERSION):. |
| FORTHK = $(FORTH) -i ./kernel.fi |
FORTH = ./gforth -p $(FORTHPATH):$(srcdir) |
| |
FORTHK = $(FORTH) -p .:$(srcdir) -i ./kernel.fi |
| |
FORTHP = ./gforth -i ./kernel.fi |
| STRIP = strip |
STRIP = strip |
| TEXI2DVI = texi2dvi |
TEXI2DVI = texi2dvi |
| DVI2PS = dvips -D300 |
DVI2PS = dvips -D300 |
| SWITCHES = $(XCFLAGS) $(XDEFINES) #-DNDEBUG #turn off assertions |
SWITCHES = $(XCFLAGS) $(XDEFINES) #-DNDEBUG #turn off assertions |
| ENGINE_FLAGS = @ENGINE_FLAGS@ -fno-defer-pop -fcaller-saves |
ENGINE_FLAGS = @ENGINE_FLAGS@ -fno-defer-pop -fcaller-saves |
| DEBUGFLAG = @DEBUGFLAG@ |
DEBUGFLAG = @DEBUGFLAG@ |
| CFLAGS = $(DEBUGFLAG) -O4 -Wall $(SWITCHES) -DDEFAULTPATH=\"$(libdir)/gforth/site-forth:$(datadir)/gforth/site-forth:$(libdir)/gforth/$(VERSION):$(datadir)/gforth/$(VERSION):.\" |
CFLAGS = $(DEBUGFLAG) -I. -I$(srcdir) -O4 -Wall $(SWITCHES) -DDEFAULTPATH=\"$(FORTHPATH)\" |
| |
|
| #John Wavrik should use -Xlinker -N to get a writable text (executable) |
#John Wavrik should use -Xlinker -N to get a writable text (executable) |
| XLDFLAGS = @LDFLAGS@ |
XLDFLAGS = @LDFLAGS@ |
| FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@ |
FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@ |
| |
|
| #distributed documentation |
#distributed documentation |
| DOCDIST = gforth.texi gforth.fns gforth.ps gforth.info* |
DOCDIST = gforth.ps gforth.info* |
| |
|
| KERNLS = kernl16b.fi- kernl16l.fi- \ |
KERNLS = kernl16b.fi- kernl16l.fi- \ |
| kernl32b.fi- kernl32l.fi- \ |
kernl32b.fi- kernl32l.fi- \ |
| # `realclean' also deletes everything that could be regenerated automatically." |
# `realclean' also deletes everything that could be regenerated automatically." |
| |
|
| mostlyclean: |
mostlyclean: |
| -$(RM) -rf *.s gforth.fi *.fi~ *.fi- version.fs TAGS \ |
-$(RM) -rf *.s gforth.fi *.fi~ *.fi- version.fs *TAGS \ |
| crossdoc.fd doc.fd gforth.aux gforth.cp gforth.cps \ |
crossdoc.fd doc.fd gforth.texi gforth.fns gforth.aux gforth.cp gforth.cps \ |
| gforth.dvi gforth.fn gforth.ky gforth.log gforth.pg \ |
gforth.dvi gforth.fn gforth.ky gforth.log gforth.pg \ |
| gforth.toc gforth.tp gforth.vr html |
gforth.toc gforth.tp gforth.vr html |
| |
|
| -$(RM) -rf gforth.fns gforth.texi gforth.ps gforth.info* \ |
-$(RM) -rf gforth.fns gforth.texi gforth.ps gforth.info* \ |
| gforth-$(VERSION).tar.gz config.cache *~ */*~ |
gforth-$(VERSION).tar.gz config.cache *~ */*~ |
| |
|
| |
#use dist targets only when srcdir=. |
| dist: $(SOURCES) $(FORTH_GEN) $(DOCDIST) |
dist: $(SOURCES) $(FORTH_GEN) $(DOCDIST) |
| -rm -rf gforth-$(VERSION) |
-rm -rf gforth-$(VERSION) |
| mkdir gforth-$(VERSION) |
mkdir gforth-$(VERSION) |
| #strip gforth, because the debugging stuff is hardly useful once |
#strip gforth, because the debugging stuff is hardly useful once |
| # gforth manages to execute more than a few primitives |
# gforth manages to execute more than a few primitives |
| |
|
| install: gforth $(FORTH_SRC) kernel.fi gforth.fi gforth.1 gforth.info* primitives gforth.TAGS |
install: gforth $(FORTH_SRC) kernel.fi gforth.fi gforth.1 gforth.info primitives gforth.TAGS |
| for i in $(bindir) $(mandir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(datadir)/gforth/site-forth; do \ |
for i in $(bindir) $(mandir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(datadir)/gforth/site-forth; do \ |
| $(INSTALL_DIR) $$i; \ |
$(INSTALL_DIR) $$i; \ |
| done |
done |
| -$(RM) $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
-$(RM) $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
| $(INSTALL_PROGRAM) -s gforth $(bindir) |
$(INSTALL_PROGRAM) -s gforth $(bindir) |
| ln $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
ln $(bindir)/gforth $(bindir)/gforth-$(VERSION) |
| $(INSTALL_DATA) gforth.1 $(mandir) |
$(INSTALL_DATA) $(srcdir)/gforth.1 $(mandir) |
| for i in gforth.info*; do $(INSTALL_DATA) $$i $(infodir); done |
for i in $(srcdir)/gforth.info*; do $(INSTALL_DATA) $$i $(infodir); done |
| for i in $(FORTH_SRC) primitives; do \ |
for i in $(FORTH_SRC) primitives; do \ |
| $(INSTALL_DATA) $$i $(datadir)/gforth/$(VERSION); \ |
$(INSTALL_DATA) $(srcdir)/$$i $(datadir)/gforth/$(VERSION); \ |
| done |
done |
| $(INSTALL_DATA) kernel.fi $(libdir)/gforth/$(VERSION) |
$(INSTALL_DATA) kernel.fi $(libdir)/gforth/$(VERSION) |
| $(FORTHK) startup.fs dumpimage.fs -e "savesystem $(libdir)/gforth/$(VERSION)/gforth.fi bye" #gforth.fi contains some path names |
$(FORTHP) startup.fs -e "savesystem $(libdir)/gforth/$(VERSION)/gforth.fi bye" #gforth.fi contains some path names |
| 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) |
| if test -d $(emacssitelispdir); then \ |
if test -d $(emacssitelispdir); then \ |
| $(INSTALL_DATA) gforth.el $(emacssitelispdir); \ |
$(INSTALL_DATA) $(srcdir)/gforth.el $(emacssitelispdir); \ |
| else \ |
else \ |
| echo "please install gforth.el in your .../emacs/site-lisp directory"; \ |
echo ">>>>>Please install $(srcdir)/gforth.el in your .../emacs/site-lisp directory"; \ |
| fi |
fi |
| |
|
| |
install-strip: install |
| |
|
| #deinstall all files specific to this version of gforth |
#deinstall all files specific to this version of gforth |
| #to uninstall version foo, type `make uninstall VERSION=foo' |
#to uninstall version foo, type `make uninstall VERSION=foo' |
| uninstall: |
uninstall: |
| $(FORTH) tester.fs coretest.fs postponetest.fs dbltest.fs -e bye |
$(FORTH) tester.fs coretest.fs postponetest.fs dbltest.fs -e bye |
| $(FORTH) code.fs checkans.fs -e bye |
$(FORTH) code.fs checkans.fs -e bye |
| @echo 'Expect no differences' |
@echo 'Expect no differences' |
| $(FORTH) prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye"| diff -c - primitives.i |
$(FORTH) prims2x.fs -e "s\" $(srcdir)/primitives.b\" ' output-c process-file bye"| diff -c - $(srcdir)/primitives.i |
| |
|
| bench: gforth gforth.fi |
bench: gforth 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)' |
| @MAKE_EXE@ |
@MAKE_EXE@ |
| |
|
| kernl16l.fi-: $(KERN_SRC) version.fs mach16l.fs $(FORTH_GEN0) |
kernl16l.fi-: $(KERN_SRC) version.fs mach16l.fs $(FORTH_GEN0) |
| $(FORTHK) -p . -e 's" mach16l.fs"' main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye" |
$(FORTHK) -e 's" mach16l.fs"' main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye" |
| |
|
| kernl16b.fi-: $(KERN_SRC) version.fs mach16b.fs $(FORTH_GEN0) |
kernl16b.fi-: $(KERN_SRC) version.fs mach16b.fs $(FORTH_GEN0) |
| $(FORTHK) -p . -e 's" mach16b.fs"' main.fs -e "save-cross kernl16b.fi- $(bindir)/gforth-$(VERSION) bye" |
$(FORTHK) -e 's" mach16b.fs"' main.fs -e "save-cross kernl16b.fi- $(bindir)/gforth-$(VERSION) bye" |
| |
|
| kernl32l.fi-: $(KERN_SRC) version.fs mach32l.fs $(FORTH_GEN0) |
kernl32l.fi-: $(KERN_SRC) version.fs mach32l.fs $(FORTH_GEN0) |
| $(FORTHK) -p . -e 's" mach32l.fs"' main.fs -e "save-cross kernl32l.fi- $(bindir)/gforth-$(VERSION) bye" |
$(FORTHK) -e 's" mach32l.fs"' main.fs -e "save-cross kernl32l.fi- $(bindir)/gforth-$(VERSION) bye" |
| |
|
| kernl32b.fi-: $(KERN_SRC) version.fs mach32b.fs $(FORTH_GEN0) |
kernl32b.fi-: $(KERN_SRC) version.fs mach32b.fs $(FORTH_GEN0) |
| $(FORTHK) -p . -e 's" mach32b.fs"' main.fs -e "save-cross kernl32b.fi- $(bindir)/gforth-$(VERSION) bye" |
$(FORTHK) -e 's" mach32b.fs"' main.fs -e "save-cross kernl32b.fi- $(bindir)/gforth-$(VERSION) bye" |
| |
|
| kernl64l.fi-: $(KERN_SRC) version.fs mach64l.fs $(FORTH_GEN0) |
kernl64l.fi-: $(KERN_SRC) version.fs mach64l.fs $(FORTH_GEN0) |
| $(FORTHK) -p . -e 's" mach64l.fs"' main.fs -e "save-cross kernl64l.fi- $(bindir)/gforth-$(VERSION) bye" |
$(FORTHK) -e 's" mach64l.fs"' main.fs -e "save-cross kernl64l.fi- $(bindir)/gforth-$(VERSION) bye" |
| |
|
| kernl64b.fi-: $(KERN_SRC) version.fs mach64b.fs $(FORTH_GEN0) |
kernl64b.fi-: $(KERN_SRC) version.fs mach64b.fs $(FORTH_GEN0) |
| $(FORTHK) -p . -e 's" mach64b.fs"' main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye" |
$(FORTHK) -e 's" mach64b.fs"' main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye" |
| |
|
| kernl16b.fi: $(KERNLS) |
kernl16b.fi: $(KERNLS) |
| -$(CP) kernl16b.fi kernl16b.fi~ |
-$(CP) kernl16b.fi kernl16b.fi~ |
| @LINK_KERNL64L@ |
@LINK_KERNL64L@ |
| |
|
| gforth.fi: @kernel_fi@ gforth $(GFORTH_FI_SRC) |
gforth.fi: @kernel_fi@ gforth $(GFORTH_FI_SRC) |
| $(FORTHK) -p . startup.fs -e "savesystem gforth.fi bye" |
$(FORTHK) startup.fs -e "savesystem gforth.fi bye" |
| |
|
| gforth.TAGS: @kernel_fi@ gforth $(GFORTH_FI_SRC) primitives.TAGS |
gforth.TAGS: @kernel_fi@ gforth $(GFORTH_FI_SRC) primitives.TAGS |
| $(FORTHK) -p . etags.fs startup.fs -e bye |
$(FORTHK) etags.fs startup.fs -e bye |
| cat TAGS primitives.TAGS kernel.TAGS >gforth.TAGS |
cat TAGS primitives.TAGS kernel.TAGS >gforth.TAGS |
| |
|
| engine.s: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) config.h |
engine.s: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) config.h |
| $(GCC) $(CFLAGS) $(ENGINE_FLAGS) -S engine.c |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -S $(srcdir)/engine.c |
| |
|
| engine.o: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) config.h |
engine.o: engine.c primitives.i prim_labels.i machine.h threading.h $(INCLUDES) config.h |
| $(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c engine.c |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c $(srcdir)/engine.c |
| |
|
| main.o: main.c machine.h threading.h $(INCLUDES) config.h |
main.o: main.c machine.h threading.h $(INCLUDES) config.h |
| $(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c main.c |
$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c $(srcdir)/main.c |
| |
|
| strtoul.o: strtoul.c strtol.c |
strtoul.o: strtoul.c strtol.c |
| |
|
| m4 -s $(srcdir)/primitives >$@ |
m4 -s $(srcdir)/primitives >$@ |
| |
|
| primitives.i : primitives.b prims2x.fs |
primitives.i : primitives.b prims2x.fs |
| $(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye" >$@ |
$(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye" >$@ |
| |
|
| prim_labels.i : primitives.b prims2x.fs |
prim_labels.i : primitives.b prims2x.fs |
| $(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-label process-file bye" >$@ |
$(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-label process-file bye" >$@ |
| |
|
| aliases.fs: primitives.b prims2x.fs |
aliases.fs: primitives.b prims2x.fs |
| $(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-alias process-file bye" >$@ |
$(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-alias process-file bye" >$@ |
| |
|
| primitives.fs: primitives.b prims2x.fs |
primitives.fs: primitives.b prims2x.fs |
| $(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-forth process-file bye" >$@ |
$(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-forth process-file bye" >$@ |
| |
|
| primitives.TAGS: primitives.b prims2x.fs |
primitives.TAGS: primitives.b prims2x.fs |
| $(FORTHK) -p . prims2x.fs -e "s\" primitives.b\" ' output-tag process-file bye" >$@ |
$(FORTHK) prims2x.fs -e "s\" $(srcdir)/primitives.b\" ' output-tag process-file bye" >$@ |
| |
|
| doc.fd: makedoc.fs float.fs search-order.fs glocals.fs environ.fs \ |
doc.fd: makedoc.fs float.fs search-order.fs glocals.fs environ.fs \ |
| toolsext.fs wordinfo.fs \ |
toolsext.fs wordinfo.fs \ |
| vt100.fs colorize.fs see.fs bufio.fs debug.fs history.fs \ |
vt100.fs colorize.fs see.fs bufio.fs debug.fs history.fs \ |
| doskey.fs vt100key.fs startup.fs assert.fs debugging.fs code.fs |
doskey.fs vt100key.fs startup.fs assert.fs debugging.fs code.fs |
| $(FORTHK) -p . -e "s\" doc.fd\"" makedoc.fs startup.fs code.fs -e bye |
$(FORTHK) -e "s\" doc.fd\"" makedoc.fs startup.fs code.fs -e bye |
| |
|
| crossdoc.fd: $(KERN_SRC) version.fs $(FORTH_GEN0) |
crossdoc.fd: $(KERN_SRC) version.fs $(FORTH_GEN0) |
| $(FORTHK) -p . -e 's" mach32l.fs"' main.fs -e bye |
$(FORTHK) -e 's" mach32l.fs"' main.fs -e bye |
| |
|
| gforth.texi: gforth.ds primitives.b ds2texi.fs prims2x.fs doc.fd crossdoc.fd |
gforth.texi: gforth.ds primitives.b ds2texi.fs prims2x.fs doc.fd crossdoc.fd |
| $(FORTHK) -p . ds2texi.fs -e "s\" gforth.ds\" r/o open-file throw ds2texi bye" >$@ |
$(FORTHK) ds2texi.fs prims2x.fs -e "s\" $(srcdir)/primitives.b\" ' register-doc process-file" crossdoc.fd doc.fd -e "s\" $(srcdir)/gforth.ds\" r/o open-file throw ds2texi bye" >$@ |
| |
|
| checkdoc: gforth.ds primitives.b ds2texi.fs prims2x.fs doc.fd crossdoc.fd answords.fs |
checkdoc: gforth.ds primitives.b ds2texi.fs prims2x.fs doc.fd crossdoc.fd answords.fs |
| $(FORTHK) -p . ds2texi.fs answords.fs -e bye |
$(FORTHK) ds2texi.fs answords.fs -e bye |
| |
|
| |
dvi: gforth.dvi |
| |
|
| gforth.dvi gforth.fns: gforth.texi |
gforth.dvi gforth.fns: gforth.texi |
| $(TEXI2DVI) gforth.texi |
$(TEXI2DVI) $(srcdir)/gforth.texi |
| |
|
| gforth.ps: gforth.dvi |
gforth.ps: gforth.dvi |
| $(DVI2PS) gforth.dvi -o $@ |
$(DVI2PS) gforth.dvi -o $@ |
| |
|
| gforth.info*: gforth.texi |
info: gforth.info |
| |
|
| |
gforth.info: gforth.texi |
| -$(MAKEINFO) gforth.texi |
-$(MAKEINFO) gforth.texi |
| |
|
| html: gforth.texi |
html: gforth.texi |