File:
[gforth] /
gforth /
Makefile.in
Revision
1.143:
download - view:
text,
annotated -
select for diffs
Fri Jan 8 16:58:29 1999 UTC (25 years, 3 months ago) by
anton
Branches:
MAIN
CVS tags:
HEAD
there is now a debugging version of the engine that maintains ip and
rp in global variables (to allow backtrace on signals). The debugging
engine is called gforth and the original engine is called gforth-fast.
1: #Makefile for Gforth
2:
3: #Copyright (C) 1995,1996,1997,1998 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., 675 Mass Ave, Cambridge, MA 02139, 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 = @VERSION@
34: DOSVERSION=`echo $(VERSION)|sed 's/\.//g'`
35:
36: # ------------- System specific variables
37:
38: machine=@machine@
39: kernel_fi=@kernel_fi@
40: EXE=@EXE@
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
57: MV = mv
58: TAR = tar cf -
59: INSTALL = @INSTALL@
60: INSTALL_PROGRAM = @INSTALL_PROGRAM@
61: INSTALL_DATA = @INSTALL_DATA@
62: LN_S = @LN_S@
63: GCC = @CC@
64: CC = $(GCC)
65: FORTHPATH = .$(PATHSEP)$(libdir)/gforth/site-forth$(PATHSEP)$(siteforthdir)$(PATHSEP)$(libdir)/gforth/$(VERSION)$(PATHSEP)$(datadir)/gforth/$(VERSION)
66: FORTHSIZES = @FORTHSIZES@
67: FORTH_ARGS = --die-on-signal -p $(FORTHPATH)$(PATHSEP)$(srcdir)
68: ENGINE = ./gforth
69: FORTH = $(ENGINE) $(FORTH_ARGS)
70: ENGINE_FAST = $(ENGINE)-fast
71: FORTH_FAST = $(ENGINE_FAST) $(FORTH_ARGS)
72: FORTHKFLAGS= --die-on-signal -p ".$(PATHSEP)~+$(PATHSEP)$(srcdir)" -i $(kernel_fi)
73: FORTHK = ./gforth $(FORTHKFLAGS)
74: FORTHP = ./gforth --die-on-signal -i ./$(kernel_fi)
75: STRIP = strip
76: TEXI2DVI = texi2dvi
77: DVI2PS = dvips -Z
78: #you can get texi2html from http://wwwcn.cern.ch/dci/texi2html/
79: TEXI2HTML = texi2html
80: MAKEINFO = makeinfo
81:
82: # ------------- Compiler Flags
83:
84: XCFLAGS = @CFLAGS@
85: XDEFINES = @DEFS@
86: SWITCHES = $(XCFLAGS) $(XDEFINES) #-DNDEBUG #turn off assertions
87: ENGINE_FLAGS = @ENGINE_FLAGS@ -fno-defer-pop -fcaller-saves
88: DEBUGFLAG = @DEBUGFLAG@
89: CFLAGS = $(DEBUGFLAG) -I$(srcdir)/engine -I$(srcdir)/arch/$(machine) -O4 -Wall $(SWITCHES) -DDEFAULTPATH=\"$(FORTHPATH)\"
90:
91: #John Wavrik should use -Xlinker -N to get a writable text (executable)
92: XLDFLAGS = @LDFLAGS@
93: LDFLAGS = $(DEBUGFLAG) $(XLDFLAGS)
94: LDLIBS = @LIBS@
95:
96: # ------------ Install Directorys
97:
98: VPATH = @srcdir@
99: prefix = @prefix@
100: exec_prefix = @exec_prefix@
101: srcdir = @srcdir@
102: bindir = $(exec_prefix)/bin
103: #read-only architecture-independent files
104: datadir = $(prefix)/share
105: #read-only architecture-dependent non-ascii files
106: libdir = $(prefix)/lib
107: infodir = $(prefix)/info
108: mandir = $(prefix)/man
109: man1dir= $(mandir)/man1
110: man1ext= .1
111: #older emacses have their site-lisp in $(libdir)/emacs/
112: emacssitelispdir=@lispdir@
113: siteforthdir=$(datadir)/gforth/site-forth
114:
115: CVSDIRS = CVS engine/CVS kernel/CVS doc/CVS asm/CVS ec/CVS test/CVS \
116: compat/CVS \
117: arch/CVS arch/generic/CVS arch/m68k/CVS arch/mips/CVS \
118: arch/386/CVS arch/hppa/CVS arch/sparc/CVS arch/power/CVS \
119: arch/alpha/CVS arch/4stack/CVS arch/misc/CVS arch/6502/CVS \
120: arch/8086/CVS arch/avr/CVS arch/c165/CVS arch/h8/CVS \
121: arch/shboom/CVS \
122:
123: INCLUDES = engine/forth.h engine/threaded.h engine/io.h
124:
125: KERN_SRC = \
126: kernel/aliases0.fs \
127: kernel/aliases.fs \
128: kernel/args.fs \
129: chains.fs \
130: kernel/cond.fs \
131: kernel/cond-old.fs \
132: cross.fs \
133: kernel/errore.fs \
134: kernel/files.fs \
135: kernel/require.fs \
136: kernel/paths.fs \
137: kernel/kernel.fs \
138: kernel/main.fs \
139: kernel/prim0.fs \
140: search.fs \
141: kernel/special.fs \
142: kernel/tools.fs \
143: kernel/toolsext.fs \
144: kernel/vars.fs \
145: kernel/accept.fs \
146: kernel/basics.fs \
147: kernel/int.fs \
148: kernel/comp.fs \
149: kernel/io.fs \
150: kernel/license.fs \
151: kernel/nio.fs \
152: kernel/saccept.fs \
153: kernel/doers.fs \
154: kernel/getdoers.fs
155:
156: EC_SRC = \
157: asm/README \
158: asm/bitmask.fs \
159: asm/numref.fs \
160: asm/basic.fs \
161: asm/generic.fs \
162: asm/target.fs \
163: ec/README \
164: ec/mirror.fs \
165: ec/mirrors.fs \
166: ec/shex.fs \
167: ec/builttag.fs \
168: ec/dotx.fs \
169: ec/mirrored.fs \
170: ec/nesting.fs
171:
172: GFORTH_FI_SRC = \
173: assert.fs \
174: blocked.fb \
175: blocks.fs \
176: bufio.fs \
177: debug.fs \
178: debugs.fs \
179: savesys.fs \
180: environ.fs \
181: errors.fs \
182: extend.fs \
183: float.fs \
184: glocals.fs \
185: hash.fs \
186: history.fs \
187: intcomp.fs \
188: locals.fs \
189: look.fs \
190: search.fs \
191: see.fs \
192: see-ext.fs \
193: source.fs \
194: startup.fs \
195: struct.fs \
196: stuff.fs \
197: tasker.fs \
198: termsize.fs \
199: vt100.fs \
200: vt100key.fs \
201: wordinfo.fs \
202: lib.fs \
203: sieve.fs \
204: add.fs
205:
206: FORTH_SRC = $(KERN_SRC) $(GFORTH_FI_SRC) $(EC_SRC) \
207: ans-report.fs ansi.fs answords.fs \
208: code.fs colorize.fs comp-i.fs \
209: doskey.fs ds2texi.fs \
210: envos.fs envos.dos envos.os2 etags.fs filedump.fs fi2c.fs \
211: glosgen.fs gray.fs \
212: doc/makedoc.fs \
213: mach16b.fs mach16l.fs mach32b.fs mach32l.fs mach64b.fs mach64l.fs \
214: machpc.fs more.fs other.fs prims2x.fs random.fs \
215: table.fs \
216: tt.fs sokoban.fs \
217: unbuffered.fs wordsets.fs \
218: test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs \
219: test/other.fs test/checkans.fs \
220: bubble.fs siev.fs matrix.fs fib.fs \
221: oof.fs oofsampl.fs objects.fs objexamp.fs mini-oof.fs moof-exm.fs
222:
223: COMPAT = compat/README \
224: compat/anslocal.fs \
225: compat/assert.fs \
226: compat/control.fs \
227: compat/defer.fs \
228: compat/exception.fs \
229: compat/loops.fs \
230: compat/required.fs \
231: compat/struct.fs \
232: compat/vocabulary.fs
233:
234: GFORTH_TEXI = doc/gforth.texi doc/version.texi
235:
236: ALLSUBDIRS = engine
237:
238: ARCHS = \
239: arch/generic/machine.h \
240: arch/m68k/machine.h \
241: arch/mips/machine.h \
242: arch/386/machine.h \
243: arch/hppa/machine.h \
244: arch/hppa/cache.c \
245: arch/sparc/machine.h \
246: arch/power/machine.h \
247: arch/power/_sync_cache_range.c \
248: arch/alpha/machine.h \
249: arch/4stack/README \
250: arch/4stack/asm.fs \
251: arch/4stack/mach.fs \
252: arch/4stack/prim.fs \
253: arch/4stack/mach.sh \
254: arch/4stack/relocate.fs \
255: arch/misc/README \
256: arch/misc/asm.fs \
257: arch/misc/mach.fs \
258: arch/misc/prim.fs \
259: arch/misc/sim.fs \
260: arch/misc/sokoban.fs \
261: arch/misc/tt.fs \
262: arch/6502/asm.fs \
263: arch/6502/prim.fs \
264: arch/6502/mach.fs \
265: arch/6502/zero.fs \
266: arch/6502/softuart.fs \
267: arch/6502/cold.fs \
268: arch/8086/asm.fs \
269: arch/8086/mach.fs \
270: arch/8086/mach.sh \
271: arch/8086/prim.fs \
272: arch/avr/asm.fs \
273: arch/c165/asm.fs \
274: arch/c165/mach.fs \
275: arch/c165/prim.fs \
276: arch/h8/asm.fs \
277: arch/shboom/asm.fs \
278: arch/shboom/compiler.fs \
279: arch/shboom/dis.fs \
280: arch/shboom/mach.fs \
281: arch/shboom/prim.fs \
282: arch/shboom/dis2.fs \
283: arch/shboom/sh.p \
284: arch/shboom/doers.fs
285:
286: SOURCES = $(CVSDIRS) compat Makefile.in Makedist.in engine/Makefile.in gforthmi.in \
287: configure.in configure config.sub config.guess elisp-comp missing \
288: acconfig.h acinclude.m4 engine/config.h.in stamp-h.in \
289: install-sh INSTALL INSTALL.BINDIST NEWS README ToDo BUGS model \
290: COPYING AUTHORS ChangeLog Benchres aclocal.m4 \
291: doc/gforth.ds doc/texinfo.tex doc/gforth.1 doc/version.texi.in \
292: gforth.el \
293: prim engine/engine.c engine/main.c engine/io.c engine/memcmpc.c \
294: $(ARCHS) \
295: engine/getopt.c engine/getopt1.c engine/getopt.h engine/select.c \
296: engine/ecvt.c engine/memcmp.c engine/strtol.c engine/strtoul.c \
297: engine/ansidecl.h engine/memmove.c \
298: engine/pow10.c engine/atanh.c engine/cleanalign.c \
299: engine/strerror.c engine/strsignal.c engine/dblsub.c \
300: INSTALL.DOS makefile.dos engine/makefile.dos mkdosmf.sed config.bat \
301: dosconf.h gforthmi.bat mkinstalldirs siteinit.fs \
302: versions.bsh \
303: configure.cmd mkos2mf.sed os2conf.h makefile.os2 engine/makefile.os2 \
304: gforthmi.cmd glosgen.glo doc/glossaries.doc \
305: $(INCLUDES) $(FORTH_SRC) $(COMPAT) \
306: timings.sc
307:
308: RCS_FILES = ToDo model high-level
309:
310: GEN = gforth$(EXE) gforth-ditc$(EXE) gforth-fast$(EXE) kernel/version.fs
311:
312: # things that need a working forth system to be generated
313: FORTH_GEN0 = prim.b engine/prim.i engine/prim_lab.i kernel/aliases.fs kernel/prim.fs
314: FORTH_GEN = $(FORTH_GEN0) @KERNEL@ gforth.fi
315: # this is used for antidependences,
316: FORTH_GEN1 = $(FORTH_GEN0) @kernel_fi@
317:
318: #distributed documentation
319: DOCDIST = doc/gforth.info doc/gforth.info-* doc/gforth.ps
320:
321: KERNLS = kernl16b.fi- kernl16l.fi- \
322: kernl32b.fi- kernl32l.fi- \
323: kernl64b.fi- kernl64l.fi-
324:
325: GEN_PRECIOUS = $(FORTH_GEN) $(KERNLS) doc/gforth.texi doc/gforth.dvi doc/gforth.ps Makefile Makedist engine/Makefile configure
326:
327: #standards.info recommends this:
328: .SUFFIXES:
329: .SUFFIXES: .c .o
330:
331:
332: all: kernel/version.fs more
333:
334: # use this dependency for phony targets just as mostlyclean,...
335: FORCE: ;
336:
337: #this rule avoids remaking everything after minor changes in Makefile.in
338: version: Makefile.in
339: if test -r $@ && test x'$(VERSION)' = x`cat $@` ; then true ; else echo $(VERSION) > $@ ; fi
340:
341: # With dos we use normal dos echo
342: # we cannot pipe the output to engine/version.h directly because
343: # of the "/ and \" problem. Copying works because we use the
344: # shell und file utilities.
345:
346: kernel/version.fs: version
347: $(MAKE) gforth$(EXE)
348: echo ": version-string s\" $(VERSION)\" ;" > kernel/version.fs
349:
350: more: engine $(FORTH_GEN) gforth$(EXE)
351:
352: #from the gcc Makefile:
353: #"Deletion of files made during compilation.
354: # There are four levels of this:
355: # `mostlyclean', `clean', `distclean' and `realclean'.
356: # `mostlyclean' is useful while working on a particular type of machine.
357: # It deletes most, but not all, of the files made by compilation.
358: # It does not delete libgcc.a or its parts, so it won't have to be recompiled.
359: # `clean' deletes everything made by running `make all'.
360: # `distclean' also deletes the files made by config.
361: # `realclean' also deletes everything that could be regenerated automatically."
362:
363: mostlyclean: FORCE
364: -$(RM) -rf engine/*.s gforth.fi *.fi~ *.fi- kernel/version.fs \
365: *TAGS gforth~ \
366: doc/crossdoc.fd doc/doc.fd doc/gforth.texi doc/gforth.fns \
367: doc/gforth.aux doc/gforth.cp doc/gforth.cps \
368: doc/gforth.dvi doc/gforth.fn doc/gforth.ky doc/gforth.log \
369: doc/gforth.pg \
370: doc/gforth.toc doc/gforth.tp doc/gforth.vr html \
371: gforth-$(VERSION).tar.gz
372:
373: clean: mostlyclean
374: -$(RM) -rf $(GEN) engine/gforth$(EXE) \
375: engine/gforth-fast$(EXE) engine/gforth-ditc$(EXE) \
376: *.o engine/*.o arch/*/*.o version
377:
378: distclean: clean
379: -$(RM) config.cache config.log config.status \
380: engine/config.h Makefile Makedist engine/Makefile \
381: stamp-h engine/stamp-h \
382: doc/version.texi gforthmi
383:
384: #realclean is useless, but dangerous, so it's commented out
385: #realclean: distclean
386: # -$(RM) $(GEN_PRECIOUS)
387:
388: #mostlyclean, but also remove some of the stuff that is distributed
389: virtualclean: mostlyclean
390: -$(RM) -rf gforth.fns gforth.texi gforth.ps gforth.info* \
391: gforth-$(VERSION).tar.gz config.cache *~ */*~
392:
393: #Some makes (Ultrix, SunOS, IRIX) are so broken, they cannot read the
394: #Makefile if it contains our dist rules. Therefore we have put these
395: #rules in Makedist (you can use them with GNU make on these systems).
396: dist: Makedist FORCE
397: $(MAKE) -f Makedist d$@
398:
399: dosdist: Makedist FORCE
400: $(MAKE) -f Makedist d$@
401:
402: srcdist: Makedist FORCE
403: $(MAKE) -f Makedist d$@
404:
405: srconlydist: Makedist FORCE
406: $(MAKE) -f Makedist d$@
407:
408: docdist: Makedist FORCE
409: $(MAKE) -f Makedist d$@
410:
411: htmldist: Makedist FORCE
412: $(MAKE) -f Makedist d$@
413:
414: bindist: Makedist FORCE
415: $(MAKE) -f Makedist d$@
416:
417: binonlydist: Makedist FORCE
418: $(MAKE) -f Makedist d$@
419:
420:
421: #strip gforth, because the debugging stuff is hardly useful once
422: # gforth manages to execute more than a few primitives
423:
424: #install does not depend on gforth.info, because that would require
425: #supplying a lot of files that can be easily generated (only info is
426: #hard to generate)
427: install: gforth$(EXE) $(FORTH_SRC) $(kernel_fi) gforth.fi gforthmi doc/gforth.1 prim install.TAGS installdirs
428: touch $(siteforthdir)/siteinit.fs
429: -$(RM) $(bindir)/gforth$(EXE) $(bindir)/gforth-$(VERSION)$(EXE) $(bindir)/gforthmi
430: $(INSTALL_PROGRAM) -s gforth$(EXE) $(bindir)/gforth-$(VERSION)$(EXE)
431: $(LN_S) $(bindir)/gforth-$(VERSION)$(EXE) $(bindir)/gforth$(EXE)
432: $(INSTALL_PROGRAM) -s gforth-fast$(EXE) $(bindir)/gforth-fast-$(VERSION)$(EXE)
433: $(LN_S) $(bindir)/gforth-fast-$(VERSION)$(EXE) $(bindir)/gforth-fast$(EXE)
434: $(INSTALL_PROGRAM) gforthmi $(bindir)/gforthmi-$(VERSION)
435: $(LN_S) $(bindir)/gforthmi-$(VERSION) $(bindir)/gforthmi
436: -$(INSTALL_DATA) $(srcdir)/doc/gforth.1 $(man1dir)
437: -for i in $(srcdir)/doc/gforth.info*; do $(INSTALL_DATA) $$i $(infodir); done
438: for i in $(FORTH_SRC) $(COMPAT) prim; do \
439: $(INSTALL_DATA) $(srcdir)/$$i $(datadir)/gforth/$(VERSION)/$$i; \
440: done
441: $(INSTALL_DATA) $(kernel_fi) $(datadir)/gforth/$(VERSION)
442: $(RM) gforth.fi
443: 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.fs" ./gforthmi gforth.fi $(FORTHSIZES) startup.fs #gforth.fi contains some path names
444: $(INSTALL_DATA) gforth.fi $(libdir)/gforth/$(VERSION)
445: $(INSTALL_DATA) install.TAGS $(datadir)/gforth/$(VERSION)/TAGS
446: @if test -d "$(emacssitelispdir)"; then \
447: $(INSTALL_DATA) $(srcdir)/gforth.el $(emacssitelispdir); \
448: else \
449: echo ">>>>>Please install $(srcdir)/gforth.el in your .../emacs/site-lisp directory"; \
450: fi
451: @echo ">>>>> Please make an entry for Gforth in your info dir file; e.g.:"; \
452: echo "* Gforth: (gforth). A fast interpreter for the Forth language."
453:
454: install-strip: install
455:
456: installdirs: mkinstalldirs
457: for i in $(bindir) $(man1dir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(siteforthdir); do \
458: $(srcdir)/mkinstalldirs $$i; \
459: done
460: for i in $(CVSDIRS); do \
461: $(srcdir)/mkinstalldirs $(datadir)/gforth/$(VERSION)/`dirname $$i`; \
462: done
463: $(RM) -rf $(datadir)/gforth/$(VERSION)/arch $(datadir)/gforth/$(VERSION)/engine
464:
465: #deinstall all files specific to this version of gforth
466: #to uninstall version foo, type `make uninstall VERSION=foo'
467: uninstall: FORCE
468: -$(RM) -rf $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(bindir)/gforth-$(VERSION)$(EXE) $(bindir)/gforthmi-$(VERSION)
469: @echo -e "To remove Gforth completely, type\n$(RM) -rf $(bindir)/gforth$(EXE) $(bindir)/gforthmi $(man1dir)/gforth.1 $(infodir)/gforth.info* $(datadir)/gforth $(libdir)/gforth"
470:
471: check test: gforth$(EXE) gforth.fi
472: $(FORTH) test/tester.fs test/coretest.fs test/postpone.fs test/dbltest.fs -e bye
473: $(FORTH) test/other.fs -e bye
474: @echo "Expect 'Missing: EKEY EKEY>CHAR EKEY? EMIT?'"
475: @echo "Expect 'Missing: EDITOR FORGET'"
476: $(FORTH) code.fs test/checkans.fs -e bye
477: @echo 'Expect no differences'
478: $(FORTHK) -m 100000 prims2x.fs -e "s\" $(srcdir)/prim.b\"' output-c process-file bye"| diff -c - $(srcdir)/engine/prim.i
479:
480: bench: gforth-fast$(EXE) gforth.fi
481: @echo 'Each benchmark takes about 30s on a 486-66 (gcc-2.6.3 -DFORCE_REG)'
482: time $(FORTH_FAST) siev.fs -e "main bye"
483: time $(FORTH_FAST) bubble.fs -e "main bye"
484: time $(FORTH_FAST) -m 160000 matrix.fs -e "main bye"
485: time $(FORTH_FAST) fib.fs -e "main bye"
486:
487: # ------------- Make forth images
488:
489: # Hot to make new images:
490: # 1. Produce an image called kernlXYZ.fi-
491: # the original kernel.fi is not touched because it's needed for creation
492: # 2. copy old kernlXYZ.fi to kernlXYZ.fi~
493: # that's a backup copy in case the new kernels don't work
494: # 3. copy new kernels to kernlXYZ.fi
495: # these are the ones we want to use now
496:
497: kernl16l.fi-: $(KERN_SRC) kernel/version.fs mach16l.fs $(FORTH_GEN0)
498: $(FORTHK) -e 's" mach16l.fs"' kernel/main.fs -e "save-cross kernl16l.fi- $(bindir)/gforth-$(VERSION) bye"
499:
500: kernl16b.fi-: $(KERN_SRC) kernel/version.fs mach16b.fs $(FORTH_GEN0)
501: $(FORTHK) -e 's" mach16b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl16b.fi- $(bindir)/gforth-$(VERSION) bye"
502:
503: kernl32l.fi-: $(KERN_SRC) kernel/version.fs mach32l.fs $(FORTH_GEN0)
504: $(FORTHK) -e 's" mach32l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32l.fi- $(bindir)/gforth-$(VERSION) bye"
505:
506: kernl32b.fi-: $(KERN_SRC) kernel/version.fs mach32b.fs $(FORTH_GEN0)
507: $(FORTHK) -e 's" mach32b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl32b.fi- $(bindir)/gforth-$(VERSION) bye"
508:
509: kernl64l.fi-: $(KERN_SRC) kernel/version.fs mach64l.fs $(FORTH_GEN0)
510: $(FORTHK) -e 's" mach64l.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64l.fi- $(bindir)/gforth-$(VERSION) bye"
511:
512: kernl64b.fi-: $(KERN_SRC) kernel/version.fs mach64b.fs $(FORTH_GEN0)
513: $(FORTHK) -e 's" mach64b.fs"' $(srcdir)/kernel/main.fs -e "save-cross kernl64b.fi- $(bindir)/gforth-$(VERSION) bye"
514:
515: kernl-%.fi: arch/%/mach.fs \
516: $(KERN_SRC) kernel/version.fs $(FORTH_GEN0)
517: $(FORTHK) -e 's" $<"' $(srcdir)/kernel/main.fs -e "save-cross $@- $(bindir)/gforth-$(VERSION) bye"
518: if [ -f `echo $< | sed s/fs/sh/` ]; \
519: then sh `echo $< | sed s/fs/sh/` $@; \
520: else $(CP) $@- $@; \
521: fi
522:
523: arch/%/mach.fs: arch/%/prim.fs
524:
525: arch/%/prim.fs: arch/%/asm.fs
526:
527: kernl16b.fi: $(KERNLS)
528: -$(CP) kernl16b.fi kernl16b.fi~
529: -$(CP) kernl16b.fi- kernl16b.fi
530:
531: kernl16l.fi: $(KERNLS)
532: -$(CP) kernl16l.fi kernl16l.fi~
533: -$(CP) kernl16l.fi- kernl16l.fi
534:
535: kernl32b.fi: $(KERNLS)
536: -$(CP) kernl32b.fi kernl32b.fi~
537: -$(CP) kernl32b.fi- kernl32b.fi
538:
539: kernl32l.fi: $(KERNLS)
540: -$(CP) kernl32l.fi kernl32l.fi~
541: -$(CP) kernl32l.fi- kernl32l.fi
542:
543: kernl64b.fi: $(KERNLS)
544: -$(CP) kernl64b.fi kernl64b.fi~
545: -$(CP) kernl64b.fi- kernl64b.fi
546:
547: kernl64l.fi: $(KERNLS)
548: -$(CP) kernl64l.fi kernl64l.fi~
549: -$(CP) kernl64l.fi- kernl64l.fi
550:
551: #kernl%.fi: kernl%.fi- $(KERNLS)
552: # -$(CP) $@ $@~
553: # -$(CP) $< $@
554:
555: gforth.fi: $(kernel_fi) gforthmi gforth$(EXE) gforth-ditc$(EXE) $(GFORTH_FI_SRC)
556: GFORTHD="./gforth-ditc -p .$(PATHSEP)$(srcdir)" GFORTH="./gforth-ditc -p .$(PATHSEP)$(srcdir) -i $(kernel_fi) startup.fs" ./gforthmi gforth.fi $(FORTHSIZES) $(FORTHKFLAGS) startup.fs
557:
558: # ------------- Make c-engine
559:
560: prim.b: prim
561: m4 -s $(srcdir)/prim >$@
562:
563: engine/prim.i: prim.b prims2x.fs
564: $(FORTHK) prims2x.fs -e "s\" prim.b\" ' output-c process-file bye" >$@-
565: $(CP) $@- $@
566: $(RM) $@-
567:
568: engine/prim_lab.i: prim.b prims2x.fs
569: $(FORTHK) prims2x.fs -e "s\" prim.b\" ' output-label process-file bye" >$@-
570: $(CP) $@- $@
571: $(RM) $@-
572:
573: kernel/aliases.fs: prim.b prims2x.fs kernel/aliases0.fs
574: $(CP) kernel/aliases0.fs $@-
575: $(FORTHK) prims2x.fs -e "s\" prim.b\" ' output-alias process-file bye" >>$@-
576: $(CP) $@- $@
577: $(RM) $@-
578:
579: kernel/prim.fs: prim.b prims2x.fs kernel/prim0.fs
580: $(CP) kernel/prim0.fs kernel/prim.fs-
581: $(FORTHK) prims2x.fs -e "s\" prim.b\" ' output-forth process-file bye" >>$@-
582: $(CP) $@- $@
583: $(RM) $@-
584:
585: gforth$(EXE): engines
586: -$(CP) gforth$(EXE) gforth~
587: $(CP) engine/$@ $@
588: @GFORTH_EXE@
589:
590: gforth-fast$(EXE): engines
591: $(CP) engine/$@ $@
592: @GFORTHFAST_EXE@
593:
594: gforth-ditc$(EXE): engines
595: $(CP) engine/$@ $@
596: @GFORTHDITC_EXE@
597:
598: engines: FORCE engine/Makefile
599: cd engine && $(MAKE) gforth$(EXE) gforth-fast$(EXE) gforth-ditc$(EXE)
600:
601: # ------------- additional C primitives
602:
603: %.c: %.pri prim2cl.fs
604: $(FORTHK) prim2cl.fs -e "file $< altogether bye" >$@
605:
606: %.so: %.c
607: $(GCC) -shared $(CFLAGS) $< -o $@
608:
609: # ------------- Make Documentation
610:
611: #TAGS is a GNU standard target
612: TAGS: gforth.TAGS
613: $(CP) gforth.TAGS $@
614:
615: install.TAGS: gforth.TAGS
616: sed 's:^\$(srcdir)/:$(datadir)/gforth/$(VERSION)/:' gforth.TAGS >install.TAGS
617:
618: gforth.TAGS: @kernel_fi@ gforth $(GFORTH_FI_SRC) prim.TAGS
619: $(FORTHK) etags.fs startup.fs -e bye
620: cat TAGS prim.TAGS kernel.TAGS >gforth.TAGS
621: rm TAGS
622:
623: prim.TAGS: prim.b prims2x.fs
624: $(FORTHK) prims2x.fs -e "s\" $(srcdir)/prim.b\" ' output-tag process-file bye" >$@-
625: $(CP) $@- $@
626: $(RM) $@-
627:
628: doc/doc.fd: doc/makedoc.fs $(GFORTH_FI_SRC) code.fs objects.fs oof.fs mini-oof.fs
629: $(FORTHK) -e "s\" doc/doc.fd\"" doc/makedoc.fs startup.fs code.fs objects.fs oof.fs mini-oof.fs -e bye
630:
631: doc/crossdoc.fd: $(KERN_SRC) kernel/version.fs $(FORTH_GEN0)
632: $(FORTHK) -e 's" mach32l.fs"' kernel/main.fs -e bye
633:
634: doc/gforth.texi: doc/gforth.ds prim.b ds2texi.fs prims2x.fs \
635: doc/doc.fd doc/crossdoc.fd
636: $(FORTHK) -m 100000 ds2texi.fs prims2x.fs -e "s\" $(srcdir)/prim.b\" ' register-doc process-file" doc/crossdoc.fd doc/doc.fd -e "s\" $(srcdir)/doc/gforth.ds\" r/o open-file throw ds2texi bye" >$@-
637: $(CP) $@- $@
638: $(RM) $@-
639:
640: checkdoc: doc/gforth.ds prim.b ds2texi.fs prims2x.fs doc/doc.fd doc/crossdoc.fd answords.fs doc/gforth.texi
641: $(FORTHK) -m 1M ds2texi.fs prims2x.fs -e "s\" $(srcdir)/prim.b\" ' register-doc process-file" doc/crossdoc.fd doc/doc.fd answords.fs -e bye
642: -grep unknown doc/gforth.texi
643:
644: dvi: doc/gforth.dvi
645:
646: doc/gforth.dvi doc/gforth.fns: $(GFORTH_TEXI)
647: cd doc; $(TEXI2DVI) gforth.texi
648:
649: doc/gforth.ps: doc/gforth.dvi
650: $(DVI2PS) doc/gforth.dvi -o $@
651:
652: info: doc/gforth.info
653:
654: doc/gforth.info doc/gforth.info-*: $(GFORTH_TEXI)
655: -cd doc; $(MAKEINFO) gforth.texi
656:
657: html: $(GFORTH_TEXI)
658: -$(RMTREE) html
659: -mkdir html
660: cd html; $(TEXI2HTML) -menu -split_node ../doc/gforth.texi
661:
662: doc/gforth.txt: $(GFORTH_TEXI)
663: -cd doc; $(MAKEINFO) --no-headers --no-split gforth.texi >gforth.txt
664:
665: doc: doc/gforth.ps html doc/gforth.txt
666:
667: # For an explanation of the following Makefile rules, see node
668: # `Automatic Remaking' in GNU Autoconf documentation.
669: $(srcdir)/configure: configure.in aclocal.m4
670: cd $(srcdir) && autoconf
671:
672: aclocal.m4: acinclude.m4 configure.in
673: aclocal
674:
675: # autoheader might not change config.h.in, so touch a stamp file.
676: engine/config.h.in: stamp-h.in
677: stamp-h.in: configure.in acconfig.h
678: cd $(srcdir) && autoheader
679: echo timestamp > $(srcdir)/stamp-h.in
680:
681: engine/config.h: stamp-h
682: stamp-h: engine/config.h.in config.status
683: CONFIG_FILES=$@ CONFIG_HEADERS=engine/config.h ./config.status
684: echo timestamp > stamp-h
685:
686: Makefile Makedist engine/Makefile gforthmi: Makefile.in Makedist.in engine/Makefile.in gforthmi.in config.status
687: CONFIG_FILES="$@" CONFIG_HEADERS=engine/config.h ./config.status
688:
689: config.status: configure
690: ./config.status --recheck
691:
692:
693: #create files for DOS, because DOS cannot do it itself
694: makefile.dos: mkdosmf.sed Makefile.in engine/Makefile.in
695: sed -f mkdosmf.sed <Makefile.in >makefile.dos
696: sed -f mkdosmf.sed <engine/Makefile.in >engine/makefile.dos
697:
698: makefile.os2: mkos2mf.sed Makefile.in engine/Makefile.in
699: sed -f mkos2mf.sed <Makefile.in >makefile.os2
700: sed -f mkos2mf.sed <engine/Makefile.in >engine/makefile.os2
701: echo '%.o: %.c' >>makefile.os2
702: echo ' $$(GCC) $$(CFLAGS) -c $$<' >>makefile.os2
703: echo '%.o: %.c' >>engine/makefile.os2
704: echo ' $$(GCC) $$(CFLAGS) -c $$<' >>engine/makefile.os2
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>