about summary refs log tree commit diff homepage
path: root/autoconf
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 /autoconf
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
Diffstat (limited to 'autoconf')
-rw-r--r--autoconf/configure.ac1
-rw-r--r--autoconf/m4/path_tclsh.m439
2 files changed, 40 insertions, 0 deletions
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
+])
+