| #Makefile for Gforth |
#Makefile for Gforth |
| |
|
| #Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc. |
#Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2009,2010,2011 Free Software Foundation, Inc. |
| |
|
| #This file is part of Gforth. |
#This file is part of Gforth. |
| |
|
| |
|
| EC = @EC@ |
EC = @EC@ |
| |
|
| |
# ------------ Install Directories |
| |
|
| |
package = |
| |
VPATH = @srcdir@ |
| |
prefix = @prefix@ |
| |
exec_prefix = @exec_prefix@ |
| |
srcdir = @srcdir@ |
| |
bindir = $(package)@bindir@ |
| |
#read-only architecture-independent files |
| |
datarootdir = $(package)@datarootdir@ |
| |
datadir = $(package)@datadir@ |
| |
#read-only architecture-dependent non-ascii files |
| |
libdir = $(package)@libdir@ |
| |
libccdir = $(subst $(DESTDIR),,$(libdir)/gforth/$(VERSION)/libcc-named/) |
| |
includedir = $(package)@includedir@ |
| |
infodir = $(package)@infodir@ |
| |
htmldir = $(package)@htmldir@ |
| |
mandir = $(package)@mandir@ |
| |
man1dir= $(mandir)/man1 |
| |
man1ext= .1 |
| |
#older emacses have their site-lisp in $(libdir)/emacs/ |
| |
emacssitelispdir=$(package)@lispdir@ |
| |
siteforthdir=$(datadir)/gforth/site-forth |
| |
|
| # ------------- Utility programs |
# ------------- Utility programs |
| |
|
| SHELL = /bin/sh |
SHELL = /bin/sh |
| LN_S = @LN_S@ |
LN_S = @LN_S@ |
| M4 = @M4@ |
M4 = @M4@ |
| GCC = @CC@ |
GCC = @CC@ |
| EMACS = emacs |
EMACS = @EMACS@ |
| LIBTOOL = @GNU_LIBTOOL@ |
LIBTOOL = @GNU_LIBTOOL@ |
| PREFORTH = ./preforth -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" |
PREFORTH = ./preforth -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" |
| CC = $(GCC) |
CC = $(GCC) |
| ENGINE_FAST = ./gforth-fast |
ENGINE_FAST = ./gforth-fast |
| FORTH_FAST = $(ENGINE_FAST) $(FORTH_ARGS) |
FORTH_FAST = $(ENGINE_FAST) $(FORTH_ARGS) |
| FORTHKFLAGS= --die-on-signal -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" -i $(kernel_fi) |
FORTHKFLAGS= --die-on-signal -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" -i $(kernel_fi) |
| FORTHK = $(ENGINE) $(FORTHKFLAGS) |
FORTHK = ./gforthker -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" |
| #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 |
| STACK_CACHE_REGS = @STACK_CACHE_REGS@ |
STACK_CACHE_REGS = @STACK_CACHE_REGS@ |
| STACK_CACHE_DEFAULT_FAST = @STACK_CACHE_DEFAULT_FAST@ |
STACK_CACHE_DEFAULT_FAST = @STACK_CACHE_DEFAULT_FAST@ |
| |
|
| # ------------ Install Directories |
|
| |
|
| VPATH = @srcdir@ |
|
| prefix = @prefix@ |
|
| exec_prefix = @exec_prefix@ |
|
| srcdir = @srcdir@ |
|
| bindir = @bindir@ |
|
| #read-only architecture-independent files |
|
| datarootdir = @datarootdir@ |
|
| datadir = @datadir@ |
|
| #read-only architecture-dependent non-ascii files |
|
| libdir = @libdir@ |
|
| libccdir = $(libdir)/gforth/$(VERSION)/libcc-named/ |
|
| includedir = @includedir@ |
|
| infodir = @infodir@ |
|
| htmldir = @htmldir@ |
|
| mandir = @mandir@ |
|
| man1dir= $(mandir)/man1 |
|
| man1ext= .1 |
|
| #older emacses have their site-lisp in $(libdir)/emacs/ |
|
| emacssitelispdir=@lispdir@ |
|
| siteforthdir=$(datadir)/gforth/site-forth |
|
| |
|
| PROFOBJS = @PROFOBJS@ |
PROFOBJS = @PROFOBJS@ |
| PROFEXES = @PROFEXES@ |
PROFEXES = @PROFEXES@ |
| |
|
| kernel/basics.fs \ |
kernel/basics.fs \ |
| kernel/int.fs \ |
kernel/int.fs \ |
| kernel/comp.fs \ |
kernel/comp.fs \ |
| |
kernel/recognizer.fs \ |
| kernel/io.fs \ |
kernel/io.fs \ |
| kernel/input.fs \ |
kernel/input.fs \ |
| kernel/license.fs \ |
kernel/license.fs \ |
| kernel/doers.fs \ |
kernel/doers.fs \ |
| kernel/getdoers.fs \ |
kernel/getdoers.fs \ |
| kernel/pass.fs \ |
kernel/pass.fs \ |
| kernel/xchars.fs |
kernel/xchars.fs \ |
| |
string.fs |
| |
|
| EC_SRC = \ |
EC_SRC = \ |
| asm/README \ |
asm/README \ |
| ec/nesting.fs \ |
ec/nesting.fs \ |
| build-ec.in |
build-ec.in |
| |
|
| GFORTH_FI_SRC = \ |
GFORTH_FI_SRC1=\ |
| assert.fs \ |
assert.fs \ |
| backtrac.fs \ |
backtrac.fs \ |
| blocked.fb \ |
blocked.fb \ |
| debugs.fs \ |
debugs.fs \ |
| dis-gdb.fs \ |
dis-gdb.fs \ |
| ekey.fs \ |
ekey.fs \ |
| envos.fs \ |
|
| |
GFORTH_FI_SRC2=\ |
| savesys.fs \ |
savesys.fs \ |
| environ.fs \ |
environ.fs \ |
| errors.fs \ |
errors.fs \ |
| simp-see.fs \ |
simp-see.fs \ |
| source.fs \ |
source.fs \ |
| startup.fs \ |
startup.fs \ |
| |
str-exec.fs \ |
| struct.fs \ |
struct.fs \ |
| struct0x.fs \ |
struct0x.fs \ |
| stuff.fs \ |
stuff.fs \ |
| arch/arm/testdisasm.fs arch/arm/testdisasm.out arch/arm/Makefile \ |
arch/arm/testdisasm.fs arch/arm/testdisasm.out arch/arm/Makefile \ |
| arch/mips/asm.fs arch/mips/disasm.fs arch/mips/insts.fs \ |
arch/mips/asm.fs arch/mips/disasm.fs arch/mips/insts.fs \ |
| arch/mips/testasm.fs arch/mips/testdisasm.fs \ |
arch/mips/testasm.fs arch/mips/testdisasm.fs \ |
| arch/power/asm.fs arch/power/disasm.fs arch/power/inst.fs |
arch/power/asm.fs arch/power/disasm.fs arch/power/inst.fs \ |
| |
arch/lm32/asm.fs arch/lm32/testasm.fs |
| |
|
| |
# execlude envos.fs into list of distributed sources |
| |
GFORTH_FI_DIST_SRC = \ |
| |
$(GFORTH_FI_SRC1) \ |
| |
$(GFORTH_FI_SRC2) |
| |
|
| LIBCC_SRC = cstr.fs unix/socket.fs |
GFORTH_FI_SRC = \ |
| |
$(GFORTH_FI_SRC1) \ |
| |
envos.fs \ |
| |
$(GFORTH_FI_SRC2) |
| |
|
| |
LIBCC_SRC = cstr.fs unix/socket.fs unix/pthread.fs |
| |
|
| LIBCC_DIST_SRC = libffi.fs fflib.fs $(LIBCC_SRC) |
LIBCC_DIST_SRC = libffi.fs fflib.fs $(LIBCC_SRC) |
| |
|
| LIBCC_BUILD_SRC = @LIBCC_BUILD_SRC@ $(LIBCC_SRC) |
LIBCC_BUILD_SRC = @LIBCC_BUILD_SRC@ $(LIBCC_SRC) |
| |
|
| FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) $(EC_SRC) $(LIBCC_DIST_SRC) \ |
|
| |
FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_DIST_SRC) $(EC_SRC) $(LIBCC_DIST_SRC) \ |
| ans-report.fs ansi.fs answords.fs \ |
ans-report.fs ansi.fs answords.fs \ |
| colorize.fs comp-i.fs complex.fs \ |
colorize.fs comp-i.fs complex.fs \ |
| depth-changes.fs dosekey.fs doskey.fs ds2texi.fs \ |
depth-changes.fs dosekey.fs doskey.fs ds2texi.fs \ |
| make-app.fs doc/makedoc.fs locate.fs more.fs onebench.fs \ |
make-app.fs doc/makedoc.fs locate.fs more.fs onebench.fs \ |
| other.fs prims2x.fs prims2x0.6.2.fs proxy.fs random.fs \ |
other.fs prims2x.fs prims2x0.6.2.fs proxy.fs random.fs \ |
| regexp.fs sokoban.fs string.fs table.fs tags.fs \ |
regexp.fs sokoban.fs string.fs table.fs tags.fs \ |
| tt.fs \ |
tt.fs quotations.fs \ |
| unbuffer.fs wordsets.fs xwords.fs \ |
unbuffer.fs wordsets.fs xwords.fs \ |
| test/tester.fs test/ttester.fs \ |
test/tester.fs test/ttester.fs \ |
| test/coretest.fs test/postpone.fs test/dbltest.fs \ |
test/coretest.fs test/postpone.fs test/dbltest.fs \ |
| arch/r8c/lauflicht.fs \ |
arch/r8c/lauflicht.fs \ |
| arch/r8c/tasker.fs \ |
arch/r8c/tasker.fs \ |
| arch/r8c/terminal.fs \ |
arch/r8c/terminal.fs \ |
| arch/sharc/unistd.h |
arch/sharc/unistd.h \ |
| |
arch/lm32/mach.fs \ |
| |
arch/lm32/mach.sh \ |
| |
arch/lm32/prim.fs \ |
| |
arch/lm32/Makefile \ |
| |
arch/lm32/testasm.disas-ok |
| |
|
| #not included in distribution until distribution terms are included: |
#not included in distribution until distribution terms are included: |
| ARCHS_NO_DIST = \ |
ARCHS_NO_DIST = \ |
| engine/makefile.dos engine/makefile.os2 |
engine/makefile.dos engine/makefile.os2 |
| |
|
| SOURCES = $(ENGINE_SOURCES) compat Makefile.in Makedist.in \ |
SOURCES = $(ENGINE_SOURCES) compat Makefile.in Makedist.in \ |
| gforthmi.in vmgen.in preforth.in gfgen README.vmgen NEWS.vmgen \ |
gforthmi.in vmgen.in preforth.in gforthker.in gfgen README.vmgen NEWS.vmgen \ |
| autogen.sh configure.in configure config.sub config.guess \ |
autogen.sh configure.in configure config.sub config.guess \ |
| elisp-comp missing stamp-h.in envos.fs.in \ |
elisp-comp missing stamp-h.in envos.fs.in \ |
| iss.sh install-sh INSTALL INSTALL.BINDIST NEWS README ToDo BUGS \ |
iss.sh install-sh INSTALL INSTALL.BINDIST NEWS README ToDo BUGS \ |
| |
|
| ENGINES_FAST = @NO_EC@ gforth-fast$(OPT)$(EC)$(EXE) #gforth-native$(OPT)$(EC)$(EXE) |
ENGINES_FAST = @NO_EC@ gforth-fast$(OPT)$(EC)$(EXE) #gforth-native$(OPT)$(EC)$(EXE) |
| |
|
| GEN = $(ENGINES) $(ENGINES_FAST) gforth.elc |
GEN = $(ENGINES) $(ENGINES_FAST) @gforth_elc@ |
| |
|
| # things that need a working forth system to be generated |
# things that need a working forth system to be generated |
| FORTH_GEN_ENGINE=engine/prim.i engine/prim_lab.i engine/prim_names.i \ |
FORTH_GEN_ENGINE=engine/prim.i engine/prim_lab.i engine/prim_names.i \ |
| engine/costs-fast.i engine/super2-fast.i |
engine/costs-fast.i engine/super2-fast.i |
| FORTH_GEN_PRIMB = $(FORTH_GEN_ENGINE) kernel/aliases.fs kernel/prim.fs |
FORTH_GEN_PRIMB = $(FORTH_GEN_ENGINE) kernel/aliases.fs kernel/prim.fs |
| FORTH_GEN0 = prim.b $(FORTH_GEN_PRIMB) |
FORTH_GEN0 = prim.b $(FORTH_GEN_PRIMB) |
| FORTH_GEN = $(FORTH_GEN0) @KERNEL@ @NO_EC@ gforth.fi |
FORTH_GEN = $(FORTH_GEN0) @KERNEL@ @NO_CROSS@ gforth.fi |
| # this is used for antidependences, |
# this is used for antidependences, |
| FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@ build-ec |
FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@ build-ec |
| |
|
| .SUFFIXES: |
.SUFFIXES: |
| .SUFFIXES: .c .o |
.SUFFIXES: .c .o |
| |
|
| all: kernel/version.fs more @NO_EC@ check |
all: kernel/version.fs more @NO_CROSS@ check |
| |
|
| # use this dependency for phony targets just as mostlyclean,... |
# use this dependency for phony targets just as mostlyclean,... |
| FORCE: ; |
FORCE: ; |
| binonlydist: Makedist FORCE |
binonlydist: Makedist FORCE |
| $(MAKE) -f Makedist d$@ |
$(MAKE) -f Makedist d$@ |
| |
|
| |
debdist: Makedist FORCE |
| |
$(MAKE) -f Makedist d$@ |
| |
|
| #HPUX make breaks the cycle differently when the dates are equal, so |
#HPUX make breaks the cycle differently when the dates are equal, so |
| # touch some of the files if it acts up |
# touch some of the files if it acts up |
| hpux-workaround: |
hpux-workaround: |
| (cd $(DESTDIR)$(bindir) && $(LN_S) vmgen-$(VERSION) vmgen) |
(cd $(DESTDIR)$(bindir) && $(LN_S) vmgen-$(VERSION) vmgen) |
| -$(INSTALL_DATA) $(srcdir)/doc/gforth.1 $(DESTDIR)$(man1dir) |
-$(INSTALL_DATA) $(srcdir)/doc/gforth.1 $(DESTDIR)$(man1dir) |
| -for i in $(srcdir)/doc/gforth.info* $(srcdir)/doc/vmgen.info*; do $(INSTALL_DATA) $$i $(DESTDIR)$(infodir); done |
-for i in $(srcdir)/doc/gforth.info* $(srcdir)/doc/vmgen.info*; do $(INSTALL_DATA) $$i $(DESTDIR)$(infodir); done |
| for i in $(FORTH_SRC) $(COMPAT) prim; do \ |
for i in $(FORTH_SRC) $(COMPAT) envos.fs prim; do \ |
| $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(datadir)/gforth/$(VERSION)/$$i; \ |
$(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(datadir)/gforth/$(VERSION)/$$i; \ |
| done |
done |
| $(INSTALL_DATA) $(kernel_fi) $(DESTDIR)$(datadir)/gforth/$(VERSION) |
$(INSTALL_DATA) $(kernel_fi) $(DESTDIR)$(libdir)/gforth/$(VERSION) |
| @if test -d "$(DESTDIR)$(emacssitelispdir)"; then \ |
@if test -d "$(DESTDIR)$(emacssitelispdir)"; then \ |
| $(INSTALL_DATA) gforth.el $(DESTDIR)$(emacssitelispdir); \ |
for i in gforth.el @gforth_elc@; do \ |
| $(INSTALL_DATA) gforth.elc $(DESTDIR)$(emacssitelispdir); \ |
$(INSTALL_DATA) $$i $(DESTDIR)$(emacssitelispdir); \ |
| |
done; \ |
| else \ |
else \ |
| echo '>>>>>Please install gforth.{el,elc} in your .../emacs/site-lisp directory'; \ |
echo '>>>>>Please install gforth.{el,elc} in your .../emacs/site-lisp directory'; \ |
| fi |
fi |
| |
|
| build-libcc-named: $(LIBCC_BUILD_SRC) $(FORTH_GEN) $(GEN) FORCE |
build-libcc-named: $(LIBCC_BUILD_SRC) $(FORTH_GEN) $(GEN) FORCE |
| $(RMTREE) lib/gforth/$(VERSION)/libcc-named/ |
$(RMTREE) lib/gforth/$(VERSION)/libcc-named/ |
| for i in $(LIBCC_BUILD_SRC); do ./gforth -e "s\" `pwd`/lib/gforth/$(VERSION)/libcc-named/\" libcc-named-dir-v 2! libcc-path clear-path libcc-named-dir libcc-path also-path :noname 2drop s\" $(libccdir)\" ; is replace-rpath" $(srcdir)/$$i -e bye; done |
for i in $(LIBCC_BUILD_SRC); do ./gforth -e "s\" `pwd`/lib/gforth/$(VERSION)/libcc-named/\" libcc-named-dir-v 2! libcc-path clear-path libcc-named-dir libcc-path also-path :noname 2drop s\" $(DESTDIR)$(libccdir)\" ; is replace-rpath" $(srcdir)/$$i -e bye; done |
| |
|
| check: gforths gforth.fi |
check: gforths gforth.fi |
| $(MAKE) checkone check-nofast ENGINE="./gforth --no-dynamic" >/dev/null 2>&1 |
$(MAKE) checkone check-nofast ENGINE="./gforth --no-dynamic" >/dev/null 2>&1 |
| ./gforth-fast --diag -e bye |
./gforth-fast --diag -e bye |
| |
|
| checkone test: gforth.fi engine/prim-s.i |
checkone test: gforth.fi engine/prim-s.i |
| $(FORTH) test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs test/string.fs test/float.fs test/deferred.fs test/coreext.fs test/search.fs -e bye 2>&1 | 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/deferred.fs test/coreext.fs test/search.fs -e bye 2>/dev/null | 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 |
| $(FORTHS) test/coremore.fs test/gforth.fs test/macros.fs -e bye 2>&1 | tr -d '\015' | diff -c - $(srcdir)/test/gforth.out |
$(FORTHS) test/coremore.fs test/gforth.fs test/macros.fs -e bye 2>&1 | tr -d '\015' | diff -c - $(srcdir)/test/gforth.out |
| $(CP) engine/$@ $@ && \ |
$(CP) engine/$@ $@ && \ |
| $(MASSAGE_EXE) $@; \ |
$(MASSAGE_EXE) $@; \ |
| @GFORTH_EXE@; \ |
@GFORTH_EXE@; \ |
| @NO_EC@ $(MAKE) checkone check-nofast ENGINE=./engine/$@; \ |
@NO_CROSS@ $(MAKE) checkone check-nofast ENGINE=./engine/$@; \ |
| fi |
fi |
| |
|
| optgforth: |
optgforth: |
| $(CP) engine/$@ $@ && \ |
$(CP) engine/$@ $@ && \ |
| $(MASSAGE_EXE) $@; \ |
$(MASSAGE_EXE) $@; \ |
| @GFORTHFAST_EXE@; \ |
@GFORTHFAST_EXE@; \ |
| @NO_EC@ $(MAKE) checkone ENGINE=./engine/$@; \ |
@NO_CROSS@ $(MAKE) checkone ENGINE=./engine/$@; \ |
| fi |
fi |
| |
|
| optgforth-fast: |
optgforth-fast: |
| $(CP) gforth.tags $@ |
$(CP) gforth.tags $@ |
| |
|
| install.TAGS: TAGS install-tags.fs |
install.TAGS: TAGS install-tags.fs |
| sed 's;^\$(srcdir)/;;' TAGS|./gforth -e 's" '$(datadir)/gforth/$(VERSION)/'"' $(srcdir)/install-tags.fs -e bye >install.TAGS |
sed 's;^\$(srcdir)/;;' TAGS|$(PREFORTH) -e 's" '$(datadir)/gforth/$(VERSION)/'"' $(srcdir)/install-tags.fs -e bye >install.TAGS |
| |
|
| gforth.TAGS: @kernel_fi@ gforth$(EC)$(EXE) $(GFORTH_FI_SRC) prim.TAGS kernel.TAGS |
gforth.TAGS: @kernel_fi@ gforth$(EC)$(EXE) $(GFORTH_FI_SRC) prim.TAGS kernel.TAGS |
| $(FORTHK) etags.fs except.fs startup.fs -e bye |
$(FORTHK) etags.fs except.fs startup.fs -e bye |