File:  [gforth] / gforth / Attic / configure
Revision 1.5: download - view: text, annotated - select for diffs
Tue Nov 29 16:22:34 1994 UTC (26 years, 8 months ago) by pazsan
Branches: MAIN
CVS tags: HEAD
* added configure mode for DOS-Makefile:
  configure -target=i386-<anythinh>-msdos<anyversion>
  creates Makefile for DOS.
* checked in some mminor changes which never were checked in.
* added special startup file for DOS

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>