File:
[gforth] /
gforth /
Attic /
configure
Revision
1.3:
download - view:
text,
annotated -
select for diffs
Thu Nov 17 15:53:05 1994 UTC (28 years, 6 months ago) by
pazsan
Branches:
MAIN
CVS tags:
HEAD
*Added:
* configure.bat configures on MS-DOS machines
* io-dos.h provides IO for MS-DOS
* makefile.dos is a GNU make Makefile for MS-DOS
*Changed:
* Merged gray/gforth and gray/gray4, added conditional compilation for
gray ports (gforth and bigFORTH first)
* added gforth recognising string in environment
* added interpreter support for images (starts now with magic)
* changed make rule for ds2texi, so that it can run with Messy-DOS
* added SAVESYSTEM in dumpimage.fs
* fixed bug in Makefile for big endian systems (->configure)
1: #!/bin/sh
2: # Configuration script for GNU FORTH
3: # Copyright (C) 1994 Free Software Foundation, Inc.
4:
5: #This file is part of GNU CC.
6:
7: #GNU FORTH is free software; you can redistribute it and/or modify
8: #it under the terms of the GNU General Public License as published by
9: #the Free Software Foundation; either version 2, or (at your option)
10: #any later version.
11:
12: #GNU FORTH 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 GNU FORTH; see the file COPYING. If not, write to
19: #the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
20:
21: # This file is a derivate of configure for GNU CC
22:
23: #
24: # Shell script to create proper links to machine-dependent files in
25: # preparation for compiling gcc.
26: #
27: # Options: --srcdir=DIR specifies directory where sources are.
28: # --host=HOST specifies host configuration.
29: # --target=TARGET specifies target configuration.
30: # --build=TARGET specifies configuration of machine you are
31: # using to compile GCC.
32: # --prefix=DIR specifies directory to install in.
33: # --exec-prefix=DIR specifies directory to install executables in.
34: # --direct-threade specifies direct threading
35: #
36: # If configure succeeds, it leaves its status in config.status.
37: # If configure fails after disturbing the status quo,
38: # config.status is removed.
39: #
40:
41: progname=$0
42:
43: # Default --srcdir to the directory where the script is found,
44: # if a directory was specified.
45: # The second sed call is to convert `.//configure' to `./configure'.
46: srcdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'`
47: if [ x$srcdir = x$0 ]
48: then
49: srcdir=
50: fi
51:
52: host=
53: threading=
54:
55: # Default prefix to /usr/local.
56: prefix=/usr/local
57:
58: # local_prefix specifies where to find the directory /usr/local/include
59: # We don't use $(prefix) for this
60: # because we always want GCC to search /usr/local/include
61: # even if GCC is installed somewhere other than /usr/local.
62: # Think THREE TIMES before specifying any other value for this!
63: # DO NOT make this use $prefix!
64: local_prefix=/usr/local
65: # Default is to let the Makefile set exec_prefix from $(prefix)
66: exec_prefix='$(prefix)'
67: #
68:
69: remove=rm
70: hard_link=ln
71: symbolic_link='ln -s'
72: copy=cp
73:
74: # Record all the arguments, to write them in config.status.
75: arguments=$*
76:
77: #for Test
78: #remove="echo rm"
79: #hard_link="echo ln"
80: #symbolic_link="echo ln -s"
81:
82: target=
83: host=
84: build=
85: name1=
86: name2=
87: debugging=-g
88:
89: for arg in $*;
90: do
91: case $next_arg in
92: --srcdir)
93: srcdir=$arg
94: next_arg=
95: ;;
96: --host)
97: host=$arg
98: next_arg=
99: ;;
100: --target)
101: target=$arg
102: next_arg=
103: ;;
104: --build)
105: build=$arg
106: next_arg=
107: ;;
108: --prefix)
109: prefix=$arg
110: next_arg=
111: ;;
112: --exec-prefix)
113: exec_prefix=$arg
114: next_arg=
115: ;;
116: --direct-threaded)
117: threading=-DDIRECT_THREADED
118: next_arg=
119: ;;
120: *)
121: case $arg in
122: -*)
123: if [ x$name1 != x ]
124: then
125: echo "Positional arguments must be last." 1>&2
126: exit 1
127: fi
128: ;;
129: esac
130:
131: case $arg in
132: -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
133: next_arg=--srcdir
134: ;;
135: -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
136: srcdir=`echo $arg | sed 's/-*s[a-z]*=//'`
137: ;;
138: -host | --host | --hos | --ho)
139: next_arg=--host
140: ;;
141: -host=* | --host=* | --hos=* | --ho=*)
142: host=`echo $arg | sed 's/-*h[a-z]*=//'`
143: ;;
144: -target | --target | --targe | --targ | --tar | --ta | --t)
145: next_arg=--target
146: ;;
147: -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
148: target=`echo $arg | sed 's/-*t[a-z]*=//'`
149: ;;
150: -build | --build | --buil | --bui | --bu | --b)
151: next_arg=--build
152: ;;
153: -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
154: build=`echo $arg | sed 's/-*b[a-z]*=//'`
155: ;;
156: -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
157: next_arg=--prefix
158: ;;
159: -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
160: prefix=`echo $arg | sed 's/-*p[a-z]*=//'`
161: ;;
162: -exec-prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre \
163: | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
164: next_arg=--exec-prefix
165: ;;
166: -exec-prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* \
167: | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* \
168: | --exe=* | --ex=* | --e=*)
169: exec_prefix=`echo $arg | sed 's/-*e[-a-z]*=//'`
170: ;;
171: -direct-threaded | --direct-threade | --direct-thread | --direct-threa \
172: | --direct-thre | --direct-thr | --direct-th | --direct-t | --direct- \
173: | --direct | --direc | --dire | --dir | --di | --d)
174: threading=-DDIRECT_THREADED
175: ;;
176: -without-debug | --without-debu | --without-deb | --without-de \
177: | --without-d)
178: debugging=
179: ;;
180: -with-* | --with-*) ;; #ignored
181: -without-* | --without-*) ;; #ignored
182: -enable-* | --enable-*) ;; #ignored
183: -x | --x) ;; # ignored
184: --he*) ;; # ignored for now (--help)
185: --vers*) ;; # ignored for now (--version)
186: --verb*) ;; # ignored for now (--verbose)
187: --program-*) ;; #ignored (--program-prefix, --program-suffix)
188: --c*) ;; #ignored (--cache-file)
189: --q*) ;; #ignored (--quiet)
190: --si*) ;; #ignored (--silent)
191: -*)
192: echo "Invalid option \`$arg'" 1>&2
193: exit 1
194: ;;
195: *)
196: # Allow configure HOST TARGET. If just one name is given, it is used
197: # as both unless a host was previously given, in which case it is
198: # just the target.
199: if [ x$name1 != x ]
200: then
201: if [ x$name2 != x ]
202: then
203: echo "More than two configuration names." 1>&2
204: exit 1
205: fi
206: name2=$arg
207: elif [ x$host != x ]
208: then
209: name1=$host
210: name2=$arg
211: host=
212: else
213: name1=$arg
214: fi
215: ;;
216: esac
217: esac
218: done
219:
220: if [ x$name1 != x ]
221: then
222: if [ x$name2 = x ]
223: then
224: name2=$name1
225: fi
226:
227: if [ x$host != x ]
228: then
229: echo "Duplicate specification of host." 1>&2
230: exit 1
231: fi
232:
233: if [ x$target != x ]
234: then
235: echo "Duplicate specification of target." 1>&2
236: exit 1
237: fi
238:
239: host=$name1
240: build=$name1
241: target=$name2
242: fi
243:
244: # Find the source files, if location was not specified.
245: if [ x$srcdir = x ]
246: then
247: srcdirdefaulted=1
248: srcdir=.
249: if [ ! -r tree.c ]
250: then
251: srcdir=..
252: fi
253: fi
254:
255: if [ ! -r ${srcdir}/engine.c ]
256: then
257: if [ x$srcdirdefaulted = x ]
258: then
259: echo "$progname: Can't find compiler sources in \`${srcdir}'" 1>&2
260: else
261: echo "$progname: Can't find compiler sources in \`.' or \`..'" 1>&2
262: fi
263: exit 1
264: fi
265:
266: if [ -r ${srcdir}/config.status ] && [ x$srcdir != x. ]
267: then
268: echo "$progname: \`configure' has been run in \`${srcdir}'" 1>&2
269: exit 1
270: fi
271:
272: # Complain if an arg is missing
273: if [ x$build = x ]
274: then
275: # If host was specified, always use it for build also to avoid
276: # confusion. If someone wants a cross compiler where build != host,
277: # then they must specify build explicitly. Since this case is
278: # extremely rare, it does not matter that it is slightly inconvenient.
279: if [ x$host != x ]
280: then
281: build=$host
282:
283: # This way of testing the result of a command substitution is
284: # defined by Posix.2 (section 3.9.1) as well as traditional shells.
285: elif build=`${srcdir}/config.guess`
286: then
287: echo "This appears to be a ${build} system." 1>&2
288:
289: elif [ x$target != x ]
290: then
291: echo 'Config.guess failed to determine the host type. Defaulting to target.'
292: build=$target
293: else
294: echo 'Config.guess failed to determine the host type. You need to specify one.' 1>&2
295: echo "\
296: Usage: `basename $progname` [--host=HOST] [--build=BUILD]
297: [--prefix=DIR] [--exec-pref=DIR] TARGET" 1>&2
298: echo "Where HOST, TARGET and BUILD are three-part configuration names " 1>&2
299: if [ -r config.status ]
300: then
301: tail +2 config.status 1>&2
302: fi
303: exit 1
304: fi
305: fi
306:
307: # If $host was not specified, use $build.
308: if [ x$host = x ]
309: then
310: host=$build
311: fi
312:
313: # If $target was not specified, use $host.
314: if [ x$target = x ]
315: then
316: target=$host
317: fi
318:
319: # Validate the specs, and canonicalize them.
320: canon_build=`/bin/sh $srcdir/config.sub $build` || exit 1
321: canon_host=`/bin/sh $srcdir/config.sub $host` || exit 1
322: canon_target=`/bin/sh $srcdir/config.sub $target` || exit 1
323:
324: # Decode the host machine, then the target machine.
325: # For the host machine, we save the xm_file variable as host_xm_file;
326: # then we decode the target machine and forget everything else
327: # that came from the host machine.
328:
329: cpu=
330: bigendian=
331: extra_lib=
332: extra_obs=
333:
334: case $target in
335: # Support site-specific machine types.
336: hppa*)
337: cpu=hppa.h
338: bigendian=1
339: if [ x$threading = x ]
340: then
341: extra_obs="getopt1.o getopt.o"
342: else
343: extra_obs="getopt1.o getopt.o cache.o"
344: fi
345: flags="-fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves"
346: defines="-DUSE_TOS -DUSE_FTOS -D_POSIX_VERSION -DUSE_GETOPT $threading"
347: ;;
348: sparc*)
349: cpu=sparc.h
350: bigendian=1
351: extra_obs="getopt1.o getopt.o"
352: flags="-fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves"
353: defines="-DUSE_TOS -DUSE_FTOS -D_POSIX_VERSION -DUSE_GETOPT $threading"
354: ;;
355: i[345]86*)
356: cpu=386.h
357: bigendian=0
358: extra_obs="getopt1.o getopt.o"
359: flags="-fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves"
360: defines="-D_POSIX_VERSION -DUSE_GETOPT $threading"
361: ;;
362: mips-dec-ultrix*)
363: cpu=decstation.h
364: bigendian=0
365: flags="-fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves"
366: defines="-DUSE_TOS -DUSE_FTOS -D_POSIX_VERSION -DUSE_GETOPT $threading"
367: ;;
368: m68k*)
369: cpu=apollo68k.h
370: bigendian=1
371: extra_obs="getopt1.o getopt.o"
372: flags="-fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves"
373: defines="-DUSE_TOS -DUSE_FTOS -D_POSIX_VERSION -DUSE_GETOPT $threading"
374: ;;
375: *)
376: ;;
377: esac
378:
379: if [ x$cpu = x ]
380: then
381: echo "Unknown Machine $machine"
382: exit 1
383: fi
384:
385: rm -f machine.h
386: rm -f gforth.fi
387: ln -s $cpu machine.h
388: if [ x$bigendian = x1 ]
389: then
390: ln -s kernl32b.fi gforth.fi
391: else
392: ln -s kernl32l.fi gforth.fi
393: fi
394:
395: if [ x$bigendian = x1 ]
396: then
397: kernalswap='s|kernl32l.fi kernl32b.fi|kernl32b.fi kernl32l.fi|'
398: kernalexec='-e'
399: fi
400:
401: sed -e "s|^XCFLAGS[ ]*=*\(.*\)$|XCFLAGS = \1 $flags|" \
402: -e "s|^XDEFINES[ ]*=*\(.*\)$|XDEFINES = \1 $defines|" \
403: -e "s|^OBJECTS[ ]*=*\(.*\)$|OBJECTS = \1 $extra_obs|" \
404: -e "s|^CFLAGS[ ]*=*\(.*\)$|CFLAGS = $debugging\1|" \
405: -e "s|^LDFLAGS[ ]*=*\(.*\)$|LDFLAGS = $debugging\1|" \
406: $kernalexec "$kernalswap" \
407: Makefile.in > Makefile
408:
409: exit 0
410:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>