mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +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
 | |
| 
 | |
| # ----------------------------------------------------------------------
 | |
| 
 | 
