Have the AutoRegen.sh script prompt the user for the LLVM src and obj
authorReid Spencer <rspencer@reidspencer.com>
Tue, 18 Apr 2006 06:27:47 +0000 (06:27 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Tue, 18 Apr 2006 06:27:47 +0000 (06:27 +0000)
directories if it can't find them. Then, replace those values into the
configure.ac script and pass them to the LLVM_CONFIG_PROJECT so that the
values become the default for llvm_src and llvm_obj variables. In this way
the user is required to input this exactly once, and the scripts take it
from there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27798 91177308-0d34-0410-b5e6-96231b3b80d8

projects/sample/autoconf/AutoRegen.sh
projects/sample/autoconf/configure.ac

index af6c0a4b2889642777570f7979f9af9ebd41ff3b..c9cc905cd09e7997e28b79b03e052d40061a5c12 100755 (executable)
@@ -7,20 +7,42 @@ test -d autoconf && test -f autoconf/configure.ac && cd autoconf
 test -f configure.ac || die "Can't find 'autoconf' dir; please cd into it first"
 autoconf --version | egrep '2\.5[0-9]' > /dev/null
 if test $? -ne 0 ; then
-       die "Your autoconf was not detected as being 2.5x"
+  die "Your autoconf was not detected as being 2.5x"
 fi
 cwd=`pwd`
 if test -d ../../../autoconf/m4 ; then
   cd ../../../autoconf/m4
   llvm_m4=`pwd`
+  llvm_src_root=../../..
+  llvm_obj_root=../../..
   cd $cwd
 elif test -d ../../llvm/autoconf/m4 ; then
   cd ../../llvm/autoconf/m4
   llvm_m4=`pwd`
+  llvm_src_root=../..
+  llvm_obj_root=../..
   cd $cwd
 else
-  die "Can't find the LLVM autoconf/m4 directory. The project should be checked out to projects directory"
+  while true ; do
+    echo "LLVM source root not found." 
+    read -p "Enter full path to LLVM source:"
+    if test -d "$REPLY/autoconf/m4" ; then
+      llvm_src_root="$REPLY"
+      llvm_m4="$REPLY/autoconf/m4"
+      read -p "Enter full path to LLVM objects (empty for same as source):"
+      if test -d "$REPLY" ; then
+        llvm_obj_root="$REPLY"
+      else
+        llvm_obj_root="$llvm_src_root"
+      fi
+      break
+    fi
+  done
 fi
+# Patch the LLVM_ROOT in configure.ac, if it needs it
+cp configure.ac configure.bak
+sed -e "s#^LLVM_SRC_ROOT=.*#LLVM_SRC_ROOT=\"$llvm_src_root\"#" \
+    -e "s#^LLVM_OBJ_ROOT=.*#LLVM_OBJ_ROOT=\"$llvm_obj_root\"#" configure.bak > configure.ac
 echo "Regenerating aclocal.m4 with aclocal"
 rm -f aclocal.m4
 aclocal -I $llvm_m4 -I "$llvm_m4/.." || die "aclocal failed"
index 43a2e903efd1b77739b28493365aa6d5019957d1..37c93a8f51529f9a219e5eb2e57d050f21fdf745 100644 (file)
@@ -3,13 +3,16 @@ dnl * Initialize
 dnl **************************************************************************
 AC_INIT([[[SAMPLE]]],[[[x.xx]]],[bugs@yourdomain])
 
+dnl Identify where LLVM source tree is
+LLVM_SRC_ROOT="../../"
+LLVM_OBJ_ROOT="../../"
 dnl Tell autoconf that the auxilliary files are actually located in
 dnl the LLVM autoconf directory, not here.
-AC_CONFIG_AUX_DIR(../../autoconf)
+AC_CONFIG_AUX_DIR($LLVM_SRC_ROOT/autoconf)
 
 dnl Tell autoconf that this is an LLVM project being configured
 dnl This provides the --with-llvmsrc and --with-llvmobj options
-LLVM_CONFIG_PROJECT
+LLVM_CONFIG_PROJECT($LLVM_SRC_ROOT,$LLVM_OBJ_ROOT)
 
 dnl Verify that the source directory is valid
 AC_CONFIG_SRCDIR(["Makefile.common.in"])