File:  [gforth] / gforth / Makefile.in
Revision 1.294: download - view: text, annotated - select for diffs
Sun Jan 25 12:35:57 2004 UTC (16 years, 1 month ago) by anton
Branches: MAIN
CVS tags: HEAD
minore bugfixes (Makefile.in)
enabled 3-state stack caching for gforth-fast and gforth-native
   bugfixes (EXECUTE and PERFORM; spbREG use)
   explicit register allocation to spb for gforth-native, but not gforth-fast
   Due to the shortest-path algorithm this means that gforth-fast uses only
     S0 and S1, not S2, so we could keep that.
     However, we probably want to use more states etc. for other
     architectures, so we may want to have a way to select different
       cache.vmg and different peeprules.vmg files for different
       archs, builds, and binaries.

    1: #Makefile for Gforth
    2: 
    3: #Copyright (C) 1995,1996,1997,1998,2000,2003 Free Software Foundation, Inc.
    4: 
    5: #This file is part of Gforth.
    6: 
    7: #Gforth is free software; you can redistribute it and/or
    8: #modify it under the terms of the GNU General Public License
    9: #as published by the Free Software Foundation; either version 2
   10: #of the License, or (at your option) any later version.
   11: 
   12: #This program is distributed in the hope that it will be useful,
   13: #but WITHOUT ANY WARRANTY; without even the implied warranty of
   14: #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.#See the
   15: #GNU General Public License for more details.
   16: 
   17: #You should have received a copy of the GNU General Public License
   18: #along with this program; if not, write to the Free Software
   19: #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   20: 
   21: # To change the values of `make' variables: instead of editing Makefiles,
   22: # (1) if the variable is set in `config.status', edit `config.status'
   23: #     (which will cause the Makefiles to be regenerated when you run `make');
   24: # (2) otherwise, pass the desired values on the `make' command line.
   25: 
   26: # Warning:
   27: # For some stupid reason setting SHELL to bash does not work properly with
   28: # DOS. If you want to use shell-specific things that must run with DOS make
   29: # an external batch file and call it with bash (see versions.bsh).
   30: 
   31: # ------------- gforth version
   32: 
   33: VERSION	= @PACKAGE_VERSION@
   34: DOSVERSION=`echo $(VERSION)|sed 's/\.//g'|sed 's/-.*//g'`
   35: 
   36: # -------------	System specific variables	
   37: 
   38: machine=@machine@
   39: kernel_fi=@kernel_fi@
   40: EXE=@EXEEXT@
   41: 
   42: # this is the type of machine
   43: # used to extend the include path with ./arch/$machine
   44: # so we can include a machine specific 
   45: # machine.h file
   46: 
   47: PATHSEP = @PATHSEP@
   48: 
   49: osclass = @OSCLASS@
   50: 
   51: # -------------	Utility programs
   52: 
   53: SHELL	= /bin/sh
   54: RM	= rm
   55: RMTREE	= rm -rf
   56: CP	= cp -p
   57: MV	= mv
   58: TAR	= tar cf -
   59: INSTALL	= @INSTALL@
   60: INSTALL_PROGRAM = @INSTALL_PROGRAM@ -s
   61: INSTALL_SCRIPT = @INSTALL_SCRIPT@
   62: INSTALL_DATA = @INSTALL_DATA@
   63: INSTALL_INFO = @INSTALL_INFO@
   64: LN_S	= @LN_S@
   65: GCC	= @CC@
   66: CC	= $(GCC)
   67: FORTHPATH = .$(PATHSEP)$(libdir)/gforth/site-forth$(PATHSEP)$(siteforthdir)$(PATHSEP)$(libdir)/gforth/$(VERSION)$(PATHSEP)$(datadir)/gforth/$(VERSION)
   68: FORTHSIZES = @FORTHSIZES@
   69: FORTHS_ARGS =  -p "$(FORTHPATH)$(PATHSEP)$(srcdir)"
   70: FORTH_ARGS = --die-on-signal $(FORTHS_ARGS)
   71: ENGINE = ./gforth
   72: FORTH	= $(ENGINE) $(FORTH_ARGS)
   73: FORTHS	= $(ENGINE) $(FORTHS_ARGS)
   74: # the (existing) forth system to use for cross compiling and primitives tables
   75: # per default we use the one in this directory for a rebuild. It is also
   76: # possible to override this variable at the command line for an initial build (jaw)
   77: BUILDFORTH = $(ENGINE) --die-on-signal -m 4M -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" -i $(kernel_fi)
   78: # the forth system plus flags we use to build
   79: FORTHB = $(BUILDFORTH) exboot.fs -e 'fpath= .|~+|$(srcdir)'
   80: # the Forth system for running prims2x.fs
   81: FORTHP = $(FORTH)
   82: ENGINE_FAST = $(ENGINE)-fast
   83: FORTH_FAST	= $(ENGINE_FAST) $(FORTH_ARGS)
   84: FORTHKFLAGS= --die-on-signal -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" -i $(kernel_fi)
   85: FORTHK	= $(ENGINE) $(FORTHKFLAGS)
   86: #FORTHP	= $(ENGINE) --die-on-signal -i ./$(kernel_fi)
   87: #the "-2 image-included-files +!" undoes the change to image-included-files
   88: # in exboot.fs
   89: STARTUP	= exboot.fs startup.fs @asm_fs@ @disasm_fs@
   90: STRIP	= strip
   91: TEXI2DVI = texi2dvi -e
   92: TEXI2PDF = texi2dvi --pdf -e
   93: DVI2PS	= dvips -t letterSize -Z
   94: #you can get texi2html from http://wwwcn.cern.ch/dci/texi2html/
   95: MAKEINFO = makeinfo
   96: TEXI2HTML = texi2html
   97: 
   98: # -------------	Compiler Flags
   99: 
  100: XCFLAGS	= @CFLAGS@
  101: XDEFINES = @DEFS@
  102: SWITCHES = $(XCFLAGS) $(XDEFINES) #-DNDEBUG #turn off assertions
  103: ENGINE_FLAGS = @ENGINE_FLAGS@ -fno-defer-pop -fcaller-saves
  104: DEBUGFLAG = @DEBUGFLAG@
  105: CFLAGS	= $(DEBUGFLAG) -I$(srcdir)/engine -I$(srcdir)/arch/$(machine) -O3 -Wall $(SWITCHES) -DDEFAULTPATH='"$(FORTHPATH)"'
  106: 
  107: #John Wavrik should use -Xlinker -N to get a writable text (executable)
  108: XLDFLAGS = @LDFLAGS@
  109: LDFLAGS	=  $(DEBUGFLAG) $(XLDFLAGS)
  110: LDLIBS	= @LIBS@
  111: 
  112: # ------------	Install Directorys
  113: 
  114: VPATH = @srcdir@
  115: prefix = @prefix@
  116: exec_prefix = @exec_prefix@
  117: srcdir = @srcdir@
  118: bindir = $(exec_prefix)/bin
  119: #read-only architecture-independent files
  120: datadir = $(prefix)/share
  121: #read-only architecture-dependent non-ascii files
  122: libdir = $(prefix)/lib
  123: infodir = $(prefix)/info
  124: mandir = $(prefix)/man
  125: man1dir= $(mandir)/man1
  126: man1ext= .1
  127: #older emacses have their site-lisp in $(libdir)/emacs/
  128: emacssitelispdir=@lispdir@
  129: siteforthdir=$(datadir)/gforth/site-forth
  130: 
  131: PROFOBJS = @PROFOBJS@
  132: PROFEXES = @PROFEXES@
  133: 
  134: CVSDIRS = CVS engine/CVS kernel/CVS doc/CVS asm/CVS ec/CVS test/CVS \
  135: 	compat/CVS unix/CVS \
  136: 	arch/CVS arch/generic/CVS arch/m68k/CVS arch/mips/CVS \
  137: 	arch/386/CVS arch/hppa/CVS arch/sparc/CVS arch/power/CVS \
  138: 	arch/alpha/CVS arch/4stack/CVS arch/misc/CVS arch/6502/CVS \
  139: 	arch/8086/CVS arch/avr/CVS arch/c165/CVS arch/h8/CVS \
  140: 	arch/shboom/CVS arch/sharc/CVS arch/ia64/CVS arch/amd64/CVS \
  141: 	arch/arm/CVS
  142: 
  143: INCLUDES = engine/forth.h engine/threaded.h engine/io.h
  144: 
  145: KERN_SRC = \
  146: 	mach16b.fs mach16l.fs mach32b.fs mach32l.fs mach64b.fs mach64l.fs \
  147: 	machpc.fs.in \
  148: 	kernel/aliases0.fs \
  149: 	kernel/aliases.fs \
  150: 	kernel/args.fs \
  151: 	chains.fs \
  152: 	kernel/cbr.fs \
  153: 	kernel/cloop.fs \
  154: 	kernel/cond.fs \
  155: 	kernel/cond-old.fs \
  156: 	cross.fs \
  157: 	kernel/errore.fs \
  158: 	kernel/files.fs \
  159: 	kernel/require.fs \
  160: 	kernel/paths.fs \
  161: 	kernel/kernel.fs \
  162: 	kernel/main.fs \
  163: 	kernel/prim0.fs \
  164: 	search.fs \
  165: 	kernel/quotes.fs \
  166: 	kernel/tools.fs \
  167: 	kernel/toolsext.fs \
  168: 	kernel/vars.fs \
  169: 	kernel/accept.fs \
  170: 	kernel/basics.fs \
  171: 	kernel/int.fs \
  172: 	kernel/comp.fs \
  173: 	kernel/io.fs \
  174: 	kernel/input.fs \
  175: 	kernel/license.fs \
  176: 	kernel/nio.fs \
  177: 	kernel/saccept.fs \
  178: 	kernel/doers.fs \
  179: 	kernel/getdoers.fs \
  180: 	kernel/pass.fs
  181: 
  182: EC_SRC = \
  183: 	asm/README \
  184: 	asm/bitmask.fs \
  185: 	asm/numref.fs \
  186: 	asm/basic.fs \
  187: 	asm/generic.fs \
  188: 	asm/target.fs \
  189: 	ec/README \
  190: 	ec/mirror.fs \
  191: 	ec/shex.fs \
  192: 	ec/builttag.fs \
  193: 	ec/dotx.fs \
  194: 	ec/nesting.fs
  195: 
  196: GFORTH_FI_SRC = \
  197: 	assert.fs \
  198: 	backtrac.fs \
  199: 	blocked.fb \
  200: 	blocks.fs \
  201: 	bufio.fs \
  202: 	code.fs \
  203: 	debug.fs \
  204: 	debugs.fs \
  205: 	ekey.fs \
  206: 	savesys.fs \
  207: 	environ.fs \
  208: 	errors.fs \
  209: 	exboot.fs \
  210: 	except.fs \
  211: 	extend.fs \
  212: 	float.fs \
  213: 	glocals.fs \
  214: 	hash.fs \
  215: 	history.fs \
  216: 	intcomp.fs \
  217: 	locals.fs \
  218: 	look.fs \
  219: 	quotes.fs \
  220: 	search.fs \
  221: 	see.fs \
  222: 	see-ext.fs \
  223: 	simp-see.fs \
  224: 	source.fs \
  225: 	startup.fs \
  226: 	struct.fs \
  227: 	stuff.fs \
  228: 	tasker.fs \
  229: 	termsize.fs \
  230: 	vt100.fs \
  231: 	vt100key.fs \
  232: 	wordinfo.fs \
  233: 	arch/386/asm.fs arch/386/disasm.fs \
  234: 	arch/alpha/asm.fs arch/alpha/disasm.fs \
  235: 	arch/mips/asm.fs arch/mips/disasm.fs arch/mips/insts.fs
  236: 
  237: FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) $(EC_SRC) \
  238: 	ans-report.fs ansi.fs answords.fs \
  239: 	colorize.fs comp-i.fs \
  240: 	dosekey.fs doskey.fs ds2texi.fs \
  241: 	envos.fs envos.dos envos.os2 etags.fs filedump.fs fi2c.fs \
  242: 	glosgen.fs gray.fs httpd.fs proxy.fs \
  243: 	make-app.fs doc/makedoc.fs \
  244: 	locate.fs more.fs other.fs prims2x.fs random.fs \
  245: 	sokoban.fs string.fs table.fs tags.fs \
  246: 	tt.fs \
  247: 	unbuffer.fs wordsets.fs \
  248: 	test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs \
  249: 	test/string.fs test/float.fs test/gforth.fs \
  250: 	test/other.fs test/signals.fs test/checkans.fs \
  251: 	test/primtest.fs \
  252: 	bubble.fs siev.fs matrix.fs fib.fs \
  253: 	oof.fs oofsampl.fs objects.fs objexamp.fs mini-oof.fs moof-exm.fs \
  254: 	moofglos.fs fixpath.fs \
  255: 	add.fs lib.fs oldlib.fs fflib.fs sieve.fs unix/socket.fs
  256: 
  257: COMPAT = compat/README \
  258: 	compat/anslocal.fs \
  259: 	compat/assert.fs \
  260: 	compat/control.fs \
  261: 	compat/defer.fs \
  262: 	compat/exception.fs \
  263: 	compat/loops.fs \
  264: 	compat/required.fs \
  265: 	compat/strcomp.fs \
  266: 	compat/struct.fs \
  267: 	compat/vocabulary.fs
  268: 
  269: GFORTH_TEXI =  doc/gforth.texi doc/version.texi
  270: 
  271: VMGEN_TEXI = doc/vmgen.texi doc/version.texi doc/fdl.texi
  272: 
  273: ALLSUBDIRS = engine
  274: 
  275: ARCHS =	\
  276: 	arch/generic/machine.h \
  277: 	arch/m68k/machine.h \
  278: 	arch/mips/machine.h \
  279: 	arch/386/machine.h \
  280: 	arch/hppa/machine.h \
  281: 	arch/hppa/cache.c \
  282: 	arch/sparc/machine.h \
  283: 	arch/power/machine.h \
  284: 	arch/power/_sync_cache_range.c \
  285: 	arch/alpha/machine.h \
  286: 	arch/arm/machine.h \
  287: 	arch/ia64/machine.h \
  288: 	arch/ia64/flush_icache_block.c \
  289: 	arch/amd64/machine.h \
  290: 	arch/4stack/README \
  291: 	arch/4stack/asm.fs \
  292: 	arch/4stack/mach.fs \
  293: 	arch/4stack/prim.fs \
  294: 	arch/4stack/mach.sh \
  295: 	arch/4stack/relocate.fs \
  296: 	arch/misc/README \
  297: 	arch/misc/asm.fs \
  298: 	arch/misc/mach.fs \
  299: 	arch/misc/optcmove.fs \
  300: 	arch/misc/prim.fs \
  301: 	arch/misc/sim.fs \
  302: 	arch/misc/sokoban.fs \
  303: 	arch/misc/tt.fs \
  304: 	arch/6502/asm.fs \
  305: 	arch/6502/prim.fs \
  306: 	arch/6502/mach.fs \
  307: 	arch/6502/zero.fs \
  308: 	arch/6502/softuart.fs \
  309: 	arch/6502/cold.fs \
  310: 	arch/8086/asm.fs \
  311: 	arch/8086/mach.fs \
  312: 	arch/8086/mach.sh \
  313: 	arch/8086/prim.fs \
  314: 	arch/avr/asm.fs \
  315: 	arch/c165/asm.fs \
  316: 	arch/c165/mach.fs \
  317: 	arch/c165/prim.fs \
  318: 	arch/h8/asm.fs \
  319: 	arch/shboom/asm.fs \
  320: 	arch/shboom/compiler.fs \
  321: 	arch/shboom/dis.fs \
  322: 	arch/shboom/mach.fs \
  323: 	arch/shboom/prim.fs \
  324: 	arch/shboom/dis2.fs \
  325: 	arch/shboom/sh.p \
  326: 	arch/shboom/doers.fs \
  327: 	arch/sharc/mach.fs \
  328: 	arch/sharc/machine.h \
  329: 	arch/sharc/compile.sharc \
  330: 	arch/sharc/unistd.h \
  331: 	arch/sharc/systypes.h \
  332: 	arch/sharc/types.h \
  333: 	arch/sharc/g21k-3.3.4-bp1.diff
  334: 
  335: VMGEN_EX = vmgen-ex/CVS vmgen-ex/Makefile vmgen-ex/README vmgen-ex/disasm.c \
  336: 	vmgen-ex/engine.c vmgen-ex/fib.mini \
  337: 	vmgen-ex/mini-inst.vmg vmgen-ex/mini-super.vmg vmgen-ex/mini.h \
  338: 	vmgen-ex/mini.l vmgen-ex/mini.y vmgen-ex/peephole-blacklist \
  339: 	vmgen-ex/peephole.c vmgen-ex/profile.c vmgen-ex/seq2rule.awk \
  340: 	vmgen-ex/simple.mini vmgen-ex/stat.awk vmgen-ex/support.c \
  341: 	vmgen-ex/test.mini vmgen-ex/test.out
  342: 
  343: VMGEN_EX2 = $(VMGEN_EX:vmgen-ex/%=vmgen-ex2/%)
  344: 
  345: SOURCES	= $(CVSDIRS) compat Makefile.in Makedist.in engine/Makefile.in \
  346: 	gforthmi.in vmgen.in gfgen README.vmgen NEWS.vmgen \
  347: 	configure.in configure config.sub config.guess elisp-comp missing \
  348: 	engine/config.h.in stamp-h.in \
  349: 	iss.sh install-sh INSTALL INSTALL.BINDIST NEWS README ToDo BUGS \
  350: 	BUILD-FROM-SCRATCH model \
  351: 	COPYING COPYING.DOC AUTHORS ChangeLog Benchres aclocal.m4 \
  352: 	doc/gforth.ds doc/texinfo.tex doc/gforth.1 doc/version.texi.in \
  353: 	doc/vmgen.texi doc/fdl.texi doc/gpl.texi \
  354: 	gforth.el \
  355: 	prim cache0.vmg cache1.vmg peeprules.vmg \
  356: 	engine/engine.c engine/main.c \
  357: 	engine/io.c engine/support.c engine/signals.c \
  358: 	$(ARCHS) \
  359: 	engine/profile.c \
  360: 	engine/getopt.c engine/getopt1.c engine/getopt.h engine/select.c \
  361: 	engine/ecvt.c engine/memcmp.c engine/rint.c \
  362: 	engine/strtol.c engine/strtoul.c \
  363: 	engine/ansidecl.h engine/memmove.c \
  364: 	engine/pow10.c engine/atanh.c engine/cleanalign.c \
  365: 	engine/strerror.c engine/strsignal.c engine/dblsub.c \
  366: 	engine/fnmatch.h engine/fnmatch.c \
  367: 	INSTALL.DOS makefile.dos engine/makefile.dos mkdosmf.sed config.bat \
  368: 	dosconf.h gforthmi.bat mkinstalldirs siteinit.fs \
  369: 	versions.bsh \
  370: 	configure.cmd mkos2mf.sed os2conf.h makefile.os2 engine/makefile.os2 \
  371: 	gforthmi.cmd glosgen.glo doc/glossaries.doc \
  372: 	$(INCLUDES) $(FORTH_SRC) $(COMPAT) $(VMGEN_EX) $(VMGEN_EX2) \
  373: 	timings.sc \
  374: 	test/coretest.out test/checkans.out
  375: 
  376: RCS_FILES =  ToDo model high-level
  377: 
  378: ENGINES = gforth$(EXE) gforth-ditc$(EXE) gforth-itc$(EXE) $(PROFEXES)
  379: 
  380: ENGINES_FAST = gforth-fast$(EXE) gforth-native$(EXE) 
  381: 
  382: GEN = $(ENGINES) $(ENGINES_FAST) kernel/version.fs
  383: 
  384: # things that need a working forth system to be generated
  385: FORTH_GEN_ENGINE=engine/prim.i engine/prim_lab.i engine/prim_names.i \
  386: 	engine/prim_superend.i engine/profile.i \
  387: 	engine/prim_num.i engine/prim_grp.i \
  388: 	engine/costs.i engine/super2.i
  389: FORTH_GEN_ENGINE_FAST= \
  390: 	engine/prim-fast.i engine/prim_lab-fast.i engine/prim_names-fast.i \
  391: 	engine/prim_superend-fast.i engine/profile-fast.i \
  392: 	engine/prim_num-fast.i engine/prim_grp-fast.i \
  393: 	engine/costs-fast.i engine/super2-fast.i
  394: FORTH_GEN_PRIMB = $(FORTH_GEN_ENGINE) kernel/aliases.fs kernel/prim.fs
  395: FORTH_GEN0 = prim.b $(FORTH_GEN_PRIMB)
  396: FORTH_GEN =  $(FORTH_GEN0) @KERNEL@ gforth.fi
  397: # this is used for antidependences,
  398: FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@ 
  399: 
  400: #kernel dependencies
  401: KERN_DEPS = $(KERN_SRC) kernel/version.fs machpc.fs $(FORTH_GEN0) compat/strcomp.fs
  402: 
  403: #distributed documentation
  404: DOCDIST = doc/gforth.info doc/gforth.info-* doc/gforth.ps \
  405: 	  doc/vmgen.info doc/vmgen.info-* doc/vmgen.ps
  406: 
  407: KERNLS = kernl16b.fi- kernl16l.fi- \
  408: 	 kernl32b.fi- kernl32l.fi- \
  409: 	 kernl64b.fi- kernl64l.fi-
  410: 
  411: GEN_PRECIOUS = $(FORTH_GEN) $(KERNLS) \
  412: 	doc/gforth.texi doc/gforth.dvi doc/gforth.ps \
  413: 	doc/vmgen.dvi doc/vmgen.ps \
  414: 	Makefile Makedist engine/Makefile configure
  415: 
  416: #standards.info recommends this:
  417: .SUFFIXES:
  418: .SUFFIXES: .c .o
  419: 
  420: 
  421: all:	kernel/version.fs more
  422: 
  423: # use this dependency for phony targets just as mostlyclean,...
  424: FORCE: ;
  425: 
  426: #this rule avoids remaking everything after minor changes in Makefile.in
  427: version:	Makefile.in configure.in
  428: 		if test -r $@ && test x'$(VERSION)' = x`cat $@` ; then true ; else echo $(VERSION) > $@ ; fi
  429: 
  430: # With dos we use normal dos echo
  431: # we cannot pipe the output to engine/version.h directly because
  432: # of the "/ and \" problem. Copying works because we use the
  433: # shell und file utilities.
  434: 
  435: kernel/version.fs:	version
  436: 	$(MAKE) gforth$(EXE)
  437: 	echo ": version-string s\" $(VERSION)\" ;" > kernel/version.fs
  438: 
  439: more:	engines $(FORTH_GEN) $(GEN)
  440: 
  441: #from the gcc Makefile: 
  442: #"Deletion of files made during compilation.
  443: # There are four levels of this:
  444: #   `mostlyclean', `clean', `distclean' and `realclean'.
  445: # `mostlyclean' is useful while working on a particular type of machine.
  446: # It deletes most, but not all, of the files made by compilation.
  447: # It does not delete libgcc.a or its parts, so it won't have to be recompiled.
  448: # `clean' deletes everything made by running `make all'.
  449: # `distclean' also deletes the files made by config.
  450: # `realclean' also deletes everything that could be regenerated automatically."
  451: 
  452: mostlyclean:	FORCE
  453: 		-$(RM) -rf engine/*.s gforth.fi *.fi~ *.fi- kernel/version.fs \
  454: 		*TAGS gforth~ \
  455: 		doc/crossdoc.fd doc/doc.fd doc/gforth.texi doc/gforth.fns \
  456: 		doc/gforth.aux doc/gforth.cp doc/gforth.cps \
  457: 		doc/gforth.dvi doc/gforth.fn doc/gforth.ky doc/gforth.log \
  458: 		doc/gforth.pg \
  459: 		doc/gforth.toc doc/gforth.tp doc/gforth.vr html \
  460: 		gforth-$(VERSION).tar.gz
  461: 
  462: # Just the stuff needed to rebuild the documentation nac03feb1999
  463: docclean:	FORCE
  464: 		-$(RM) -rf doc/crossdoc.fd doc/doc.fd doc/gforth.texi doc/gforth.fns \
  465: 		doc/gforth.aux doc/gforth.cp doc/gforth.cps \
  466: 		doc/gforth.dvi doc/gforth.fn doc/gforth.ky doc/gforth.log \
  467: 		doc/gforth.pg \
  468: 		doc/gforth.toc doc/gforth.tp doc/gforth.vr html
  469: 
  470: clean:		mostlyclean
  471: 		-$(RM) -rf $(GEN) *.o engine/*.o arch/*/*.o version \
  472: 		engine/gforth$(EXE) engine/gforth-fast$(EXE) \
  473:                 engine/gforth-native$(EXE) engine/gforth-itc$(EXE) \
  474: 		engine/gforth-ditc$(EXE) engine/gforth-prof$(EXE)
  475: 
  476: distclean:	clean
  477: 		-$(RM) -rf config.cache config.log config.status \
  478: 		engine/config.h Makefile Makedist engine/Makefile \
  479: 		stamp-h engine/stamp-h \
  480: 		doc/version.texi gforthmi vmgen
  481: 
  482: #realclean is useless, but dangerous, so it's commented out
  483: realclean:	distclean
  484: 		-$(RM) $(GEN_PRECIOUS)
  485: 
  486: #mostlyclean, but also remove some of the stuff that is distributed
  487: virtualclean:	mostlyclean
  488: 		-$(RM) -rf gforth.fns gforth.texi gforth.ps gforth.info* \
  489: 		gforth-$(VERSION).tar.gz config.cache *~ */*~
  490: 
  491: #Some makes (Ultrix, SunOS, IRIX) are so broken, they cannot read the
  492: #Makefile if it contains our dist rules.  Therefore we have put these
  493: #rules in Makedist (you can use them with GNU make on these systems).
  494: 
  495: dist:		Makedist machpc.fs FORCE
  496: 		-sed -e 's/@[^ ]*CALLFLAG@/false/g' -e 's/@[P]EEPHOLEFLAG@/true/g' <machpc.fs.in >machpc.fs
  497: 		$(MAKE) -f Makedist d$@
  498: 		-$(RM) machpc.fs
  499: 
  500: dosdist:	Makedist machpc.fs FORCE
  501: 		-sed -e 's/@[^ ]*CALLFLAG@/false/g' -e 's/@[P]EEPHOLEFLAG@/true/g' <machpc.fs.in >machpc.fs
  502: 		$(MAKE) -f Makedist d$@
  503: 		-$(RM) machpc.fs
  504: 
  505: srcdist:	Makedist FORCE
  506: 		$(MAKE) -f Makedist d$@
  507: 
  508: srconlydist:	Makedist FORCE
  509: 		$(MAKE) -f Makedist d$@
  510: 
  511: docdist:	Makedist FORCE
  512: 		$(MAKE) -f Makedist d$@
  513: 
  514: htmldist:	Makedist FORCE
  515: 		$(MAKE) -f Makedist d$@
  516: 
  517: bindist:	Makedist machpc.fs FORCE
  518: 		-sed -e 's/@[^ ]*CALLFLAG@/false/g' -e 's/@[P]EEPHOLEFLAG@/true/g' <machpc.fs.in >machpc.fs
  519: 		$(MAKE) -f Makedist d$@
  520: 		-$(RM) machpc.fs
  521: 
  522: binonlydist:	Makedist machpc.fs FORCE
  523: 		-sed -e 's/@[^ ]*CALLFLAG@/false/g' -e 's/@[P]EEPHOLEFLAG@/true/g' <machpc.fs.in >machpc.fs
  524: 		$(MAKE) -f Makedist d$@
  525: 		-$(RM) machpc.fs
  526: 
  527: #HPUX make breaks the cycle differently when the dates are equal, so
  528: # touch some of the files if it acts up
  529: hpux-workaround:
  530: 	touch $(FORTH_GEN_PRIMB)
  531: 
  532: #strip gforth, because the debugging stuff is hardly useful once
  533: # gforth manages to execute more than a few primitives.
  534: 
  535: #install does not depend on gforth.info, because that would require
  536: #supplying a lot of files that can be easily generated (only info is
  537: #hard to generate).
  538: #we rebuild gforth.fi, because it contains some path names.
  539: #we delete $build/gforth.fi and $build/install.TAGS after installation because of ownership.
  540: install:	gforth$(EXE) $(FORTH_SRC) $(kernel_fi) gforth.fi gforthmi vmgen doc/gforth.1 prim install.TAGS installdirs
  541: 		touch $(siteforthdir)/siteinit.fs
  542: 		-$(RM) $(bindir)/gforth$(EXE) $(bindir)/gforth-$(VERSION)$(EXE) $(bindir)/gforthmi $(bindir)/vmgen
  543: 		-$(RM) $(bindir)/gforth-fast$(EXE) $(bindir)/gforth-fast-$(VERSION)$(EXE)
  544: 		-$(RM) $(bindir)/gforth-itc$(EXE) $(bindir)/gforth-itc-$(VERSION)$(EXE)
  545: 		$(INSTALL_PROGRAM) gforth$(EXE) $(bindir)/gforth-$(VERSION)$(EXE)
  546: 		(cd $(bindir) && $(LN_S) gforth-$(VERSION)$(EXE) gforth$(EXE))
  547: 		$(INSTALL_PROGRAM) gforth-fast$(EXE) $(bindir)/gforth-fast-$(VERSION)$(EXE)
  548: 		(cd $(bindir) && $(LN_S) gforth-fast-$(VERSION)$(EXE) gforth-fast$(EXE))
  549: 		$(INSTALL_PROGRAM) gforth-itc$(EXE) $(bindir)/gforth-itc-$(VERSION)$(EXE)
  550: 		(cd $(bindir) && $(LN_S) gforth-itc-$(VERSION)$(EXE) gforth-itc$(EXE))
  551: 		$(INSTALL_SCRIPT) gforthmi $(bindir)/gforthmi-$(VERSION)
  552: 		$(INSTALL_SCRIPT) vmgen $(bindir)/vmgen-$(VERSION)
  553: 		$(INSTALL_PROGRAM) gforth-ditc $(libdir)/gforth/$(VERSION)
  554: 		(cd $(bindir) && $(LN_S) gforthmi-$(VERSION) gforthmi)
  555: 		(cd $(bindir) && $(LN_S) vmgen-$(VERSION) vmgen)
  556: 		-$(INSTALL_DATA) $(srcdir)/doc/gforth.1 $(man1dir)
  557: 		-for i in $(srcdir)/doc/gforth.info* $(srcdir)/doc/vmgen.info*; do $(INSTALL_DATA) $$i $(infodir); done
  558: 		for i in $(FORTH_SRC) $(COMPAT) prim; do \
  559: 			$(INSTALL_DATA) $(srcdir)/$$i $(datadir)/gforth/$(VERSION)/$$i; \
  560: 		done
  561: 		$(INSTALL_DATA) $(kernel_fi) $(datadir)/gforth/$(VERSION)
  562: 		@if test -d "$(emacssitelispdir)"; then \
  563: 			$(INSTALL_DATA) $(srcdir)/gforth.el $(emacssitelispdir); \
  564: 		else \
  565: 			echo ">>>>>Please install $(srcdir)/gforth.el in your .../emacs/site-lisp directory"; \
  566: 		fi
  567: 		-$(RM) gforth.fi
  568: 		GFORTHD="./gforth-ditc -p $(libdir)/gforth/site-forth$(PATHSEP)$(siteforthdir)$(PATHSEP)$(datadir)/gforth/$(VERSION) -i $(kernel_fi)" GFORTH="./gforth-ditc --die-on-signal -i $(kernel_fi) $(STARTUP)" ./gforthmi gforth.fi $(FORTHSIZES) $(STARTUP)
  569: 		$(INSTALL_DATA) gforth.fi $(libdir)/gforth/$(VERSION)
  570: 		$(INSTALL_DATA) install.TAGS $(datadir)/gforth/$(VERSION)/TAGS
  571: 		$(RM) gforth.fi install.TAGS
  572: 		$(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/gforth.info
  573: 		$(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/vmgen.info
  574: 
  575: install-strip:	install
  576: 
  577: installdirs:	mkinstalldirs
  578: 		for i in $(bindir) $(man1dir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(siteforthdir); do \
  579: 			$(srcdir)/mkinstalldirs $$i; \
  580: 		done
  581: 		for i in $(CVSDIRS); do \
  582: 			$(srcdir)/mkinstalldirs $(datadir)/gforth/$(VERSION)/`dirname $$i`; \
  583: 		done
  584: 		$(RM) -rf $(datadir)/gforth/$(VERSION)/engine
  585: 
  586: #deinstall all files specific to this version of gforth
  587: #to uninstall version foo, type `make uninstall VERSION=foo'
  588: uninstall:	FORCE
  589: 		-$(RM) -rf $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(bindir)/gforth-$(VERSION)$(EXE) $(bindir)/gforth-fast-$(VERSION)$(EXE) $(bindir)/gforth-itc-$(VERSION)$(EXE) $(bindir)/gforthmi-$(VERSION) (bindir)/vmgen-$(VERSION)
  590: 		@echo -e "To remove Gforth completely, type\n$(RM) -rf $(bindir)/gforth$(EXE) $(bindir)/gforth-fast$(EXE) $(bindir)/gforth-itc$(EXE) $(bindir)/gforthmi $(bindir)/vmgen $(man1dir)/gforth.1 $(infodir)/gforth.info* $(datadir)/gforth $(libdir)/gforth"
  591: 
  592: check:		gforths	gforth.fi
  593: 		$(MAKE) checkone ENGINE="./gforth --no-dynamic" >/dev/null 2>&1
  594: 		$(MAKE) checkone ENGINE="./gforth-itc" >/dev/null 2>&1
  595: 		$(MAKE) checkone ENGINE="./gforth-ditc" >/dev/null 2>&1
  596: 		$(MAKE) checkone ENGINE="./gforth-fast --no-dynamic" >/dev/null 2>&1
  597: 		$(MAKE) checkone ENGINE="./gforth" >/dev/null 2>&1
  598: 		$(MAKE) checkone ENGINE="./gforth-fast" >/dev/null 2>&1
  599: 		@echo "*** Check successful ***"
  600: 
  601: checkone test:	gforth$(EXE) gforth.fi
  602: 		$(FORTH) test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs test/string.fs test/float.fs test/gforth.fs -e bye | tr -d '\015' | diff -c - $(srcdir)/test/coretest.out
  603: 		$(FORTH) test/other.fs -e bye
  604: 		$(FORTHS) test/signals.fs -e bye
  605: 		$(FORTH) code.fs test/checkans.fs -e bye | tr -d '\015' | diff -c - $(srcdir)/test/checkans.out
  606: 		$(FORTH) prims2x.fs -e \
  607: 		  "c-flag on s\" prim.i\" out-filename 2! s\" $(srcdir)/prim.b\" ' output-c ' output-c-combined process-file bye"| \
  608: 		  tr -d '\015' | diff -c - $(srcdir)/engine/prim.i
  609: 
  610: test/primtest.fi: test/primtest.fs mach32l.fs cross.fs
  611: 		$(FORTHB) -e 's" mach32l.fs"' $(srcdir)/test/primtest.fs -e "save-cross $@ $(bindir)/gforth-$(VERSION) bye"
  612: 
  613: primtest:	gforth gforth-native test/primtest.fi FORCE
  614: 		(echo rs|ENVVAR=bla ./gforth -i test/primtest.fi) && (echo rs|ENVVAR=bla ./gforth-native -i test/primtest.fi); echo $$?
  615: 
  616: bench:		gforth-fast$(EXE) gforth.fi
  617: 		@echo 'Each benchmark takes about 30s on a 486-66 (gcc-2.6.3 -DFORCE_REG)'
  618: 		time $(FORTH_FAST) siev.fs -e "main bye"
  619: 		time $(FORTH_FAST) bubble.fs -e "main bye"
  620: 		time $(FORTH_FAST) matrix.fs -e "main bye"
  621: 		time $(FORTH_FAST) fib.fs -e "main bye"
  622: 
  623: onebench:
  624: 		@\time -f "siev   %U" $(FORTH_FAST) siev.fs -e "main bye"
  625: 		@\time -f "bubble %U" $(FORTH_FAST) -e "warnings off" bubble.fs -e "main bye"
  626: 		@\time -f "matrix %U" $(FORTH_FAST) matrix.fs -e "main bye"
  627: 		@\time -f "fib    %U" $(FORTH_FAST) fib.fs -e "main bye"
  628: 
  629: all-bench:	gforth-fast$(EXE) gforth$(EXE) gforth-itc$(EXE) gforth-ditc$(EXE) gforth.fi
  630: 		@echo "*** gforth-fast dynamic:"
  631: 		@$(MAKE) onebench ENGINE_FAST="./gforth-fast --dynamic"
  632: 		@echo "*** gforth-fast not dynamic:"
  633: 		@$(MAKE) onebench ENGINE_FAST="./gforth-fast --no-dynamic"
  634: 		@echo "*** gforth dynamic:"
  635: 		@$(MAKE) onebench ENGINE_FAST="./gforth --dynamic"
  636: 		@echo "*** gforth not dynamic:"
  637: 		@$(MAKE) onebench ENGINE_FAST="./gforth --no-dynamic"
  638: 		@echo "*** gforth-itc:"
  639: 		@$(MAKE) onebench ENGINE_FAST=./gforth-itc
  640: 		@echo "*** gforth-ditc:"
  641: 		@$(MAKE) onebench ENGINE_FAST=./gforth-ditc
  642: 
  643: # -------------	Make forth images
  644: 
  645: # How to make new images:
  646: # 1. Produce an image called kernlXYZ.fi-
  647: #    the original kernel.fi is not touched because it's needed for creation
  648: # 2. copy old kernlXYZ.fi to kernlXYZ.fi~
  649: #    that's a backup copy in case the new kernels don't work
  650: # 3. copy new kernels to kernlXYZ.fi
  651: #    these are the ones we want to use now
  652: 
  653: kernl16l.fi-:	$(KERN_DEPS) mach16l.fs
  654: 		$(FORTHB) -e 's" mach16l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye"
  655: 
  656: kernl16b.fi-:	$(KERN_DEPS) mach16b.fs
  657: 		$(FORTHB) -e 's" mach16b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16b.fi- $(bindir)/gforth-$(VERSION) bye"
  658: 
  659: kernl32l.fi-:	$(KERN_DEPS) mach32l.fs
  660: 		$(FORTHB) -e 's" mach32l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32l.fi- $(bindir)/gforth-$(VERSION) bye"
  661: 
  662: kernl32b.fi-:	$(KERN_DEPS) mach32b.fs
  663: 		$(FORTHB) -e 's" mach32b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32b.fi- $(bindir)/gforth-$(VERSION) bye"
  664: 
  665: kernl64l.fi-:	$(KERN_DEPS) mach64l.fs
  666: 		$(FORTHB) -e 's" mach64l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64l.fi- $(bindir)/gforth-$(VERSION) bye"
  667: 
  668: kernl64b.fi-:	$(KERN_DEPS) mach64b.fs
  669: 		$(FORTHB) -e 's" mach64b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye"
  670: 
  671: #Solaris make does not like that:
  672: @GNUMAKE@kernl-%.fi:	arch/%/mach.fs arch/%/prim.fs arch/%/asm.fs $(KERN_SRC) kernel/version.fs $(FORTH_GEN0)
  673: @GNUMAKE@		$(FORTHB) -e 's" $<"' $(srcdir)/kernel/main.fs -e "save-cross $@- $(bindir)/gforth-$(VERSION) bye"
  674: @GNUMAKE@		if [ -f `echo $< | sed s/fs/sh/` ]; \
  675: @GNUMAKE@		then sh `echo $< | sed s/fs/sh/` $@; \
  676: @GNUMAKE@		else $(CP) $@- $@; \
  677: @GNUMAKE@		fi
  678: 
  679: #SunOS make does not like that
  680: #arch/%/mach.fs:	arch/%/prim.fs arch/%/asm.fs
  681: 
  682: kernl16b.fi:	$(KERNLS)
  683: 		-$(CP) kernl16b.fi kernl16b.fi~
  684: 		-$(CP) kernl16b.fi- kernl16b.fi
  685: 
  686: kernl16l.fi:	$(KERNLS)
  687: 		-$(CP) kernl16l.fi kernl16l.fi~
  688: 		-$(CP) kernl16l.fi- kernl16l.fi
  689: 
  690: kernl32b.fi:	$(KERNLS)
  691: 		-$(CP) kernl32b.fi kernl32b.fi~
  692: 		-$(CP) kernl32b.fi- kernl32b.fi
  693: 
  694: kernl32l.fi:	$(KERNLS)
  695: 		-$(CP) kernl32l.fi kernl32l.fi~
  696: 		-$(CP) kernl32l.fi- kernl32l.fi
  697: 
  698: kernl64b.fi:	$(KERNLS)
  699: 		-$(CP) kernl64b.fi kernl64b.fi~
  700: 		-$(CP) kernl64b.fi- kernl64b.fi
  701: 
  702: kernl64l.fi:	$(KERNLS)
  703: 		-$(CP) kernl64l.fi kernl64l.fi~
  704: 		-$(CP) kernl64l.fi- kernl64l.fi
  705: 
  706: #kernl%.fi:	kernl%.fi- $(KERNLS)
  707: #		-$(CP) $@ $@~
  708: #		-$(CP) $< $@
  709: 
  710: gforth.fi:	$(kernel_fi) gforthmi gforth$(EXE) gforth-ditc$(EXE) $(GFORTH_FI_SRC) comp-i.fs
  711: 		GFORTHD="./gforth-ditc -p .$(PATHSEP)$(srcdir)" GFORTH="./gforth-ditc --die-on-signal -p .$(PATHSEP)$(srcdir) -i $(kernel_fi) $(STARTUP)" ./gforthmi gforth.fi $(FORTHSIZES) $(FORTHKFLAGS) $(STARTUP)
  712: 
  713: # -------------	Make c-engine
  714: 
  715: prim.b:		prim cache0.vmg
  716: 		m4 -s $(srcdir)/prim >$@
  717: 		sleep 1 #should make hpux-workaround unnecessary
  718: 
  719: prim-fast.b:	prim cache1.vmg peeprules.vmg
  720: 		m4 -DM4_ENGINE_FAST -s $(srcdir)/prim >$@
  721: 		sleep 1 #should make hpux-workaround unnecessary
  722: 
  723: $(FORTH_GEN_ENGINE_FAST): prim-fast.b prims2x.fs
  724: 		GFORTH="$(FORTHP)" $(srcdir)/gfgen -fast
  725: 
  726: $(FORTH_GEN_ENGINE): prim.b prims2x.fs
  727: 		GFORTH="$(FORTHP)" $(srcdir)/gfgen
  728: 
  729: kernel/aliases.fs:	prim.b prims2x.fs kernel/aliases0.fs
  730: 		$(CP) kernel/aliases0.fs $@-
  731: 		$(FORTHP) prims2x.fs -e "forth-flag on s\" prim.b\" ' output-alias ' noop process-file bye" >>$@-
  732: 		$(CP) $@- $@
  733: 		$(RM) $@-
  734: 
  735: kernel/prim.fs:	prim.b prims2x.fs kernel/prim0.fs
  736: 		$(CP) kernel/prim0.fs kernel/prim.fs-
  737: 		$(FORTHP) prims2x.fs -e "forth-flag on s\" prim.b\" ' output-forth ' output-forth-combined process-file bye" >>$@-
  738: 		$(CP) $@- $@
  739: 		$(RM) $@-
  740: 
  741: gforth$(EXE):		engines
  742: 		-$(CP) gforth$(EXE) gforth~
  743: 		$(CP) engine/$@ $@
  744: 		@GFORTH_EXE@
  745: 
  746: gforth-fast$(EXE):	engines-fast
  747: 		$(CP) engine/$@ $@
  748: 		@GFORTHFAST_EXE@
  749: 
  750: gforth-native$(EXE):	engines-fast
  751: 		$(CP) engine/$@ $@
  752: #@GFORTHX_EXE@
  753: 
  754: gforth-itc$(EXE):	engines
  755: 		$(CP) engine/$@ $@
  756: 		@GFORTHITC_EXE@
  757: 
  758: gforth-ditc$(EXE):	engines
  759: 		$(CP) engine/$@ $@
  760: 		@GFORTHDITC_EXE@
  761: 
  762: gforth-prof$(EXE):	engines
  763: 		$(CP) engine/$@ $@
  764: 
  765: gforths: $(ENGINES) $(ENGINES_FAST)
  766: 
  767: engines:	FORCE $(FORTH_GEN_ENGINE) engine/Makefile
  768: 		cd engine && $(MAKE) $(ENGINES)
  769: 
  770: engines-fast:	FORCE $(FORTH_GEN_ENGINE_FAST) engine/Makefile
  771: 		cd engine && $(MAKE) $(ENGINES_FAST)
  772: 
  773: # ------------- additional C primitives
  774: 
  775: %.c:		%.pri prim2cl.fs
  776: 		$(FORTHK) prim2cl.fs -e "file $< altogether bye" >$@
  777: 
  778: %.so:		%.c
  779: 		$(GCC) -shared $(CFLAGS) $< -o $@
  780: 
  781: # -------------	Make Documentation
  782: 
  783: #TAGS is a GNU standard target
  784: TAGS:		gforth.TAGS
  785: 		$(CP) gforth.TAGS $@
  786: 
  787: tags:		gforth.tags
  788: 		$(CP) gforth.tags $@
  789: 
  790: install.TAGS:	gforth.TAGS
  791: 		sed 's;^\$(srcdir)/;$(datadir)/gforth/$(VERSION)/;' gforth.TAGS >install.TAGS
  792: 
  793: gforth.TAGS:	@kernel_fi@ gforth$(EXE) $(GFORTH_FI_SRC) prim.TAGS kernel.TAGS
  794: 		$(FORTHK) etags.fs except.fs startup.fs -e bye
  795: 		cat TAGS prim.TAGS kernel.TAGS >gforth.TAGS
  796: 		rm TAGS
  797: 
  798: gforth.tags:	@kernel_fi@ gforth$(EXE) $(GFORTH_FI_SRC) prim.tags kernel.tags
  799: 		$(FORTHK) tags.fs except.fs startup.fs -e bye
  800: 		cat tags prim.tags kernel.tags >gforth.tags
  801: 		rm tags
  802: 
  803: prim.TAGS: 	prim.b prims2x.fs
  804: 		#echo '2c\' >prim.TAGS.sed
  805: 		#echo $(srcdir)/prim >>prim.TAGS.sed
  806: 		#$(FORTHP) prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag dup process-file bye" | sed -f prim.TAGS.sed >$@-
  807: 		$(FORTHP) prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag dup process-file bye" >$@-
  808: 		$(CP) $@- $@
  809: 		$(RM) $@-
  810: 
  811: prim.tags: 	prim.b prims2x.fs
  812: 		#echo '2c\' >prim.TAGS.sed
  813: 		#echo $(srcdir)/prim >>prim.TAGS.sed
  814: 		#$(FORTHP) prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag dup process-file bye" | sed -f prim.TAGS.sed >$@-
  815: 		$(FORTHP) prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-vi-tag dup process-file bye" >$@-
  816: 		$(CP) $@- $@
  817: 		$(RM) $@-
  818: 
  819: kernel.TAGS:
  820: 		rm kernl16l.fi-; $(MAKE) @kernel_fi@
  821: 
  822: kernel.tags:
  823: 		rm kernl16l.fi-; $(MAKE) @kernel_fi@
  824: 
  825: doc/doc.fd:	doc/makedoc.fs $(GFORTH_FI_SRC) code.fs objects.fs oof.fs moofglos.fs
  826: 		$(FORTHK) -e "s\" doc/doc.fd\"" doc/makedoc.fs except.fs startup.fs code.fs objects.fs oof.fs moofglos.fs -e bye
  827: 
  828: doc/crossdoc.fd:	$(KERN_SRC) kernel/version.fs $(FORTH_GEN0)
  829: 		$(FORTHK) -e 's" mach32l.fs"' kernel/main.fs -e bye
  830: 
  831: doc/gforth.texi:	doc/gforth.ds prim.b ds2texi.fs prims2x.fs \
  832: 		doc/doc.fd doc/crossdoc.fd
  833: 		$(FORTHP) ds2texi.fs prims2x.fs -e "s\" $(srcdir)/prim.b\" ' register-doc ' noop process-file" doc/crossdoc.fd doc/doc.fd -e "s\" $(srcdir)/doc/gforth.ds\" r/o open-file throw ds2texi bye" >$@-
  834: 		$(CP) $@- $@
  835: 		$(RM) $@-
  836: 
  837: checkdoc:	doc/gforth.ds prim.b ds2texi.fs prims2x.fs doc/doc.fd doc/crossdoc.fd answords.fs doc/gforth.texi
  838: 		$(FORTH) ds2texi.fs prims2x.fs -e "s\" $(srcdir)/prim.b\" ' register-doc ' noop process-file" doc/crossdoc.fd doc/doc.fd answords.fs -e bye
  839: 		-grep unknown doc/gforth.texi
  840: 
  841: dvi:		doc/gforth.dvi doc/vmgen.dvi
  842: 
  843: pdf:		doc/gforth.pdf doc/vmgen.pdf
  844: 
  845: doc/gforth.dvi doc/gforth.fns:	$(GFORTH_TEXI)
  846: 		cd doc; $(TEXI2DVI) gforth.texi
  847: 
  848: doc/gforth.pdf:	$(GFORTH_TEXI)
  849: 		cd doc; $(TEXI2PDF) gforth.texi
  850: 
  851: doc/vmgen.dvi:	$(VMGEN_TEXI)
  852: 		cd doc; $(TEXI2DVI) vmgen.texi
  853: 
  854: doc/vmgen.pdf:	$(VMGEN_TEXI)
  855: 		cd doc; $(TEXI2PDF) vmgen.texi
  856: 
  857: doc/gforth.ps:	doc/gforth.dvi
  858: 		$(DVI2PS) doc/gforth.dvi -o $@
  859: 
  860: doc/vmgen.ps:	doc/vmgen.dvi
  861: 		$(DVI2PS) doc/vmgen.dvi -o $@
  862: 
  863: info:		doc/gforth.info doc/vmgen.info
  864: 
  865: doc/gforth.info: $(GFORTH_TEXI)
  866: 		cd doc; $(MAKEINFO) gforth.texi
  867: 
  868: doc/vmgen.info: $(VMGEN_TEXI)
  869: 		cd doc; $(MAKEINFO) vmgen.texi
  870: 
  871: 
  872: ### need makeinfo 4.2 to generate html with these rules
  873: doc/gforth: $(GFORTH_TEXI)
  874: 	cd doc; $(MAKEINFO) --html gforth.texi
  875: 
  876: doc/vmgen: $(VMGEN_TEXI)
  877: 	cd doc; $(MAKEINFO) --html vmgen.texi
  878: 
  879: doc/gforth.txt:	$(GFORTH_TEXI)
  880: 		-cd doc; $(MAKEINFO) --no-headers --no-split gforth.texi >gforth.txt
  881: 
  882: doc/vmgen.txt:	$(VMGEN_TEXI)
  883: 		-cd doc; $(MAKEINFO) --no-headers --no-split vmgen.texi >vmgen.txt
  884: 
  885: doc:		gforth.fi info doc/gforth doc/vmgen doc/gforth.ps doc/vmgen.ps doc/gforth.txt doc/vmgen.txt TAGS
  886: 
  887: # For an explanation of the following Makefile rules, see node
  888: # `Automatic Remaking' in GNU Autoconf documentation.
  889: 
  890: #Note: no target "$(srcdir)/configure", because that does not trigger 
  891: #unless $(srcdir)!="."
  892: configure: configure.in aclocal.m4
  893: 	cd $(srcdir) && autoconf
  894: 
  895: aclocal.m4:	configure.in
  896: 		aclocal
  897: 
  898: # autoheader might not change config.h.in, so touch a stamp file.
  899: engine/config.h.in: stamp-h.in
  900: stamp-h.in: configure.in aclocal.m4
  901: 	cd $(srcdir) && autoheader
  902: 	echo timestamp > $(srcdir)/stamp-h.in
  903: 
  904: engine/config.h: stamp-h
  905: stamp-h: engine/config.h.in config.status
  906: 	./config.status
  907: 
  908: Makefile Makedist engine/Makefile gforthmi vmgen machpc.fs doc/version.texi:	Makefile.in Makedist.in engine/Makefile.in gforthmi.in vmgen.in machpc.fs.in doc/version.texi.in config.status configure.in
  909: 	./config.status
  910: 
  911: config.status: configure
  912: 	./config.status --recheck
  913: 
  914: 
  915: #create files for DOS, because DOS cannot do it itself
  916: makefile.dos: mkdosmf.sed Makefile.in engine/Makefile.in
  917: 	sed -f mkdosmf.sed <Makefile.in >makefile.dos
  918: 	sed -f mkdosmf.sed <engine/Makefile.in >engine/makefile.dos
  919: 
  920: makefile.os2: mkos2mf.sed Makefile.in engine/Makefile.in
  921: 	sed -f mkos2mf.sed <Makefile.in >makefile.os2
  922: 	sed -f mkos2mf.sed <engine/Makefile.in >engine/makefile.os2
  923: 	echo '%.o:	%.c' >>makefile.os2
  924: 	echo '		$$(GCC) $$(CFLAGS) -c $$<' >>makefile.os2
  925: 	echo '%.o:	%.c' >>engine/makefile.os2
  926: 	echo '		$$(GCC) $$(CFLAGS) -c $$<' >>engine/makefile.os2

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>