#!/bin/sh

# Copyright (c) 2004, 2005, 2007 MySQL AB
# Use is subject to license terms
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

if [ ! -f "sql/mysqld.cc" ]; then
  echo "You must run this script from the MySQL top-level directory."
  exit 1
fi

# -fast         Expand into a set of compiler options to result in
#               improved application run-time.  Options include: +O3,
#               +Onolooptransform, +Olibcalls, +FPD, +Oentryschedule,
#               +Ofastaccess.
# +O4           Perform level 3 as well as doing link time optimizations.
#               Also sends +Oprocelim and +Ofastaccess to the linker
#               (see ld(1)).

release_flags="-fast +O3"

# -z             Do not bind anything to address zero.  This option
#                allows runtime detection of null pointers.  See the
#                note on pointers below.
cflags="-g -z +O0"
cxxflags="-g0 -z +O0"
debug_configure_options="--with-debug"

while [ "$#" != 0 ]; do 
  case "$1" in
    --help)
      echo "Usage: $0 [options]"
      echo "Options:" 
      echo "--help                print this message"
      echo "--debug               build debug binary [default] "
      echo "--release             build optimised binary"
      echo "-32                   build 32 bit binary [default]"
      echo "-64                   build 64 bit binary"
      exit 0
      ;;
    --debug)
      echo "Building debug binary"
      ;;
    --release)
      echo "Building release binary"
      cflags="$release_flags"
      cxxflags="$release_flags"
      debug_configure_options=""
      ;;
    -32)
      echo "Building 32-bit binary"
      ;;
    -64)
      echo "Building 64-bit binary"
      cflags="$cflags +DA2.0W +DD64"
      cxxflags="$cxxflags +DA2.0W +DD64"
      ;;
    *)
      echo "$0: invalid option '$1'; use --help to show usage"
      exit 1
      ;;
  esac
  shift
done


set -x
make maintainer-clean

path=`dirname $0`
. "$path/autorun.sh"

CC=cc CXX=aCC CFLAGS="$cflags" CXXFLAGS="$cxxflags" \
./configure --prefix=/usr/local/mysql --disable-shared \
            --with-extra-charsets=complex --enable-thread-safe-client \
            --without-extra-tools $debug_configure_options \
						--disable-dependency-tracking

gmake 
