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
 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`
 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`
   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
   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
 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"
 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 **************************************************************************
 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.
 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
 
 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"])
 
 dnl Verify that the source directory is valid
 AC_CONFIG_SRCDIR(["Makefile.common.in"])