77 lines
1.4 KiB
Bash
Executable File
77 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
# Compile programs, treating .c files as C++.
|
|
: || exec /bin/sh -f $0 $argv:q
|
|
|
|
newargs=
|
|
quote=no
|
|
library=-lg++
|
|
havefiles=
|
|
|
|
for arg in $*;
|
|
do
|
|
if [ $quote = yes ]
|
|
then
|
|
newargs="$newargs $arg"
|
|
quote=no
|
|
else
|
|
quote=no
|
|
case $arg in
|
|
-nostdlib)
|
|
# Inhibit linking with -lg++.
|
|
newargs="$newargs $arg"
|
|
library=
|
|
;;
|
|
-[bBVDUoeTuIYmLiA] | -Tdata)
|
|
newargs="$newargs $arg"
|
|
# these switches take following word as argument,
|
|
# so don't treat it as a file name.
|
|
quote=yes
|
|
;;
|
|
-[cSEM] | -MM)
|
|
# Don't specify libraries if we won't link,
|
|
# since that would cause a warning.
|
|
newargs="$newargs $arg"
|
|
library=
|
|
;;
|
|
-xnone)
|
|
newargs="$newargs $arg"
|
|
speclang=
|
|
;;
|
|
-x*)
|
|
newargs="$newargs $arg"
|
|
speclang=yes
|
|
;;
|
|
-*)
|
|
# Pass other options through; they don't need -x and aren't inputs.
|
|
newargs="$newargs $arg"
|
|
;;
|
|
*)
|
|
havefiles=yes
|
|
# If file ends in .c or .i, put options around it.
|
|
# But not if a specified -x option is currently active.
|
|
temp=`expr $arg : '.*\.[ci]$'`
|
|
if [ \( x$temp != x0 \) -a \( x$speclang = x \) ]
|
|
then
|
|
newargs="$newargs -xc++ $arg -xnone"
|
|
else
|
|
newargs="$newargs $arg"
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
done
|
|
|
|
if [ x$havefiles = x ]
|
|
then
|
|
echo "$0: no input files specified"
|
|
exit 1
|
|
fi
|
|
|
|
progname=`echo $0 |sed -e 's|/[^/]*$|/gcc|'`
|
|
if [ -f ${progname} ]
|
|
then
|
|
exec ${progname} $newargs $library
|
|
else
|
|
exec gcc $newargs $library
|
|
fi
|