home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # Compile GNU Chill programs.
- : || exec /bin/sh -f $0 $argv:q
-
- # The compiler name might be different when doing cross-compilation
- # (this should be configured)
- gcc_name=gcc
- whatgcc=/gg/bin/gcc
- speclang=-xnone
- startfile=/gg/lib/gcc-lib/m68k-amigaos/2.95.3/chillrt0.o
- gnuchill_script_flags=""
- gnuchill_version=1.5.2
- extraflags=
-
- # replace the command name by the name of the new command
- progname=`basename $0`
- case "$0" in
- */*)
- gcc=`echo $0 | sed -e "s;/[^/]*$;;"`/$gcc_name
- ;;
- *)
- gcc=$gcc_name
- ;;
- esac
-
- # $first is yes for first arg, no afterwards.
- first=yes
- # If next arg is the argument of an option, $quote is non-empty.
- # More precisely, it is the option that wants an argument.
- quote=
- # $library is made empty to disable use of libchill.
- library="-lchill"
- libpath=
- numargs=$#
-
- for arg
- do
- if [ $first = yes ]
- then
- # Need some 1st arg to `set' which does not begin with `-'.
- # We get rid of it after the loop ends.
- set gcc
- first=no
- fi
- # If you have to ask what this does, you should not edit this file. :-)
- # The ``S'' at the start is so that echo -nostdinc does not eat the
- # -nostdinc.
- arg=`echo "S$arg" | sed "s/^S//; s/'/'\\\\\\\\''/g"`
- if [ x$quote != x ]
- then
- quote=
- else
- quote=
- case $arg in
- -nostdlib)
- # Inhibit linking with -lchill.
- library=
- libpath=
- startfile=
- ;;
- -B*)
- gcc=`echo $arg | sed -e "s/^-B//"`$gcc_name
- ;;
- -[bBVDUoeTuIYmLiA] | -Tdata | -Xlinker)
- # these switches take following word as argument,
- # so don't treat it as a file name.
- quote=$arg
- ;;
- -[cSEM] | -MM)
- # Don't specify libraries if we won't link,
- # since that would cause a warning.
- library=
- libpath=
- startfile=
- ;;
- -x*)
- speclang=$arg
- ;;
- -v)
- # catch `chill -v'
- if [ $numargs = 1 ] ; then
- library=
- libpath=
- startfile=
- fi
- echo "GNUCHILL version $gnuchill_version"
- ;;
- -fgrant-only | -fchill-grant-only)
- #inhibit production of an object file
- extraflags="-S -o /dev/null"
- library=
- libpath=
- startfile=
- ;;
- -*)
- # Pass other options through; they don't need -x and aren't inputs.
- ;;
- *)
- # If file ends in .i, put options around it.
- # But not if a specified -x option is currently active.
- case "$speclang $arg" in -xnone\ *.[i])
- set "$@" -xchill "'$arg'" -xnone
- continue
- esac
- ;;
- esac
- fi
- set "$@" "'$arg'"
- done
-
- # Get rid of that initial 1st arg
- if [ $first = no ]; then
- shift
- else
- echo "$0: No input files specified."
- exit 1
- fi
-
- if [ x$quote != x ]
- then
- echo "$0: argument to \`$quote' missing"
- exit 1
- fi
-
- # The '-ansi' flag prevents cpp from changing this:
- # NEWMODE x = SET (sun, mon, thu, wed, thu, fri, sat);
- #to this:
- # NEWMODE x = SET (1, mon, thu, wed, thu, fri, sat);
- #which is a CHILL syntax error.
- eval $whatgcc -ansi $gnuchill_script_flags $startfile "$@" $libpath $library $extraflags
-