summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BUILD/Makefile.am1
-rwxr-xr-xBUILD/SETUP.sh10
-rwxr-xr-xBUILD/compile-bintar81
-rw-r--r--BUILD/util.sh40
4 files changed, 124 insertions, 8 deletions
diff --git a/BUILD/Makefile.am b/BUILD/Makefile.am
index 8343f1e2f27..06e3d22c9f6 100644
--- a/BUILD/Makefile.am
+++ b/BUILD/Makefile.am
@@ -34,6 +34,7 @@ EXTRA_DIST = FINISH.sh \
compile-amd64-max \
compile-amd64-max-sci \
compile-amd64-valgrind-max \
+ compile-bintar \
compile-darwin-mwcc \
compile-dist \
compile-hpux11-parisc2-aCC \
diff --git a/BUILD/SETUP.sh b/BUILD/SETUP.sh
index 51a7d263131..2b3630217d4 100755
--- a/BUILD/SETUP.sh
+++ b/BUILD/SETUP.sh
@@ -86,15 +86,9 @@ set -e
#
path=`dirname $0`
. "$path/check-cpu"
+. "$path/util.sh"
-export AM_MAKEFLAGS
-# Default to a parallel build, but only if AM_MAKEFLAGS is not set.
-# (So buildbots can easily disable this behaviour if required.)
-if test -z "$AM_MAKEFLAGS"
-then
- AM_MAKEFLAGS="-j 6"
-fi
-
+get_make_parallel_flag
# SSL library to use.--with-ssl will select our bundled yaSSL
# implementation of SSL. To use openSSl you will nee too point out
diff --git a/BUILD/compile-bintar b/BUILD/compile-bintar
new file mode 100755
index 00000000000..8777cfb2670
--- /dev/null
+++ b/BUILD/compile-bintar
@@ -0,0 +1,81 @@
+#!/bin/bash
+#
+# MariaDB SQL server.
+# Copyright (C) 2010 Kristian Nielsen and Monty Program AB
+#
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+# This script's purpose is to build the binary tarball packages for MariaDB
+# (currently only on Linux systems).
+#
+# Thus BUILD/compile-bintar from the appropriate source tarball will reproduce
+# such a release, provided the build environment (gcc version etc.) matches
+# (use scripts/make_binary_distribution after running this script to actually
+# create the binary tarball package).
+#
+# Note that packages are built from source tarballs not bzr checkouts.
+# Therefore, this script assumes autotools have already been run.
+#
+# We link libc dynamically, otherwise we get lots of problems loading
+# .so files at runtime (either system stuff like NSS, or server
+# plugins).
+#
+# We link libgcc statically (and avoid linking libstdc++ at all by
+# CXX=gcc), to avoid reduce nasty library version dependencies.
+
+test -f Makefile && make distclean
+
+path=`dirname $0`
+. $path/util.sh
+
+SYSTEM_TYPE="$(uname -o)"
+MACHINE_TYPE="$(uname -m)"
+
+# We cannot have a slash '/' in tarfile name.
+SYSTEM_TYPE="$(echo ${SYSTEM_TYPE} | sed -e 's/GNU\///')"
+
+# Get correct options for architecture into CPUOPT.
+get_cpuopt
+# Get correct -j option into AM_MAKEFLAGS
+get_make_parallel_flag
+
+# Use gcc rather than g++ to avoid linking libstdc++.so (which we don't need).
+COMP="gcc -static-libgcc"
+FLAGS="-O2 -fno-omit-frame-pointer -g -pipe -Wall $CPUOPT"
+
+# Don't press on in case of error.
+set -e
+
+CC="$COMP" CXX="$COMP" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS" \
+ ./configure \
+ --prefix=/usr/local/mysql \
+ --exec-prefix=/usr/local/mysql \
+ --libexecdir=/usr/local/mysql/bin \
+ --localstatedir=/usr/local/mysql/data \
+ \
+ --with-comment="(MariaDB - http://mariadb.com/)" \
+ --with-system-type="${SYSTEM_TYPE}" \
+ --with-machine-type="${MACHINE_TYPE}" \
+ \
+ --enable-shared --enable-static \
+ --with-client-ldflags=-static --with-mysqld-ldflags=-static \
+ --enable-thread-safe-client --enable-local-infile --with-big-tables \
+ --without-docs --with-extra-charsets=all \
+ --with-libwrap --with-ssl --with-readline --with-libevent --with-zlib-dir=bundled \
+ --with-partition --with-embedded-server \
+ --with-plugins=max-no-ndb \
+ --without-plugin-innodb_plugin
+
+make $AM_MAKEFLAGS
diff --git a/BUILD/util.sh b/BUILD/util.sh
new file mode 100644
index 00000000000..63b42db1f83
--- /dev/null
+++ b/BUILD/util.sh
@@ -0,0 +1,40 @@
+# MariaDB SQL server.
+# Copyright (C) 2010 Kristian Nielsen and Monty Program AB
+#
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Setting cpu options.
+get_cpuopt () {
+ case "$(gcc -dumpmachine)" in
+ x86_64-*)
+ # gcc barfs on -march=... on x64
+ CPUOPT="-m64 -mtune=generic"
+ ;;
+ *)
+ # we'd use i586 to not trip up mobile/lowpower devices
+ CPUOPT="-m32 -march=i586 -mtune=generic"
+ ;;
+ esac
+ return 0
+}
+
+# Default to a parallel build, but only if AM_MAKEFLAGS is not set.
+# (So buildbots can easily disable this behaviour if required.)
+get_make_parallel_flag () {
+ if test -z "$AM_MAKEFLAGS"
+ then
+ AM_MAKEFLAGS="-j 6"
+ fi
+ return 0
+}