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