Imported from ../bash-2.05.tar.gz.
[platform/upstream/bash.git] / support / rlvers.sh
index 12abeda..a6d751f 100755 (executable)
@@ -6,16 +6,23 @@
 
 PROGNAME=`basename $0`
 
-trap 'rm -f /tmp/rlvers /tmp/rlvers.?' 0 1 2 3 6 15
+: ${TMPDIR:=/tmp}
+TDIR=$TMPDIR/rlvers
 
 # defaults
 CC=cc
 RL_LIBDIR=/usr/local/lib
+RL_INCDIR=/usr/local/include
 
+TERMCAP_LIB="-ltermcap"
+
+# cannot rely on the presence of getopts
 while [ $# -gt 0 ]; do
        case "$1" in
        -C)     shift ; CC="$1"; shift ;;
+       -I)     shift ; RL_INCDIR="$1" ; shift ;;
        -L)     shift ; RL_LIBDIR="$1" ; shift ;;
+       -T)     shift ; TERMCAP_LIB="$1" ; shift ;;
        -v)     shift ; verbose=y ;;
        --)     shift ; break ;;
        *)      echo "${PROGNAME}: usage: $PROGNAME [-C compiler] [-L libdir] [-v]" >&2 ; exit 2;;
@@ -41,7 +48,17 @@ if [ -n "$verbose" ]; then
        echo "${PROGNAME}: attempting program compilation"
 fi
 
-cat > /tmp/rlvers.c << EOF
+# make $TDIR mode 0700
+mkdir $TDIR || {
+       echo "${PROGNAME}: ${TDIR}: file exists" >&2
+       echo 0
+       exit 1
+}
+chmod 700 $TDIR
+
+trap 'rm -f $TDIR/rlvers $TDIR/rlvers.? ; rmdir $TDIR' 0 1 2 3 6 15
+
+cat > $TDIR/rlvers.c << EOF
 #include <stdio.h>
 extern char *rl_library_version;
 
@@ -52,9 +69,17 @@ main()
 }
 EOF
 
-if eval ${CC} -L${RL_LIBDIR} -o /tmp/rlvers /tmp/rlvers.c -lreadline -ltermcap -lcurses;
+opwd=`pwd`
+
+cd $TDIR || {
+       echo "${PROGNAME}: cannot cd to $TDIR" >&2
+       echo 0
+       exit 1
+}
+       
+if eval ${CC} -L${RL_LIBDIR} -I${RL_INCDIR} -o $TDIR/rlvers $TDIR/rlvers.c -lreadline ${TERMCAP_LIB};
 then
-       v=`/tmp/rlvers`
+       v=`$TDIR/rlvers`
 else
        if [ -n "$verbose" ] ; then
                echo "${PROGNAME}: compilation failed: status $?"
@@ -68,4 +93,5 @@ unknown | "") echo 0 ;;
 *)             echo "$v" ;;
 esac
 
+cd $opwd
 exit 0