109 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # Copyright (C) 2007 MySQL 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., 51 | ||
|  | # Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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]) | ||
|  | ]) | ||
|  | 
 |