aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDan Liew <daniel.liew@imperial.ac.uk>2013-12-16 16:58:21 +0000
committerDan Liew <daniel.liew@imperial.ac.uk>2013-12-19 11:43:10 +0000
commitb35ce61c5fd2aba218b02a2f1234b17aef167aa5 (patch)
tree5c8fb333684c10cc338e1339ba158fbc0989c3b3
parent542a604b42798f061ac7a2280279ea5e3db471d9 (diff)
downloadklee-b35ce61c5fd2aba218b02a2f1234b17aef167aa5.tar.gz
Re-add support for running individual tests when built with LLVM3.3
It seems that the LLVM configure script no longer looks for tclsh which was used to execute individual tests. E.g. $ cd test $ make TESTONE=Runtime/POSIX/DirConsistency.c check-one VERBOSE=1 This prevented the above from working. This commit fixes this by having our configure script look for tclsh instead. The path_tclsh.m4 macro is taken from the projects/sample/autoconf/m4/ in LLVM3.3
-rw-r--r--Makefile.config.in1
-rw-r--r--autoconf/configure.ac1
-rw-r--r--autoconf/m4/path_tclsh.m439
-rwxr-xr-xconfigure91
4 files changed, 132 insertions, 0 deletions
diff --git a/Makefile.config.in b/Makefile.config.in
index 452cc1a1..9e04711b 100644
--- a/Makefile.config.in
+++ b/Makefile.config.in
@@ -66,3 +66,4 @@ LDFLAGS := @LDFLAGS@ -g
REQUIRES_RTTI := @REQUIRES_RTTI@
RUNTEST := @RUNTEST@
+TCLSH := @TCLSH@
diff --git a/autoconf/configure.ac b/autoconf/configure.ac
index 09769f8f..fd249103 100644
--- a/autoconf/configure.ac
+++ b/autoconf/configure.ac
@@ -554,6 +554,7 @@ dnl **************************************************************************
dnl * Check for dejagnu
dnl **************************************************************************
AC_PATH_PROG(RUNTEST, [runtest])
+DJ_AC_PATH_TCLSH
dnl **************************************************************************
dnl * Create the output files
diff --git a/autoconf/m4/path_tclsh.m4 b/autoconf/m4/path_tclsh.m4
new file mode 100644
index 00000000..85433de7
--- /dev/null
+++ b/autoconf/m4/path_tclsh.m4
@@ -0,0 +1,39 @@
+dnl This macro checks for tclsh which is required to run dejagnu. On some
+dnl platforms (notably FreeBSD), tclsh is named tclshX.Y - this handles
+dnl that for us so we can get the latest installed tclsh version.
+dnl
+AC_DEFUN([DJ_AC_PATH_TCLSH], [
+no_itcl=true
+AC_MSG_CHECKING(for the tclsh program in tclinclude directory)
+AC_ARG_WITH(tclinclude,
+ AS_HELP_STRING([--with-tclinclude],
+ [directory where tcl headers are]),
+ [with_tclinclude=${withval}],[with_tclinclude=''])
+AC_CACHE_VAL(ac_cv_path_tclsh,[
+dnl first check to see if --with-itclinclude was specified
+if test x"${with_tclinclude}" != x ; then
+ if test -f ${with_tclinclude}/tclsh ; then
+ ac_cv_path_tclsh=`(cd ${with_tclinclude}; pwd)`
+ elif test -f ${with_tclinclude}/src/tclsh ; then
+ ac_cv_path_tclsh=`(cd ${with_tclinclude}/src; pwd)`
+ else
+ AC_MSG_ERROR([${with_tclinclude} directory doesn't contain tclsh])
+ fi
+fi])
+
+dnl see if one is installed
+if test x"${ac_cv_path_tclsh}" = x ; then
+ AC_MSG_RESULT(none)
+ AC_PATH_PROGS([TCLSH],[tclsh8.4 tclsh8.4.8 tclsh8.4.7 tclsh8.4.6 tclsh8.4.5 tclsh8.4.4 tclsh8.4.3 tclsh8.4.2 tclsh8.4.1 tclsh8.4.0 tclsh8.3 tclsh8.3.5 tclsh8.3.4 tclsh8.3.3 tclsh8.3.2 tclsh8.3.1 tclsh8.3.0 tclsh])
+ if test x"${TCLSH}" = x ; then
+ ac_cv_path_tclsh='';
+ else
+ ac_cv_path_tclsh="${TCLSH}";
+ fi
+else
+ AC_MSG_RESULT(${ac_cv_path_tclsh})
+ TCLSH="${ac_cv_path_tclsh}"
+ AC_SUBST(TCLSH)
+fi
+])
+
diff --git a/configure b/configure
index f2714ae8..6eda1243 100755
--- a/configure
+++ b/configure
@@ -624,6 +624,7 @@ ac_includes_default="\
ac_subst_vars='LTLIBOBJS
LIBOBJS
+TCLSH
RUNTEST
METASMT_ROOT
ENABLE_METASMT
@@ -727,6 +728,7 @@ enable_posix_runtime
with_runtime
with_stp
with_metasmt
+with_tclinclude
'
ac_precious_vars='build_alias
host_alias
@@ -1376,6 +1378,7 @@ Optional Packages:
(default [Release+Asserts])
--with-stp Location of STP installation directory
--with-metasmt Location of metaSMT installation directory
+ --with-tclinclude directory where tcl headers are
Some influential environment variables:
CC C compiler command
@@ -5026,6 +5029,94 @@ fi
+no_itcl=true
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the tclsh program in tclinclude directory" >&5
+$as_echo_n "checking for the tclsh program in tclinclude directory... " >&6; }
+
+# Check whether --with-tclinclude was given.
+if test "${with_tclinclude+set}" = set; then :
+ withval=$with_tclinclude; with_tclinclude=${withval}
+else
+ with_tclinclude=''
+fi
+
+if ${ac_cv_path_tclsh+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+if test x"${with_tclinclude}" != x ; then
+ if test -f ${with_tclinclude}/tclsh ; then
+ ac_cv_path_tclsh=`(cd ${with_tclinclude}; pwd)`
+ elif test -f ${with_tclinclude}/src/tclsh ; then
+ ac_cv_path_tclsh=`(cd ${with_tclinclude}/src; pwd)`
+ else
+ as_fn_error $? "${with_tclinclude} directory doesn't contain tclsh" "$LINENO" 5
+ fi
+fi
+fi
+
+
+if test x"${ac_cv_path_tclsh}" = x ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+ for ac_prog in tclsh8.4 tclsh8.4.8 tclsh8.4.7 tclsh8.4.6 tclsh8.4.5 tclsh8.4.4 tclsh8.4.3 tclsh8.4.2 tclsh8.4.1 tclsh8.4.0 tclsh8.3 tclsh8.3.5 tclsh8.3.4 tclsh8.3.3 tclsh8.3.2 tclsh8.3.1 tclsh8.3.0 tclsh
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TCLSH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TCLSH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TCLSH="$TCLSH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TCLSH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TCLSH=$ac_cv_path_TCLSH
+if test -n "$TCLSH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TCLSH" >&5
+$as_echo "$TCLSH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TCLSH" && break
+done
+
+ if test x"${TCLSH}" = x ; then
+ ac_cv_path_tclsh='';
+ else
+ ac_cv_path_tclsh="${TCLSH}";
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_path_tclsh}" >&5
+$as_echo "${ac_cv_path_tclsh}" >&6; }
+ TCLSH="${ac_cv_path_tclsh}"
+
+fi
+
+
ac_config_commands="$ac_config_commands Makefile"