File:
[gforth] /
gforth /
Makefile.in
Revision
1.35:
download - view:
text,
annotated -
select for diffs
Mon Oct 16 18:33:04 1995 UTC (28 years, 6 months ago) by
anton
Branches:
MAIN
CVS tags:
HEAD
added answords.fs and strsignal.c
added checking of documenetation of ANS Forth words
Fixed many documentation errors and added some documentation
signal handling now uses strsignal and can handle signals not present on all machines
1: #Copyright 1992 by the ANSI figForth Development Group
2: # To change the values of `make' variables: instead of editing Makefiles,
3: # (1) if the variable is set in `config.status', edit `config.status'
4: # (which will cause the Makefiles to be regenerated when you run `make');
5: # (2) otherwise, pass the desired values on the `make' command line.
6:
7: #To do:
8: #use $(srcdir) to make compilation in a non-srcdir possible
9:
10: VERSION =0.1beta#gforth version
11: SHELL = /bin/sh
12: RM = rm
13: CP = cp
14: INSTALL = @INSTALL@
15: INSTALL_PROGRAM = @INSTALL_PROGRAM@
16: INSTALL_DATA = @INSTALL_DATA@
17: LN_S = @LN_S@
18: GCC = gcc
19: CC = $(GCC)
20: FORTH = ./gforth
21: FORTHK = $(FORTH) -i kernal.fi
22: STRIP = strip
23: TEXI2DVI = texi2dvi
24: DVI2PS = dvips
25: #you can get texi2html from http://asis01.cern.ch/infohtml/texi2html.html
26: TEXI2HTML = texi2html
27: MAKEINFO = makeinfo
28: XCFLAGS = @CFLAGS@
29: XDEFINES = @DEFS@
30: SWITCHES = $(XCFLAGS) $(XDEFINES) #-DNDEBUG #turn off assertions
31: ENGINE_FLAGS = -fno-defer-pop -fcaller-saves
32: DEBUGFLAG = @DEBUGFLAG@
33: CFLAGS = -pipe -O4 -Wall $(SWITCHES) -DDEFAULTPATH=\"$(datadir)/gforth/$(VERSION):$(libdir)/gforth/$(VERSION):.\"
34:
35: #John Wavrik should use -Xlinker -N to get a writable text (executable)
36: XLDFLAGS = @LDFLAGS@
37: GCCLDFLAGS = @GCCLDFLAGS@
38: LDFLAGS = $(DEBUGFLAG) $(XLDFLAGS) $(GCCLDFLAGS)
39: LDLIBS = @LIBS@
40:
41: prefix = @prefix@
42: exec_prefix = @exec_prefix@
43: srcdir = @srcdir@
44: bindir = $(exec_prefix)/bin
45: #read-only architecture-independent files
46: datadir = $(prefix)/share
47: #read-only architecture-dependent non-ascii files
48: libdir = $(prefix)/lib
49: infodir = $(prefix)/info
50: mandir = $(prefix)/man/man1
51:
52:
53: INCLUDES = forth.h io.h
54:
55: KERN_SRC = main.fs search-order.fs cross.fs aliases.fs vars.fs add.fs \
56: errore.fs kernal.fs version.fs extend.fs tools.fs toolsext.fs
57:
58: FORTH_SRC = anslocal.fs add.fs assert.fs ansi.fs answords.fs blocks.fs bufio.fs checkans.fs \
59: code.fs colorize.fs cross.fs debug.fs debugging.fs doskey.fs ds2texi.fs \
60: dumpimage.fs environ.fs errore.fs etags.fs extend.fs filedump.fs \
61: float.fs glocals.fs glosgen.fs gray.fs hash.fs history.fs \
62: kernal.fs locals-test.fs look.fs main.fs makedoc.fs \
63: mach16b.fs mach16l.fs mach32b.fs mach32l.fs mach64b.fs mach64l.fs \
64: other.fs prims2x.fs random.fs search-order.fs see.fs sieve.fs \
65: startup.fs struct.fs tools.fs toolsext.fs tt.fs vars.fs vt100.fs \
66: vt100key.fs wordinfo.fs wordsets.fs \
67: tester.fs coretest.fs
68:
69: SOURCES = Makefile.in configure.in configure config.sub config.guess \
70: install-sh INSTALL README ToDo BUGS model COPYING \
71: gforth.ds texinfo.tex gforth.1 gforth.el \
72: primitives engine.c main.c io.c \
73: m68k.h mips.h 386.h hppa.h cache.c sparc.h power.h alpha.h 32bit.h \
74: getopt.c getopt1.c getopt.h select.c \
75: ecvt.c memcmp.c strtol.c strtoul.c ansidecl.h memmove.c pow10.c \
76: strerror.c strsignal.c \
77: makefile.dos mkdosmf.sed configure.bat startup.dos \
78: glosgen.glo glossaries.doc \
79: $(INCLUDES) $(FORTH_SRC)
80:
81: RCS_FILES = ToDo model high-level
82:
83: GEN = gforth
84:
85: OBJECTS = engine.o io.o main.o @LIBOBJS@ @getopt_long@
86:
87: # things that need a working forth system to be generated
88: FORTH_GEN0 = primitives.b primitives.i prim_labels.i aliases.fs
89: FORTH_GEN = $(FORTH_GEN0) @KERNAL@ gforth.fi
90: # this is used for antidependences,
91: FORTH_GEN1 = $(FORTH_GEN0) @kernal_fi@
92:
93:
94: KERNLS = kernl16b.fi+ kernl16l.fi+ \
95: kernl32b.fi+ kernl32l.fi+ \
96: kernl64b.fi+ kernl64l.fi+
97:
98: GEN_PRECIOUS = $(FORTH_GEN) $(KERNLS) gforth.texi gforth.dvi gforth.ps Makefile configure
99:
100: #standards.info recommends this:
101: .SUFFIXES:
102: .SUFFIXES: .c .o
103:
104: all:
105: if [ ! -f gforth ]; then $(MAKE) first; fi
106: $(MAKE) more
107:
108: first: gforth
109:
110: more: $(FORTH_GEN) gforth
111:
112: #from the gcc Makefile:
113: #"Deletion of files made during compilation.
114: # There are four levels of this:
115: # `mostlyclean', `clean', `distclean' and `realclean'.
116: # `mostlyclean' is useful while working on a particular type of machine.
117: # It deletes most, but not all, of the files made by compilation.
118: # It does not delete libgcc.a or its parts, so it won't have to be recompiled.
119: # `clean' deletes everything made by running `make all'.
120: # `distclean' also deletes the files made by config.
121: # `realclean' also deletes everything that could be regenerated automatically."
122:
123: clean:
124: -$(RM) $(GEN) *.o *.s gforth.fi
125:
126: distclean: clean
127: -$(RM) machine.h kernal.fi config.cache config.log
128:
129: realclean: distclean
130: -$(RM) $(GEN_PRECIOUS)
131:
132: dist: $(SOURCES) $(FORTH_GEN)
133: -rm -rf gforth-$(VERSION)
134: mkdir gforth-$(VERSION)
135: cp -p $(SOURCES) $(FORTH_GEN) gforth-$(VERSION)
136: tar cvf - gforth-$(VERSION)|gzip -9 >gforth-$(VERSION).tar.gz
137: -rm -rf gforth-$(VERSION)
138:
139: #a binary distribution contains the complete source distribution,
140: # the objects, the executable and the links. the objects are there for making
141: # make happy.
142: bindist: $(SOURCES) $(FORTH_GEN) gforth $(OBJECTS) config.status Makefile
143: -rm -rf gforth-$(VERSION)
144: mkdir gforth-$(VERSION)
145: cp -p -d $(SOURCES) config.status Makefile $(FORTH_GEN) gforth $(OBJECTS) machine.h kernal.fi gforth-$(VERSION)
146: strip gforth-$(VERSION)/gforth
147: tar cvf - gforth-$(VERSION)|gzip -9 >gforth-$(VERSION)-@host@.tar.gz
148:
149: #makes a package with only the stuff not present in the source
150: #package. For installation the source package is still needed!
151: #This is useful if you want to distribute many binary versions in
152: #little space (e.g., on floppy disk): Put the source package and
153: #all the binonly packages you are interested in on the disk. The user
154: #then just has to unpack the source and his favourite binonly into the
155: #same directory and has a full binary distribution.
156: binonlydist: $(SOURCES) $(FORTH_GEN) gforth $(OBJECTS)
157: -rm -rf gforth-$(VERSION)
158: mkdir gforth-$(VERSION)
159: cp -p -d config.status Makefile gforth $(OBJECTS) machine.h kernal.fi gforth-$(VERSION)
160: strip gforth-$(VERSION)/gforth
161: tar cvf - gforth-$(VERSION)|gzip -9 >gforth-$(VERSION)-binonly-@host@.tar.gz
162:
163:
164:
165: #strip gforth, because the debugging stuff is hardly useful once
166: # gforth manages to execute more than a few primitives
167:
168: install: gforth $(FORTH_SRC) kernal.fi gforth.fi gforth.1 gforth.info
169: $(INSTALL) -d $(bindir) $(mandir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION)
170: $(INSTALL_PROGRAM) -s gforth $(bindir)
171: $(INSTALL_DATA) gforth.1 $(mandir)
172: $(INSTALL_DATA) gforth.info* $(infodir)
173: for i in $(FORTH_SRC); do \
174: $(INSTALL_DATA) $$i $(datadir)/gforth/$(VERSION); \
175: done
176: rm gforth.fi; make gforth.fi #gforth.fi contains some path names
177: $(INSTALL_DATA) kernal.fi gforth.fi $(libdir)/gforth/$(VERSION)
178:
179: check: test
180: touch test
181:
182: test: gforth
183: @echo 'Expect to see INCORRECT RESULT: { GS1 -> <TRUE> <TRUE> }'
184: @echo 'This is a bug of the testing program'
185: $(FORTH) tester.fs coretest.fs -e bye
186: $(FORTH) startup.fs blocks.fs code.fs checkans.fs -e bye
187: @echo 'Expect no differences'
188: $(FORTH) prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye"| diff -c - primitives.i
189:
190: dvi: gforth.dvi
191:
192: gforth: $(OBJECTS)
193: -$(CP) gforth gforth~
194: $(GCC) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@
195: @MAKE_EXE@
196:
197: kernl16l.fi+: $(KERN_SRC) mach16l.fs $(FORTH_GEN0)
198: $(FORTHK) -e 's" mach16l.fs"' main.fs
199:
200: kernl16b.fi+: $(KERN_SRC) mach16b.fs $(FORTH_GEN0)
201: $(FORTHK) -e 's" mach16b.fs"' main.fs
202:
203: kernl32l.fi+: $(KERN_SRC) mach32l.fs $(FORTH_GEN0)
204: $(FORTHK) -e 's" mach32l.fs"' main.fs
205:
206: kernl32b.fi+: $(KERN_SRC) mach32b.fs $(FORTH_GEN0)
207: $(FORTHK) -e 's" mach32b.fs"' main.fs
208:
209: kernl64l.fi+: $(KERN_SRC) mach64l.fs $(FORTH_GEN0)
210: $(FORTHK) -e 's" mach64l.fs"' main.fs
211:
212: kernl64b.fi+: $(KERN_SRC) mach64b.fs $(FORTH_GEN0)
213: $(FORTHK) -e 's" mach64b.fs"' main.fs
214:
215: kernl16b.fi: $(KERNLS)
216: -$(CP) kernl16b.fi kernl16b.fi~
217: -$(CP) kernl16b.fi+ kernl16b.fi
218: @LINK_KERNL16B@
219:
220: kernl16l.fi: $(KERNLS)
221: -$(CP) kernl16l.fi kernl16l.fi~
222: -$(CP) kernl16l.fi+ kernl16l.fi
223: @LINK_KERNL16L@
224:
225: kernl32b.fi: $(KERNLS)
226: -$(CP) kernl32b.fi kernl32b.fi~
227: -$(CP) kernl32b.fi+ kernl32b.fi
228: @LINK_KERNL32B@
229:
230: kernl32l.fi: $(KERNLS)
231: -$(CP) kernl32l.fi kernl32l.fi~
232: -$(CP) kernl32l.fi+ kernl32l.fi
233: @LINK_KERNL32L@
234:
235: kernl64b.fi: $(KERNLS)
236: -$(CP) kernl64b.fi kernl64b.fi~
237: -$(CP) kernl64b.fi+ kernl64b.fi
238: @LINK_KERNL64B@
239:
240: kernl64l.fi: $(KERNLS)
241: -$(CP) kernl64l.fi kernl64l.fi~
242: -$(CP) kernl64l.fi+ kernl64l.fi
243: @LINK_KERNL64L@
244:
245: gforth.fi: @kernal_fi@ gforth startup.fs glocals.fs search-order.fs hash.fs float.fs debugging.fs environ.fs wordinfo.fs look.fs vt100.fs see.fs bufio.fs debug.fs history.fs vt100key.fs assert.fs blocks.fs struct.fs dumpimage.fs
246: $(FORTHK) startup.fs dumpimage.fs -e "savesystem gforth.fi bye"
247:
248: engine.s: engine.c primitives.i prim_labels.i machine.h $(INCLUDES)
249: $(GCC) $(CFLAGS) $(ENGINE_FLAGS) -S engine.c
250:
251: engine.o: engine.c primitives.i prim_labels.i machine.h $(INCLUDES)
252: $(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c engine.c
253:
254: strtoul.o: strtoul.c strtol.c
255:
256: primitives.b: primitives
257: m4 primitives >$@
258:
259: primitives.i : primitives.b prims2x.fs
260: $(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye" >$@
261:
262: prim_labels.i : primitives.b prims2x.fs
263: $(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-label process-file bye" >$@
264:
265: aliases.fs: primitives.b prims2x.fs
266: $(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-alias process-file bye" >$@
267:
268: primitives.fs: primitives.b prims2x.fs
269: $(FORTHK) prims2x.fs -e "s\" primitives.b\" ' output-forth process-file bye" >$@
270:
271: version.fs: Makefile.in
272: echo ": version-string s\" $(VERSION)\" ;" >$@
273:
274: version.c: Makefile.in
275: echo "char gforth_version[]=\"$(VERSION)\" ;" >$@
276:
277:
278: doc.fd: makedoc.fs float.fs search-order.fs glocals.fs environ.fs \
279: toolsext.fs wordinfo.fs \
280: vt100.fs colorize.fs see.fs bufio.fs debug.fs history.fs \
281: doskey.fs vt100key.fs startup.fs assert.fs debugging.fs code.fs
282: $(FORTHK) -e "s\" doc.fd\"" makedoc.fs startup.fs code.fs -e bye
283:
284: crossdoc.fd: $(KERN_SRC) $(FORTH_GEN0)
285: $(FORTHK) -e 's" mach32l.fs"' main.fs
286:
287: gforth.texi: gforth.ds primitives.b ds2texi.fs prims2x.fs doc.fd crossdoc.fd
288: $(FORTHK) ds2texi.fs -e "s\" gforth.ds\" r/o open-file throw ds2texi bye" >$@
289:
290: checkdoc: gforth.ds primitives.b ds2texi.fs prims2x.fs doc.fd crossdoc.fd answords.fs
291: $(FORTHK) ds2texi.fs answords.fs -e bye
292:
293: gforth.dvi: gforth.texi
294: $(TEXI2DVI) gforth.texi
295:
296: gforth.ps: gforth.dvi
297: $(DVI2PS) gforth.dvi -o $@
298:
299: gforth.info: gforth.texi
300: -$(MAKEINFO) gforth.texi
301:
302: html: gforth.texi
303: -$(RM) html/*
304: -mkdir html
305: cd html; $(TEXI2HTML) -menu -split_node ../gforth.texi
306:
307: # For an explanation of the following Makefile rules, see node
308: # `Automatic Remaking' in GNU Autoconf documentation.
309: Makefile: Makefile.in config.status
310: CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
311: config.status: configure
312: ./config.status --recheck
313: configure: configure.in
314: cd $(srcdir) && autoconf
315:
316: makefile.dos: mkdosmf.sed Makefile.in
317: sed -f mkdosmf.sed <Makefile.in >makefile.dos
318:
319: startup.dos: startup.fs Makefile.in
320: sed -e "s/\\\\ include doskey/include doskey/g" \
321: -e "s/include vt100key/\\\\ include vt100key/g" <$< >$@
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>