This bug is also present in MSVC10. Requested by Elrood on IRC.
[oota-llvm.git] / build-for-llvm-top.sh
index a5ddb79b8038dae2c6d7dbe371d35ae3344e9c79..78e3ed87f092fdb4f2fce49cd9c3e45f72a0dfa9 100755 (executable)
@@ -7,17 +7,60 @@
 
 # Process the options passed in to us by the build script into standard
 # variables. 
-process_builder_args "$@"
+process_arguments "$@"
 
-# See if we have previously been configured by sensing the presense
+# First, see if the build directory is there. If not, create it.
+build_dir="$LLVM_TOP/build.llvm"
+if test ! -d "$build_dir" ; then
+  mkdir -p "$build_dir"
+fi
+
+# See if we have previously been configured by sensing the presence
 # of the config.status scripts
-if test ! -x "config.status" ; then
+config_status="$build_dir/config.status"
+if test ! -f "$config_status" -o "$config_status" -ot "$0" ; then
   # We must configure so build a list of configure options
   config_options="--prefix=$PREFIX --with-llvmgccdir=$PREFIX"
+  if test "$OPTIMIZED" -eq 1 ; then
+    config_options="$config_options --enable-optimized"
+  else
+    config_options="$config_options --disable-optimized"
+  fi
+  if test "$DEBUG" -eq 1 ; then
+    config_options="$config_options --enable-debug"
+  else
+    config_options="$config_options --disable-debug"
+  fi
+  if test "$ASSERTIONS" -eq 1 ; then
+    config_options="$config_options --enable-assertions"
+  else
+    config_options="$config_options --disable-assertions"
+  fi
+  if test "$CHECKING" -eq 1 ; then
+    config_options="$config_options --enable-expensive-checks"
+  else
+    config_options="$config_options --disable-expensive-checks"
+  fi
+  if test "$DOXYGEN" -eq 1 ; then
+    config_options="$config_options --enable-doxygen"
+  else
+    config_options="$config_options --disable-doxygen"
+  fi
+  if test "$THREADS" -eq 1 ; then
+    config_options="$config_options --enable-threads"
+  else
+    config_options="$config_options --disable-threads"
+  fi
   config_options="$config_options $OPTIONS_DASH $OPTIONS_DASH_DASH"
+  src_dir=`pwd`
+  cd "$build_dir"
   msg 0 Configuring $module with:
-  msg 0 "  ./configure" $config_options
-  ./configure $config_options || (echo "Can't configure llvm" ; exit 1)
+  msg 0 "  $src_dir/configure" $config_options
+  $src_dir/configure $config_options || \
+    die $? "Configuring $module module failed"
+else
+  msg 0 Module $module already configured, ignoring configure options.
+  cd "$build_dir"
 fi
 
 msg 0 Building $module with: