summaryrefslogtreecommitdiff
path: root/BUILD/compile-solaris-sparc-purify
diff options
context:
space:
mode:
authorunknown <kent@mysql.com>2005-01-31 10:24:33 +0100
committerunknown <kent@mysql.com>2005-01-31 10:24:33 +0100
commitdb7c18c351ffa4f4fc60735930b1c1827fead8c2 (patch)
treed4b1043d5e7242270e333d2955bb2fd4058a013e /BUILD/compile-solaris-sparc-purify
parent98f97f22603bed9d134a6312471a183d70fba5ba (diff)
parentf787145fc0a1f2d166cb848bfbc756ed553c0e68 (diff)
downloadmariadb-git-db7c18c351ffa4f4fc60735930b1c1827fead8c2.tar.gz
Merge
Diffstat (limited to 'BUILD/compile-solaris-sparc-purify')
-rwxr-xr-xBUILD/compile-solaris-sparc-purify103
1 files changed, 92 insertions, 11 deletions
diff --git a/BUILD/compile-solaris-sparc-purify b/BUILD/compile-solaris-sparc-purify
index c895d99c2cf..dd9ed2f7292 100755
--- a/BUILD/compile-solaris-sparc-purify
+++ b/BUILD/compile-solaris-sparc-purify
@@ -1,29 +1,110 @@
#! /bin/sh
+mode=""
+cxxfilt=""
+
+# For g++ 3.X, the PurifyPlus tools needs a program named "cxxfilt",
+# "c++file" or similar. It is part of libtool. If not found, you can
+# specify the path to it.
+
while test $# -gt 0
do
case "$1" in
- --debug) EXTRA_CONFIG_FLAGS=--with-debug; shift ;;
+ --debug) EXTRA_CONFIG_FLAGS=--with-debug ;;
+ --purify) mode=purify ;;
+ --purecov*) mode=purecov ;;
+ --quantify) mode=quantify ;;
+ --cxxfilt) shift ; cxxfilt=$1 ;;
-h | --help )
- echo "Usage: $0 [-h|-n] [configure-options]"
- echo " --debug Compile with DBUG enabled"
+ echo "Usage: $0 [ options ]"
+ echo "Where the 'options' are"
+ echo " --help | -h Display this help"
+ echo " --debug Compile with DBUG enabled"
+ echo " --purify Only prepare for Purify"
+ echo " --purecov Only prepare for PureCover"
+ echo " --quantify Only prepare for Quantify"
+ echo " --cxxfilt <cxxfilt> Path to cxxfilt/c++filt program"
+ echo " This program is needed for gcc 3.X"
exit 0 ;;
- *) echo "No such option '$1'" ; exit ;;
+ *) echo "No such option '$1'" ; exit 1 ;;
esac
+ shift
done
gmake -k clean || true
/bin/rm -f */.deps/*.P config.cache
aclocal && autoheader && aclocal && automake && autoconf
-# (cd bdb/dist && sh s_all)
+(cd bdb/dist && sh s_all)
(cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
-CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_purify -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --without-berkeley-db --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS
+CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_purify -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-berkeley-db --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS
gmake -j 4
-cd sql ; mv mysqld mysqld-org ;
-gmake CXXLD="purify -best-effort g++" mysqld ; mv mysqld mysqld-purify
-gmake CXXLD="quantify -best-effort g++" mysqld ; mv mysqld mysqld-quantify
-gmake CXXLD="purecov -best-effort g++" mysqld ; mv mysqld mysqld-purecov
-mv mysqld-org mysqld
+# ----------------------------------------------------------------------
+
+#set -x
+
+purifying_binaries ()
+{
+ while test $1
+ do
+ dir=$1
+ shift
+ target=$1
+ shift
+ binary=$1
+ shift
+
+ opts=""
+ if [ -n "$cxxfilt" ] ; then
+ opts="$opts -demangle-program=$cxxfilt"
+ fi
+ opts="$opts -best-effort g++"
+
+ back=`pwd`
+ cd $dir
+
+ # Because of libtool magic, the target and binary
+ # created might not be the same. To trigger rebuild,
+ # we need to move them both.
+
+ mv $binary $binary-old
+ if [ -f $target ] ; then
+ mv $target $target-old
+ fi
+
+ if [ -n "$mode" -a $mode = purify ] ; then
+ gmake CXXLD="purify $opts" $target
+ mv $binary $binary-purify
+ fi
+
+ if [ -n "$mode" -a $mode = quantify ] ; then
+ gmake CXXLD="quantify $opts" $target
+ mv $binary $binary-quantify
+ fi
+
+ if [ -n "$mode" -a $mode = purecov ] ; then
+ gmake CXXLD="purecov $opts" $target
+ mv $binary $binary-purecov
+ fi
+
+ mv $binary-old $binary
+ if [ -f $target-old ] ; then
+ mv $target-old $target
+ fi
+
+ cd $back
+ done
+}
+
+
+purifying_binaries \
+ sql mysqld mysqld \
+ client mysqltest .libs/mysqltest \
+ tests mysql_client_test mysql_client_test \
+ libmysqld/examples mysqltest_embedded mysqltest_embedded \
+ libmysqld/examples mysql_client_test_embedded mysql_client_test_embedded
+
+# ----------------------------------------------------------------------
+