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