6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | #!/bin/sh
|
e3fa69 | 1997-12-28 | Fredrik Hübinette (Hubbe) | | . $NTTOOLS
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | |
set -e
OPTS=""
CFLAGS=""
SOURCES=""
OBJECTS=""
|
c66b50 | 1998-01-01 | Fredrik Hübinette (Hubbe) | | OUTPUT=a.out
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | OPERATION=linking
INCLUDE_PATH=
|
c66b50 | 1998-01-01 | Fredrik Hübinette (Hubbe) | | LDOPTS="OPTION STACK=8m"
|
a12f27 | 1998-01-10 | Fredrik Hübinette (Hubbe) | | LIBRARIES=""
|
3f9343 | 1998-01-14 | Fredrik Hübinette (Hubbe) | | NTCC=wcc386
|
a12f27 | 1998-01-10 | Fredrik Hübinette (Hubbe) | |
DEBUG=no
OPTIMIZE=no
check_linker_error() {
ERROR=ok
sed -e 's/\\/\\\\/g' | while read line
do
echo "$line" >&2
case "x$line" in
*\ W1008:*)
ERROR=failed
;;
esac
done
echo $ERROR
exit 0
}
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | |
while test "$#" != 0; do
case $1 in
|
e3fa69 | 1997-12-28 | Fredrik Hübinette (Hubbe) | | -shared) ;;
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | -E) OPERATION=preprocessing ;;
-c) OPERATION=compiling ;;
|
a12f27 | 1998-01-10 | Fredrik Hübinette (Hubbe) | | -g*)
CFLAGS="$CFLAGS -d2 "
LDOPTS="$LDOPTS DEBUG WATCOM ALL"
DEBUG=yes
;;
# -O*) ;;
-O)
CFLAGS="$CFLAGS -ox"
OPTIMIZE=yes
;;
-O2)
CFLAGS="$CFLAGS -otexan"
OPTIMIZE=yes
;;
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | *.c) SOURCES="$SOURCES $1" ;;
|
e3fa69 | 1997-12-28 | Fredrik Hübinette (Hubbe) | | *.o | *.a) OBJECTS="$OBJECTS $1" ;;
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | -o) OUTPUT="$2" ; shift ;;
-I*)
if test x$1 = x-I ; then
tmp="$2"
shift
else
tmp=`echo $1 | sed -e 's/^-I//g'`
fi
case $tmp in
/usr/include/* | /usr/local/include*)
;;
*)
CFLAGS="$CFLAGS -i`fixpath $tmp`"
;;
esac
;;
-traditional-cpp | -lc | -lm) ;;
-R | -L) shift ;;
-R* | -L* | -Wl*) ;;
-D*)
CFLAGS="$CFLAGS `echo $1 | sed -e 's/^-I/-d/g'`"
;;
|
a12f27 | 1998-01-10 | Fredrik Hübinette (Hubbe) | | -l*)
tmp=`echo $1 | sed -e 's/^-l//'`
LIBRARIES="$LIBRARIES LIBRARY $tmp"
;;
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | |
*)
echo "Unrecognized option $1"
exit 1
;;
esac
shift
done
|
a12f27 | 1998-01-10 | Fredrik Hübinette (Hubbe) | | if [ x$DEBUG$OPTIMIZE = xyesyes ]; then
echo Debug and optimization not supported at the same time
exit 1
else
:
fi
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | rm $OUTPUT 2>/dev/null 1>/dev/null || :
OLDIFS="$IFS"
IFS=:
set dummy $INCLUDE_PATH
shift
IFS="$OLDIFS"
IPATH=.
IPATHS=":.:"
|
0dd2b1 | 1998-01-13 | Fredrik Hübinette (Hubbe) | | for a in "$@"
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | do
case $IPATHS in
*:$a:*) ;;
*)
IPATH="$IPATH;`fixpath $a`"
IPATHS="$IPATHS:$a:"
;;
esac
done
ERRORFILE=TMP$$.err
rm $ERRORFILE 2>/dev/null 1>/dev/null || :
|
0dd2b1 | 1998-01-13 | Fredrik Hübinette (Hubbe) | | CFLAGS="$CFLAGS -bm -zq -hw -fr$ERRORFILE"
|
c66b50 | 1998-01-01 | Fredrik Hübinette (Hubbe) | |
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | if [ "x$OUTPUT" != x ]; then
|
c66b50 | 1998-01-01 | Fredrik Hübinette (Hubbe) | | OFLAGS="$OFLAGS -fo$OUTPUT"
else
OFLAGS=
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | fi
case $OPERATION in
compiling)
|
3f9343 | 1998-01-14 | Fredrik Hübinette (Hubbe) | | do_cmd $NTCC $CFLAGS $OFLAGS `fixpath $SOURCES $OBJECTS`
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | TARGET=$OUTPUT
;;
preprocessing)
|
3f9343 | 1998-01-14 | Fredrik Hübinette (Hubbe) | | do_cmd $NTCC -p $CFLAGS `fixpath $SOURCES`
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | ;;
linking)
for a in `fixpath $SOURCES`
do
BASE=`echo $a | sed -e 's/\.c//'`
|
3f9343 | 1998-01-14 | Fredrik Hübinette (Hubbe) | | do_cmd $NTCC -i$IPATH $CFLAGS -fo=$BASE.obj $a
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | OBJECTS="$OBJECTS $BASE.obj"
done
LDFILE=TMP$$.lk
|
a12f27 | 1998-01-10 | Fredrik Hübinette (Hubbe) | | echo "name $OUTPUT.exe $LDOPTS FIL `fixpath $OBJECTS | sed -e 's/ /,/g'` $LIBRARIES" >$LDFILE
OK=`do_cmd wlink @$LDFILE | check_linker_error`
if [ x$OK != xok ]; then
exit 1
fi
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | TARGET=$OUTPUT.exe
if [ $CLEANUP = yes ]; then
if [ "x$LDFILE" != x ]; then
rm $LDFILE || :
fi
fi
;;
esac
if [ -f $ERRORFILE ]; then
cat $ERRORFILE 1>&2
if grep -iv 'Warning' <$ERRORFILE >/dev/null 2>/dev/null; then
rm $ERRORFILE
exit 1
fi
rm $ERRORFILE
fi
if [ "x$TARGET" != x ]; then
if [ ! -f "$TARGET" ]; then
echo "RNTCC: output file not generated"
exit 1
fi
fi
if [ $OPERATION = linking ]; then
|
c66b50 | 1998-01-01 | Fredrik Hübinette (Hubbe) | | PWD=`pwd`
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | echo >$OUTPUT "#!/bin/sh"
|
e3fa69 | 1997-12-28 | Fredrik Hübinette (Hubbe) | | echo >>$OUTPUT ". \$NTTOOLS"
echo >>$OUTPUT "set -e"
|
c66b50 | 1998-01-01 | Fredrik Hübinette (Hubbe) | | echo >>$OUTPUT "silent_do_cmd '`fixpath $NTDRIVE$PWD/$TARGET`' \"\$@\""
|
6d8608 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | chmod +x $OUTPUT
fi
|