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>