6d86081997-12-22Fredrik Hübinette (Hubbe) #!/bin/sh
e3fa691997-12-28Fredrik Hübinette (Hubbe) . $NTTOOLS
6d86081997-12-22Fredrik Hübinette (Hubbe)  set -e OPTS="" CFLAGS="" SOURCES="" OBJECTS=""
c66b501998-01-01Fredrik Hübinette (Hubbe) OUTPUT=a.out
6d86081997-12-22Fredrik Hübinette (Hubbe) OPERATION=linking INCLUDE_PATH=
c66b501998-01-01Fredrik Hübinette (Hubbe) LDOPTS="OPTION STACK=8m"
a12f271998-01-10Fredrik Hübinette (Hubbe) LIBRARIES="" 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 }
6d86081997-12-22Fredrik Hübinette (Hubbe)  while test "$#" != 0; do case $1 in
e3fa691997-12-28Fredrik Hübinette (Hubbe)  -shared) ;;
6d86081997-12-22Fredrik Hübinette (Hubbe)  -E) OPERATION=preprocessing ;; -c) OPERATION=compiling ;;
a12f271998-01-10Fredrik 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 ;;
6d86081997-12-22Fredrik Hübinette (Hubbe)  *.c) SOURCES="$SOURCES $1" ;;
e3fa691997-12-28Fredrik Hübinette (Hubbe)  *.o | *.a) OBJECTS="$OBJECTS $1" ;;
6d86081997-12-22Fredrik 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'`" ;;
a12f271998-01-10Fredrik Hübinette (Hubbe)  -l*) tmp=`echo $1 | sed -e 's/^-l//'` LIBRARIES="$LIBRARIES LIBRARY $tmp" ;;
6d86081997-12-22Fredrik Hübinette (Hubbe)  *) echo "Unrecognized option $1" exit 1 ;; esac shift done
a12f271998-01-10Fredrik Hübinette (Hubbe) if [ x$DEBUG$OPTIMIZE = xyesyes ]; then echo Debug and optimization not supported at the same time exit 1 else : fi
6d86081997-12-22Fredrik Hübinette (Hubbe) rm $OUTPUT 2>/dev/null 1>/dev/null || : OLDIFS="$IFS" IFS=: set dummy $INCLUDE_PATH shift IFS="$OLDIFS" IPATH=. IPATHS=":.:" for a in $* 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 || :
c66b501998-01-01Fredrik Hübinette (Hubbe) CFLAGS="$CFLAGS -zq -hw -fr$ERRORFILE"
6d86081997-12-22Fredrik Hübinette (Hubbe) if [ "x$OUTPUT" != x ]; then
c66b501998-01-01Fredrik Hübinette (Hubbe)  OFLAGS="$OFLAGS -fo$OUTPUT" else OFLAGS=
6d86081997-12-22Fredrik Hübinette (Hubbe) fi case $OPERATION in compiling)
c66b501998-01-01Fredrik Hübinette (Hubbe)  do_cmd wcc386 $CFLAGS $OFLAGS `fixpath $SOURCES $OBJECTS`
6d86081997-12-22Fredrik Hübinette (Hubbe)  TARGET=$OUTPUT ;; preprocessing) do_cmd wcc386 -p $CFLAGS `fixpath $SOURCES` ;; linking) for a in `fixpath $SOURCES` do BASE=`echo $a | sed -e 's/\.c//'`
a12f271998-01-10Fredrik Hübinette (Hubbe)  do_cmd wcc386 -i$IPATH $CFLAGS -fo=$BASE.obj $a
6d86081997-12-22Fredrik Hübinette (Hubbe)  OBJECTS="$OBJECTS $BASE.obj" done LDFILE=TMP$$.lk
a12f271998-01-10Fredrik 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
6d86081997-12-22Fredrik 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
c66b501998-01-01Fredrik Hübinette (Hubbe)  PWD=`pwd`
6d86081997-12-22Fredrik Hübinette (Hubbe)  echo >$OUTPUT "#!/bin/sh"
e3fa691997-12-28Fredrik Hübinette (Hubbe)  echo >>$OUTPUT ". \$NTTOOLS" echo >>$OUTPUT "set -e"
c66b501998-01-01Fredrik Hübinette (Hubbe)  echo >>$OUTPUT "silent_do_cmd '`fixpath $NTDRIVE$PWD/$TARGET`' \"\$@\""
6d86081997-12-22Fredrik Hübinette (Hubbe)  chmod +x $OUTPUT fi