diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /support-files/mysql.m4 | |
parent | Initial commit. (diff) | |
download | mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.tar.xz mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'support-files/mysql.m4')
-rw-r--r-- | support-files/mysql.m4 | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/support-files/mysql.m4 b/support-files/mysql.m4 new file mode 100644 index 00000000..0a7034f6 --- /dev/null +++ b/support-files/mysql.m4 @@ -0,0 +1,109 @@ +# Copyright (C) 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-1335 USA + +AC_DEFUN([_MYSQL_CONFIG],[ + AC_ARG_WITH([mysql-config], + AS_HELP_STRING([--with-mysql-config=PATH], [A path to mysql_config script]), + [mysql_config="$withval"], [mysql_config=mysql_config]) +]) + +dnl +dnl Usage: +dnl +dnl MYSQL_CLIENT([version], [client|thread-safe|embedded]) +dnl +dnl Two optional arguments: +dnl first: The minimal version of the MySQL to use +dnl if not specified, any version will be accepted. +dnl The version should be specified as three numbers, +dnl without suffixes. E.g. 4.10.15 or 5.0.3 +dnl second: force the specified library flavor to be selected, +dnl if not specified, a user will be able to choose +dnl between client (non-thread-safe) and embedded +dnl +dnl On successful execution sets MYSQL_CLIENT_CFLAGS and +dnl MYSQL_CLIENT_LIBS shell variables and makes substitutions +dnl out of them (calls AC_SUBST) +dnl + +AC_DEFUN([MYSQL_CLIENT],[ + AC_REQUIRE([_MYSQL_CONFIG]) + AC_MSG_CHECKING([for MySQL]) + ifelse([$2], [client], + [mysql_libs=--libs mysql_cflags=--cflags], + [$2], [thread-safe], + [mysql_libs=--libs_r mysql_cflags=--cflags], + [$2], [embedded], + [mysql_libs=--libmysqld-libs mysql_cflags=--cflags], + [$2], [], [ + AC_ARG_WITH([mysql-library], + AS_HELP_STRING([--with-mysql-library], ['client' or 'embedded']), + [mysql_lib="$withval"], [mysql_lib=client]) +[ + case "$mysql_lib" in + client) mysql_libs=--libs mysql_cflags=--cflags ;; + embedded) mysql_libs=--libmysqld-libs mysql_cflags=--cflags ;; + *) ]AC_MSG_ERROR([Bad value for --with-mysql-library])[ + esac +] + ], + [AC_FATAL([Bad second (library flavor) argument to MYSQL_CLIENT])]) +[ + mysql_version=`$mysql_config --version` + if test -z "$mysql_version" ; then + ]AC_MSG_ERROR([Cannot execute $mysql_config])[ + fi +] + ifelse([$1], [], [], [ + ifelse(regexp([$1], [^[0-9][0-9]?\.[0-9][0-9]?\.[0-9][0-9]?$]), -1, + [AC_FATAL([Bad first (version) argument to MYSQL_CLIENT])], [ +dnl +dnl Transformation below works as follows: +dnl assume, we have a number 1.2.3-beta +dnl *a* line removes the suffix and adds first and last dot to the version: +dnl .1.2.3. +dnl *b* line adds a 0 to a "single digit surrounded by dots" +dnl .01.2.03. +dnl note that the pattern that matched .1. has eaten the dot for .2. +dnl and 2 still has no 0 +dnl *c* we repeat the same replacement as in *b*, matching .2. this time +dnl .01.02.03. +dnl the last replacement removes all dots +dnl 010203 +dnl giving us a number we can compare with +dnl + mysql_ver=`echo ${mysql_version}|dnl + sed 's/[[-a-z]].*//; s/.*/.&./;dnl *a* + s/\.\([[0-9]]\)\./.0\1./g;dnl *b* + s/\.\([[0-9]]\)\./.0\1./g;dnl *c* + s/\.//g'` + if test "$mysql_ver" -lt]dnl +dnl the same as sed transformation above, without suffix-stripping, in m4 + patsubst(patsubst(patsubst(.[$1]., [\.\([0-9]\)\.], [.0\1.]), [\.\([0-9]\)\.], [.0\1.]), [\.], [])[ ; then + AC_MSG_ERROR([MySQL version $mysql_version is too low, minimum of $1 is required]) + fi + ])]) + + MYSQL_CLIENT_CFLAGS=`$mysql_config $mysql_cflags` + MYSQL_CLIENT_LIBS=`$mysql_config $mysql_libs` + AC_SUBST(MYSQL_CLIENT_CFLAGS) + AC_SUBST(MYSQL_CLIENT_LIBS) + + # should we try to build a test program ? + + AC_MSG_RESULT([$mysql_version]) +]) + |