mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 12:56:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			110 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#! /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 ;;
 | 
						|
    --purify)   mode=purify ;;
 | 
						|
    --purecov*) mode=purecov ;;
 | 
						|
    --quantify) mode=quantify ;;
 | 
						|
    --cxxfilt)  shift ; cxxfilt=$1 ;;
 | 
						|
    -h | --help )
 | 
						|
      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 1 ;;
 | 
						|
  esac
 | 
						|
  shift
 | 
						|
done
 | 
						|
 | 
						|
make -k maintainer-clean || true 
 | 
						|
/bin/rm -f */.deps/*.P config.cache
 | 
						|
 
 | 
						|
path=`dirname $0`
 | 
						|
. "$path/autorun.sh"
 | 
						|
 | 
						|
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused  -DHAVE_valgrind -DEXTRA_DEBUG -O2" CXX=g++ 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 -DHAVE_valgrind -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS
 | 
						|
 | 
						|
make -j 4
 | 
						|
 | 
						|
# ----------------------------------------------------------------------
 | 
						|
 | 
						|
#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"
 | 
						|
 | 
						|
    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
 | 
						|
      make CCLD="purify   $opts gcc"  CXXLD="purify   $opts g++"  $target
 | 
						|
      mv $binary $binary-purify
 | 
						|
    fi
 | 
						|
 | 
						|
    if [ -n "$mode" -a $mode = quantify ] ; then
 | 
						|
      make CCLD="quantify $opts gcc"  CXXLD="quantify $opts g++"  $target
 | 
						|
      mv $binary $binary-quantify
 | 
						|
    fi
 | 
						|
 | 
						|
    if [ -n "$mode" -a $mode = purecov ] ; then
 | 
						|
      make CCLD="purecov  $opts gcc"  CXXLD="purecov  $opts g++"  $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
 | 
						|
 | 
						|
# ----------------------------------------------------------------------
 | 
						|
 |