#
#===------------------------------------------------------------------------===#
-set -e
+set -e # Exit if any command fails
+set -x # Show commands as they are executed
Release=""
Release_no_dot=""
RC=""
do_checkout="yes"
do_ada="no"
+do_objc="yes"
do_fortran="yes"
do_64bit="yes"
BuildDir="`pwd`"
-# Figure out how many make processes to run.
-NumJobs=`sysctl -n hw.activecpu 2> /dev/null || true`
-if [ -z "$NumJobs" ]; then
- NumJobs=`sysctl -n hw.ncpu 2> /dev/null || true`
-fi
-if [ -z "$NumJobs" ]; then
- NumJobs=`grep -c processor /proc/cpuinfo 2> /dev/null || true`
-fi
-
function usage() {
echo "usage: `basename $0` -release X.Y -rc NUM [OPTIONS]"
echo ""
echo " -build-dir DIR Directory to perform testing in. [default: pwd]"
echo " -no-checkout Don't checkout the sources from SVN."
echo " -no-64bit Don't test the 64-bit version. [default: yes]"
- echo " -ada Build Ada. [default: no]"
- echo " -disable-fortran Disable Fortran build. [default: build]"
+ echo " -enable-ada Build Ada. [default: disable]"
+ echo " -disable-objc Disable ObjC build. [default: enable]"
+ echo " -disable-fortran Disable Fortran build. [default: enable]"
}
while [ $# -gt 0 ]; do
-no-64bit | --no-64bit )
do_64bit="no"
;;
- -ada | --ada )
+ -enable-ada | --enable-ada )
do_ada="yes"
;;
+ -disable-objc | --disable-objc )
+ do_objc="no"
+ ;;
-disable-fortran | --disable-fortran )
echo "WARNING: Do you *really* need to disable Fortran?"
sleep 5
exit 1
fi
+# Figure out how many make processes to run.
+if [ -z "$NumJobs" ]; then
+ NumJobs=`sysctl -n hw.activecpu 2> /dev/null || true`
+fi
+if [ -z "$NumJobs" ]; then
+ NumJobs=`sysctl -n hw.ncpu 2> /dev/null || true`
+fi
+if [ -z "$NumJobs" ]; then
+ NumJobs=`grep -c processor /proc/cpuinfo 2> /dev/null || true`
+fi
if [ -z "$NumJobs" ]; then
NumJobs=3
fi
llvmCore_srcdir=$BuildDir/llvmCore-$Release-rc$RC.src
llvmgcc42_srcdir=$BuildDir/llvmgcc42-$Release-rc$RC.src
-# Location of log files.
-LogDirName="$Release-rc$RC.logs"
-LogDir=$BuildDir/$LogDirName
-mkdir -p $LogDir
-
# SVN URLs for the sources.
Base_url="http://llvm.org/svn/llvm-project"
llvmCore_RC_url="$Base_url/llvm/tags/RELEASE_$Release_no_dot/rc$RC"
case $Flavor in
Release | Release-64 )
Optimized="yes"
- Assertions="yes"
+ Assertions="no"
;;
- Release-Asserts )
+ Release+Asserts )
Optimized="yes"
- Assertions="no"
+ Assertions="yes"
;;
Debug )
Optimized="no"
cd $ObjDir
echo "# Configuring llvm $Release-rc$RC $Flavor"
- echo "# $llvmCore_srcdir/configure --prefix=$llvmCore_installdir \
+ echo "# $llvmCore_srcdir/configure --prefix=$InstallDir \
--enable-optimized=$Optimized \
--enable-assertions=$Assertions \
--with-llvmgccdir=$llvmgccDir"
$llvmCore_srcdir/configure --prefix=$InstallDir \
--enable-optimized=$Optimized \
--enable-assertions=$Assertions \
- --with-llvmgccdir=$llvmgccDir \
- > $LogDir/llvm.configure.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+ --with-llvmgccdir=$llvmgccDir
cd -
}
cd $ObjDir
echo "# Compiling llvm $Release-rc$RC $Flavor"
echo "# make -j $NumJobs VERBOSE=1 $ExtraOpts"
- make -j $NumJobs VERBOSE=1 $ExtraOpts $CompilerFlags \
- > $LogDir/llvm.make.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+ make -j $NumJobs VERBOSE=1 $ExtraOpts $CompilerFlags
echo "# Installing llvm $Release-rc$RC $Flavor"
echo "# make install"
- make install \
- > $LogDir/llvm.install.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+ make install
cd -
}
ObjDir="$3"
cd $ObjDir
- make check \
- > $LogDir/llvm.check.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
- make -C tools/clang test \
- > $LogDir/clang.check.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
- make unittests \
- > $LogDir/llvm.unittests.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+ make check
+ make -C tools/clang test
+ make unittests
cd -
}
InstallDir="$4"
llvmObjDir="$5"
- languages="c,c++,objc,obj-c++"
+ languages="c,c++"
+ if [ "$do_objc" = "yes" ]; then
+ languages="$languages,objc,obj-c++"
+ fi
if [ "$do_fortran" = "yes" ]; then
languages="$languages,fortran"
fi
echo "# Configuring llvm-gcc $Release-rc$RC $Flavor"
echo "# $llvmgcc42_srcdir/configure --prefix=$InstallDir \
--program-prefix=llvm- --enable-llvm=$llvmObjDir \
- --enable-languages=$languages \
- --with-gxx-include-dir=/usr/include/c++/4.2.1"
+ --enable-languages=$languages"
$llvmgcc42_srcdir/configure --prefix=$InstallDir \
--program-prefix=llvm- --enable-llvm=$llvmObjDir \
- --enable-languages=$languages \
- --with-gxx-include-dir=/usr/include/c++/4.2.1 \
- > $LogDir/llvm-gcc.configure.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+ --enable-languages=$languages
cd -
}
cd $ObjDir
echo "# Compiling llvm-gcc $Release-rc$RC $Flavor"
echo "# make -j $NumJobs bootstrap LLVM_VERSION_INFO=$Release"
- make -j $NumJobs bootstrap LLVM_VERSION_INFO=$Release $CompilerFlags \
- > $LogDir/llvm-gcc.make.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+ make -j $NumJobs bootstrap LLVM_VERSION_INFO=$Release $CompilerFlags
echo "# Installing llvm-gcc $Release-rc$RC $Flavor"
echo "# make install"
- make install \
- > $LogDir/llvm-gcc.install.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+ make install
cd -
}
export_sources
fi
-(
-Flavors="Debug Release Release-Asserts"
+Flavors="Debug Release Release+Asserts"
if [ "$do_64bit" = "yes" ]; then
Flavors="$Flavors Release-64"
fi
echo "# Testing - built with llvmgcc42"
test_llvmCore 2 $Flavor $llvmCore_phase2_objdir
done
-) 2>&1 | tee $LogDir/testing.$Release-rc$RC.log
# Woo hoo!
echo "### Testing Finished ###"
-echo "### Logs: $LogDir"
exit 0