← Back to team overview

maria-developers team mailing list archive

bzr commit into MariaDB 5.1, with Maria 1.5:maria branch (knielsen:2788)

 

#At lp:maria

 2788 knielsen@xxxxxxxxxxxxxxx	2010-01-07
      Add BUILD/compile-bintar, which builds MariaDB with correct options for a binary tarball release.
      added:
        BUILD/compile-bintar
        BUILD/util.sh
      modified:
        BUILD/SETUP.sh

per-file messages:
  BUILD/SETUP.sh
    Move common code to separate file to enable sharing.
  BUILD/compile-bintar
    Add script to build with correct flags and ./configure options for bintar package.
  BUILD/util.sh
    Move common code to separate file to enable sharing.
=== modified file 'BUILD/SETUP.sh'
--- a/BUILD/SETUP.sh	2009-12-06 17:34:54 +0000
+++ b/BUILD/SETUP.sh	2010-01-07 11:24:49 +0000
@@ -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

=== added file 'BUILD/compile-bintar'
--- a/BUILD/compile-bintar	1970-01-01 00:00:00 +0000
+++ b/BUILD/compile-bintar	2010-01-07 11:24:49 +0000
@@ -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

=== added file 'BUILD/util.sh'
--- a/BUILD/util.sh	1970-01-01 00:00:00 +0000
+++ b/BUILD/util.sh	2010-01-07 11:24:49 +0000
@@ -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
+}