Fix paths; AutoRegen.sh changes its current working directory to be the
[oota-llvm.git] / projects / sample / autoconf / AutoRegen.sh
1 #!/bin/sh
2 die () {
3         echo "$@" 1>&2
4         exit 1
5 }
6 test -d autoconf && test -f autoconf/configure.ac && cd autoconf
7 test -f configure.ac || die "Can't find 'autoconf' dir; please cd into it first"
8 autoconf --version | egrep '2\.[56][0-9]' > /dev/null
9 if test $? -ne 0 ; then
10   die "Your autoconf was not detected as being 2.5x or 2.6x"
11 fi
12 cwd=`pwd`
13 if test -d ../../../autoconf/m4 ; then
14   cd ../../../autoconf/m4
15   llvm_m4=`pwd`
16   llvm_src_root=../..
17   llvm_obj_root=../..
18   cd $cwd
19 elif test -d ../../llvm/autoconf/m4 ; then
20   cd ../../llvm/autoconf/m4
21   llvm_m4=`pwd`
22   llvm_src_root=..
23   llvm_obj_root=..
24   cd $cwd
25 else
26   while true ; do
27     echo "LLVM source root not found." 
28     read -p "Enter full path to LLVM source:" REPLY
29     if test -d "$REPLY/autoconf/m4" ; then
30       llvm_src_root="$REPLY"
31       llvm_m4="$REPLY/autoconf/m4"
32       read -p "Enter full path to LLVM objects (empty for same as source):" REPLY
33       if test -d "$REPLY" ; then
34         llvm_obj_root="$REPLY"
35       else
36         llvm_obj_root="$llvm_src_root"
37       fi
38       break
39     fi
40   done
41 fi
42 # Patch the LLVM_ROOT in configure.ac, if it needs it
43 cp configure.ac configure.bak
44 sed -e "s#^LLVM_SRC_ROOT=.*#LLVM_SRC_ROOT=\"$llvm_src_root\"#" \
45     -e "s#^LLVM_OBJ_ROOT=.*#LLVM_OBJ_ROOT=\"$llvm_obj_root\"#" configure.bak > configure.ac
46 echo "Regenerating aclocal.m4 with aclocal"
47 rm -f aclocal.m4
48 aclocal -I $llvm_m4 -I "$llvm_m4/.." || die "aclocal failed"
49 echo "Regenerating configure with autoconf"
50 autoconf --warnings=all -o ../configure configure.ac || die "autoconf failed"
51 cd ..
52 exit 0