1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*-
dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
dnl
dnl Copyright (C) 2010 Monty Taylor
dnl This file is free software; Sun Microsystems
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
AC_DEFUN([PANDORA_WITH_MYSQL],[
AC_ARG_WITH([mysql],
[AS_HELP_STRING([--with-mysql=PATH],
[path to mysql_config binary or mysql prefix dir])],
[with_mysql=$withval],
[with_mysql=":"])
dnl There are three possibilities:
dnl 1) nothing is given: we will search for mysql_config in PATH
dnl 2) the location of mysql_config is given: we'll use that to determine
dnl 3) a directory argument is given: that will be mysql_base
dnl option 1: nothing, we need to insert something into MYSQL_CONFIG
AS_IF([test "x$with_mysql" = "x:"],[
AC_CHECK_PROGS(MYSQL_CONFIG,[mysql_config])
],[
MYSQL_CONFIG="${with_mysql}"
])
AC_CACHE_CHECK([for MySQL Base Location],[pandora_cv_mysql_base],[
dnl option 2: something in MYSQL_CONFIG now, use that to get a base dir
AS_IF([test -f "${MYSQL_CONFIG}" -a -x "${MYSQL_CONFIG}"],[
pandora_cv_mysql_base=$(dirname $(MYSQL_CONFIG --include | sed 's/-I//'))
],[
dnl option 1: a directory
AS_IF([test -d $with_mysql],[pandora_cv_mysql_base=$with_mysql],[
pandora_cv_mysql_base="not found"
])
])
])
])
AC_DEFUN([_PANDORA_SEARCH_LIBMYSQLCLIENT],[
AC_REQUIRE([AC_LIB_PREFIX])
AC_ARG_ENABLE([libmysqlclient],
[AS_HELP_STRING([--disable-libmysqlclient],
[Build with libmysqlclient support @<:@default=on@:>@])],
[ac_enable_libmysqlclient="$enableval"],
[ac_enable_libmysqlclient="yes"])
AS_IF([test "x$ac_enable_libmysqlclient" = "xyes"],[
AC_LIB_HAVE_LINKFLAGS(mysqlclient_r,,[
#include <mysql/mysql.h>
],[
MYSQL mysql;
])],[
ac_cv_libmysqlclient_r="no"
])
AM_CONDITIONAL(HAVE_LIBMYSQLCLIENT, [test "x${ac_cv_libmysqlclient_r}" = "xyes"])
AC_DEFUN([PANDORA_HAVE_LIBMYSQLCLIENT],[
AC_REQUIRE([_PANDORA_SEARCH_LIBMYSQLCLIENT])
])
AC_DEFUN([PANDORA_REQUIRE_LIBMYSQLCLIENT],[
AC_REQUIRE([PANDORA_HAVE_LIBMYSQLCLIENT])
AS_IF([test "x${ac_cv_libmysqlclient_r}" = "xno"],
AC_MSG_ERROR([libmysqlclient_r is required for ${PACKAGE}]))
])
AS_IF([test "x$MYSQL_CONFIG" = "xISDIR"],[
IBASE="-I${with_mysql}"
MYSQL_CONFIG="${with_mysql}/scripts/mysql_config"
ADDIFLAGS="$IBASE/include "
ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb/include/ndbapi "
ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb/include/mgmapi "
ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb/include "
LDFLAGS="-L${with_mysql}/storage/ndb/src/.libs -L${with_mysql}/libmysql_r/.libs/ -L${with_mysql}/mysys/.libs -L${with_mysql}/mysys -L${with_mysql}/strings/.libs -L${with_mysql}/strings "
],[
IBASE=`$MYSQL_CONFIG --include`
ADDIFLAGS=""
# add regular MySQL C flags
ADDCFLAGS=`$MYSQL_CONFIG --cflags`
# add NdbAPI specific C flags
LDFLAGS="$LDFLAGS "`$MYSQL_CONFIG --libs_r | sed 's/-lmysqlclient_r//'`
])
ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb"
ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb/ndbapi"
ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb/mgmapi"
ADDIFLAGS="$ADDIFLAGS $IBASE/ndb"
ADDIFLAGS="$ADDIFLAGS $IBASE/ndb/ndbapi"
ADDIFLAGS="$ADDIFLAGS $IBASE/ndb/mgmapi"
ADDIFLAGS="$ADDIFLAGS $IBASE"
CFLAGS="$CFLAGS $ADDCFLAGS $ADDIFLAGS"
CXXFLAGS="$CXXFLAGS $ADDCFLAGS $ADDIFLAGS"
MYSQL_INCLUDES="$IBASE $ADDIFLAGS"
dnl AC_CHECK_LIB([mysqlclient_r],[safe_mutex_init],,[AC_MSG_ERROR([Can't link against libmysqlclient_r])])
dnl First test to see if we can run with only ndbclient
AC_CHECK_LIB([ndbclient],[decimal_bin_size],,[dnl else
LDFLAGS="$LDFLAGS -lmysys -ldbug"
AC_CHECK_LIB([mysqlclient_r],[safe_mutex_init],,)
AC_CHECK_LIB([ndbclient],[ndb_init],,[
AC_MSG_ERROR([Can't link against libndbclient])])
AC_CHECK_LIB([mystrings],[decimal_bin_size],,[
AC_MSG_ERROR([Can't find decimal_bin_size])])])
AC_MSG_CHECKING(for NdbApi headers)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <NdbApi.hpp>]], [[int attr=NdbTransaction::Commit; ]])],[ndbapi_found="yes"],[])
AS_IF([test "$ndbapi_found" = "yes"],
[AC_MSG_RESULT(found)],
[AC_MSG_ERROR([Couldn't find NdbApi.hpp!])])
AC_MSG_CHECKING(for NDB_LE_ThreadConfigLoop)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mgmapi.h>]], [[int attr=NDB_LE_ThreadConfigLoop; ]])],[have_cge63="yes"],[])
AS_IF([test "$have_cge63" = "yes"],
[AC_MSG_RESULT(found)
HAVE_CGE63="-DCGE63"
AC_SUBST(HAVE_CGE63)],
[AC_MSG_RESULT(missing)])
LDFLAGS="$LDFLAGS $LIBS"
MYSQL_MAJOR_VERSION=`$MYSQL_CONFIG --version | sed -e 's/\.//g' -e 's/-//g' -e 's/[A-Za-z]//g' | cut -c1-2`
case "$MYSQL_MAJOR_VERSION" in
50) AC_DEFINE(MYSQL_50, [1], [mysql5.0])
;;
51) AC_DEFINE(MYSQL_51, [1], [mysql5.1])
;;
*) echo "Unsupported version of MySQL Detected!"
;;
esac
AC_SUBST(MYSQL_MAJOR_VERSION)
AC_SUBST(MYSQL_CONFIG)
])
|