Imported from ../bash-2.03.tar.gz.
[platform/upstream/bash.git] / support / rlvers.sh
1 #! /bin/sh
2 #
3 # rlvers.sh -- run a program that prints out the readline version number
4 #              using locally-installed readline libraries
5 #
6
7 PROGNAME=`basename $0`
8
9 trap 'rm -f /tmp/rlvers /tmp/rlvers.?' 0 1 2 3 6 15
10
11 # defaults
12 CC=cc
13 RL_LIBDIR=/usr/local/lib
14
15 while [ $# -gt 0 ]; do
16         case "$1" in
17         -C)     shift ; CC="$1"; shift ;;
18         -L)     shift ; RL_LIBDIR="$1" ; shift ;;
19         -v)     shift ; verbose=y ;;
20         --)     shift ; break ;;
21         *)      echo "${PROGNAME}: usage: $PROGNAME [-C compiler] [-L libdir] [-v]" >&2 ; exit 2;;
22         esac
23 done
24
25 # if someone happened to install examples/rlversion, use it (it's not
26 # installed by default)
27 if test -f ${RL_LIBDIR}/rlversion ; then
28         if [ -n "$verbose" ]; then
29                 echo "${PROGNAME}: using installed rlversion from ${RL_LIBDIR}/rlversion"
30         fi
31         v=`${RL_LIBDIR}/rlversion 2>/dev/null`
32         case "$v" in
33         unknown | "")   echo 0 ;;
34         *)              echo "$v" ;;
35         esac
36         exit 0
37 fi
38
39 if [ -n "$verbose" ]; then
40         echo "${PROGNAME}: using ${RL_LIBDIR} to find libreadline"
41         echo "${PROGNAME}: attempting program compilation"
42 fi
43
44 cat > /tmp/rlvers.c << EOF
45 #include <stdio.h>
46 extern char *rl_library_version;
47
48 main()
49 {
50         printf("%s\n", rl_library_version ? rl_library_version : "0");
51         exit(0);
52 }
53 EOF
54
55 if eval ${CC} -L${RL_LIBDIR} -o /tmp/rlvers /tmp/rlvers.c -lreadline -ltermcap -lcurses;
56 then
57         v=`/tmp/rlvers`
58 else
59         if [ -n "$verbose" ] ; then
60                 echo "${PROGNAME}: compilation failed: status $?"
61                 echo "${PROGNAME}: using version 0"
62         fi
63         v=0
64 fi
65
66 case "$v" in
67 unknown | "")   echo 0 ;;
68 *)              echo "$v" ;;
69 esac
70
71 exit 0