Annotation of gforth/configure, revision 1.1
1.1 ! pazsan 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:
! 88: for arg in $*;
! 89: do
! 90: case $next_arg in
! 91: --srcdir)
! 92: srcdir=$arg
! 93: next_arg=
! 94: ;;
! 95: --host)
! 96: host=$arg
! 97: next_arg=
! 98: ;;
! 99: --target)
! 100: target=$arg
! 101: next_arg=
! 102: ;;
! 103: --build)
! 104: build=$arg
! 105: next_arg=
! 106: ;;
! 107: --prefix)
! 108: prefix=$arg
! 109: next_arg=
! 110: ;;
! 111: --exec-prefix)
! 112: exec_prefix=$arg
! 113: next_arg=
! 114: ;;
! 115: --direct-threaded)
! 116: threading=-DDIRECT_THREADED
! 117: next_arg=
! 118: ;;
! 119: *)
! 120: case $arg in
! 121: -*)
! 122: if [ x$name1 != x ]
! 123: then
! 124: echo "Positional arguments must be last." 1>&2
! 125: exit 1
! 126: fi
! 127: ;;
! 128: esac
! 129:
! 130: case $arg in
! 131: -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
! 132: next_arg=--srcdir
! 133: ;;
! 134: -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
! 135: srcdir=`echo $arg | sed 's/-*s[a-z]*=//'`
! 136: ;;
! 137: -host | --host | --hos | --ho)
! 138: next_arg=--host
! 139: ;;
! 140: -host=* | --host=* | --hos=* | --ho=*)
! 141: host=`echo $arg | sed 's/-*h[a-z]*=//'`
! 142: ;;
! 143: -target | --target | --targe | --targ | --tar | --ta | --t)
! 144: next_arg=--target
! 145: ;;
! 146: -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
! 147: target=`echo $arg | sed 's/-*t[a-z]*=//'`
! 148: ;;
! 149: -build | --build | --buil | --bui | --bu | --b)
! 150: next_arg=--build
! 151: ;;
! 152: -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
! 153: build=`echo $arg | sed 's/-*b[a-z]*=//'`
! 154: ;;
! 155: -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
! 156: next_arg=--prefix
! 157: ;;
! 158: -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
! 159: prefix=`echo $arg | sed 's/-*p[a-z]*=//'`
! 160: ;;
! 161: -exec-prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre \
! 162: | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
! 163: next_arg=--exec-prefix
! 164: ;;
! 165: -exec-prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* \
! 166: | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* \
! 167: | --exe=* | --ex=* | --e=*)
! 168: exec_prefix=`echo $arg | sed 's/-*e[-a-z]*=//'`
! 169: ;;
! 170: -direct-threaded | --direct-threade | --direct-thread | --direct-threa \
! 171: | --direct-thre | --direct-thr | --direct-th | --direct-t | --direct- \
! 172: | --direct | --direc | --dire | --dir | --di | --d)
! 173: threading=-DDIRECT_THREADED
! 174: ;;
! 175: -with-* | --with-*) ;; #ignored
! 176: -without-* | --without-*) ;; #ignored
! 177: -enable-* | --enable-*) ;; #ignored
! 178: -x | --x) ;; # ignored
! 179: --he*) ;; # ignored for now (--help)
! 180: --vers*) ;; # ignored for now (--version)
! 181: --verb*) ;; # ignored for now (--verbose)
! 182: --program-*) ;; #ignored (--program-prefix, --program-suffix)
! 183: --c*) ;; #ignored (--cache-file)
! 184: --q*) ;; #ignored (--quiet)
! 185: --si*) ;; #ignored (--silent)
! 186: -*)
! 187: echo "Invalid option \`$arg'" 1>&2
! 188: exit 1
! 189: ;;
! 190: *)
! 191: # Allow configure HOST TARGET. If just one name is given, it is used
! 192: # as both unless a host was previously given, in which case it is
! 193: # just the target.
! 194: if [ x$name1 != x ]
! 195: then
! 196: if [ x$name2 != x ]
! 197: then
! 198: echo "More than two configuration names." 1>&2
! 199: exit 1
! 200: fi
! 201: name2=$arg
! 202: elif [ x$host != x ]
! 203: then
! 204: name1=$host
! 205: name2=$arg
! 206: host=
! 207: else
! 208: name1=$arg
! 209: fi
! 210: ;;
! 211: esac
! 212: esac
! 213: done
! 214:
! 215: if [ x$name1 != x ]
! 216: then
! 217: if [ x$name2 = x ]
! 218: then
! 219: name2=$name1
! 220: fi
! 221:
! 222: if [ x$host != x ]
! 223: then
! 224: echo "Duplicate specification of host." 1>&2
! 225: exit 1
! 226: fi
! 227:
! 228: if [ x$target != x ]
! 229: then
! 230: echo "Duplicate specification of target." 1>&2
! 231: exit 1
! 232: fi
! 233:
! 234: host=$name1
! 235: build=$name1
! 236: target=$name2
! 237: fi
! 238:
! 239: # Find the source files, if location was not specified.
! 240: if [ x$srcdir = x ]
! 241: then
! 242: srcdirdefaulted=1
! 243: srcdir=.
! 244: if [ ! -r tree.c ]
! 245: then
! 246: srcdir=..
! 247: fi
! 248: fi
! 249:
! 250: if [ ! -r ${srcdir}/engine.c ]
! 251: then
! 252: if [ x$srcdirdefaulted = x ]
! 253: then
! 254: echo "$progname: Can't find compiler sources in \`${srcdir}'" 1>&2
! 255: else
! 256: echo "$progname: Can't find compiler sources in \`.' or \`..'" 1>&2
! 257: fi
! 258: exit 1
! 259: fi
! 260:
! 261: if [ -r ${srcdir}/config.status ] && [ x$srcdir != x. ]
! 262: then
! 263: echo "$progname: \`configure' has been run in \`${srcdir}'" 1>&2
! 264: exit 1
! 265: fi
! 266:
! 267: # Complain if an arg is missing
! 268: if [ x$build = x ]
! 269: then
! 270: # If host was specified, always use it for build also to avoid
! 271: # confusion. If someone wants a cross compiler where build != host,
! 272: # then they must specify build explicitly. Since this case is
! 273: # extremely rare, it does not matter that it is slightly inconvenient.
! 274: if [ x$host != x ]
! 275: then
! 276: build=$host
! 277:
! 278: # This way of testing the result of a command substitution is
! 279: # defined by Posix.2 (section 3.9.1) as well as traditional shells.
! 280: elif build=`${srcdir}/config.guess`
! 281: then
! 282: echo "This appears to be a ${build} system." 1>&2
! 283:
! 284: elif [ x$target != x ]
! 285: then
! 286: echo 'Config.guess failed to determine the host type. Defaulting to target.'
! 287: build=$target
! 288: else
! 289: echo 'Config.guess failed to determine the host type. You need to specify one.' 1>&2
! 290: echo "\
! 291: Usage: `basename $progname` [--host=HOST] [--build=BUILD]
! 292: [--prefix=DIR] [--exec-pref=DIR] TARGET" 1>&2
! 293: echo "Where HOST, TARGET and BUILD are three-part configuration names " 1>&2
! 294: if [ -r config.status ]
! 295: then
! 296: tail +2 config.status 1>&2
! 297: fi
! 298: exit 1
! 299: fi
! 300: fi
! 301:
! 302: # If $host was not specified, use $build.
! 303: if [ x$host = x ]
! 304: then
! 305: host=$build
! 306: fi
! 307:
! 308: # If $target was not specified, use $host.
! 309: if [ x$target = x ]
! 310: then
! 311: target=$host
! 312: fi
! 313:
! 314: # Validate the specs, and canonicalize them.
! 315: canon_build=`/bin/sh $srcdir/config.sub $build` || exit 1
! 316: canon_host=`/bin/sh $srcdir/config.sub $host` || exit 1
! 317: canon_target=`/bin/sh $srcdir/config.sub $target` || exit 1
! 318:
! 319: # Decode the host machine, then the target machine.
! 320: # For the host machine, we save the xm_file variable as host_xm_file;
! 321: # then we decode the target machine and forget everything else
! 322: # that came from the host machine.
! 323:
! 324: cpu=
! 325: bigendian=
! 326: extra_lib=
! 327: extra_obs=
! 328:
! 329: case $target in
! 330: # Support site-specific machine types.
! 331: hppa*)
! 332: cpu=hppa.h
! 333: bigendian=1
! 334: if [ x$threading = x ]
! 335: then
! 336: extra_obs="getopt1.o getopt.o"
! 337: else
! 338: extra_obs="getopt1.o getopt.o cache.o"
! 339: fi
! 340: flags="-fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves"
! 341: defines="-DUSE_TOS -DUSE_FTOS -D_POSIX_VERSION -DUSE_GETOPT $threading"
! 342: ;;
! 343: sparc*)
! 344: cpu=sparc.h
! 345: bigendian=1
! 346: extra_obs="getopt1.o getopt.o"
! 347: flags="-fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves"
! 348: defines="-DUSE_TOS -DUSE_FTOS -D_POSIX_VERSION -DUSE_GETOPT $threading"
! 349: ;;
! 350: i[345]86*)
! 351: cpu=386.h
! 352: bigendian=0
! 353: extra_obs="getopt1.o getopt.o"
! 354: flags="-fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves"
! 355: defines="-D_POSIX_VERSION -DUSE_GETOPT $threading"
! 356: ;;
! 357: mips-dec-ultrix*)
! 358: cpu=decstation.h
! 359: bigendian=0
! 360: flags="-fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves"
! 361: defines="-DUSE_TOS -DUSE_FTOS -D_POSIX_VERSION -DUSE_GETOPT $threading"
! 362: ;;
! 363: m68k*)
! 364: cpu=apollo68k.h
! 365: bigendian=1
! 366: extra_obs="getopt1.o getopt.o"
! 367: flags="-fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves"
! 368: defines="-DUSE_TOS -DUSE_FTOS -D_POSIX_VERSION -DUSE_GETOPT $threading"
! 369: ;;
! 370: *)
! 371: ;;
! 372: esac
! 373:
! 374: if [ x$cpu = x ]
! 375: then
! 376: echo "Unknown Machine $machine"
! 377: exit 1
! 378: fi
! 379:
! 380: rm -f machine.h
! 381: rm -f gforth.fi
! 382: ln -s $cpu machine.h
! 383: if [ x$bigendian = x1 ]
! 384: then
! 385: ln -s kernl32b.fi gforth.fi
! 386: else
! 387: ln -s kernl32l.fi gforth.fi
! 388: fi
! 389:
! 390: sed -e "s|^XCFLAGS[ ]*=*\(.*\)$|XCFLAGS = \1 $flags|" \
! 391: -e "s|^XDEFINES[ ]*=*\(.*\)$|XDEFINES = \1 $defines|" \
! 392: -e "s|^OBJECTS[ ]*=*\(.*\)$|OBJECTS = \1 $extra_obs|" \
! 393: Makefile.in > Makefile
! 394:
! 395: exit 0
! 396:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>