diff --git a/NT/tools/ar b/NT/tools/ar index 64bb4300f066f997588cafd6f9553a69f46566d1..471dba4eeb35d0b858967665acebb8537a2c5c0e 100755 --- a/NT/tools/ar +++ b/NT/tools/ar @@ -1,5 +1,9 @@ #!/bin/sh +# +# FIXME: It is time to re-write this in Pike +# + . $NTTOOLS set -e @@ -30,6 +34,10 @@ case "$CC" in *x*) exit 1 ;; *q*|*r*) do_cmd lib "-OUT:`fixpath $OUTPUT`" `fixpath $@` + winname="`echo $OUTPUT | sed -e 's/^lib\(.*\)\.a/\1.lib/'`" + if [ "$winname" != "$OUTPUT" ]; then + cp "$OUTPUT" "$winname" + fi exit $? ;; esac @@ -37,61 +45,67 @@ case "$CC" in *rntcc) -XOPTS="-b -c" - -case "E$OPTIONS" in - *x*) - OPCHAR='*' - if [ $# = 0 ]; then - TMPDIR=TMP$$.d - rm -rf $TMPDIR >/dev/null 2>/dev/null || : - mkdir $TMPDIR - do_cmd wlib -x -d=$TMPDIR `fixpath $OUTPUT` - ( - cd $TMPDIR - for a in * - do - BASE=`echo $a | sed -e 's/\.[^.]$//'` - mv $a ../$BASE.o - done - ) - rm -rf $TMPDIR >/dev/null 2>/dev/null || : - exit 0 - fi - ;; - - *d*) - OPTCHAR='-' - ;; - - *r*) - OPCHAR='-+' - ;; - - *q*) - OPCHAR='+' - ;; -esac - -XFILE=TMP$$.l - -rm $XFILE 2>/dev/null 1>/dev/null || : - -OPTS= -for a in "$@" -do - OPTS="$OPTS $OPCHAR$a" -done - -echo >$XFILE "$OPTS" - -do_cmd wlib $XOPTS `fixpath $OUTPUT` @$XFILE + XOPTS="-b -c" + + case "E$OPTIONS" in + *x*) + OPCHAR='*' + if [ $# = 0 ]; then + TMPDIR=TMP$$.d + rm -rf $TMPDIR >/dev/null 2>/dev/null || : + mkdir $TMPDIR + do_cmd wlib -x -d=$TMPDIR `fixpath $OUTPUT` + ( + cd $TMPDIR + for a in * + do + BASE=`echo $a | sed -e 's/\.[^.]$//'` + mv $a ../$BASE.o + done + ) + rm -rf $TMPDIR >/dev/null 2>/dev/null || : + exit 0 + fi + ;; + + *d*) + OPTCHAR='-' + ;; + + *r*) + OPCHAR='-+' + ;; + + *q*) + OPCHAR='+' + ;; + esac + + XFILE=TMP$$.l + + rm $XFILE 2>/dev/null 1>/dev/null || : + + OPTS= + for a in "$@" + do + OPTS="$OPTS $OPCHAR$a" + done + + echo >$XFILE "$OPTS" + + do_cmd wlib $XOPTS `fixpath $OUTPUT` @$XFILE + + if [ $CLEANUP = yes ]; then + if [ -f $XFILE ]; then + rm $XFILE + fi + fi -if [ $CLEANUP = yes ]; then - if [ -f $XFILE ]; then - rm $XFILE + winname="`echo $OUTPUT | sed -e 's/^lib\(.*\)\.a/\1.lib/'`" + if [ "$winname" != "$OUTPUT" ]; then + cp "$OUTPUT" "$winname" fi -fi + ;; *) echo Unknown C compiler: $CC