Skip to content
This repository has been archived by the owner on Sep 22, 2022. It is now read-only.

Commit

Permalink
configure: rework search NdbClient headers and libraries.
Browse files Browse the repository at this point in the history
Change-Id: Ia3419cc90b8f3c989dcf83a39665fde324f96de6
  • Loading branch information
erthink committed Aug 7, 2018
1 parent ff35eec commit 05ddd16
Showing 1 changed file with 42 additions and 19 deletions.
61 changes: 42 additions & 19 deletions configure.ac
Expand Up @@ -1922,44 +1922,67 @@ ol_link_ndb=no
if test $ol_enable_ndb != no ; then
mysql_cluster_path=$(find -L /opt /usr/local $(echo $PATH | tr ':' ' ') -maxdepth 2 -name 'mysql-cluster*' -type d 2>/dev/null -printf "%p/bin$PATH_SEPARATOR")
dnl echo "mysql_cluster_path=$mysql_cluster_path"
AC_PATH_PROG(MYSQL,mysql_config,no,$mysql_cluster_path)
if test "$MYSQL" = no ; then
AC_MSG_ERROR([could not locate mysql_config of mysql_cluster (NDB backend)])
MYSQL_CONFIG=
AC_PATH_PROG(MYSQL_CONFIG,mysql_config,,$mysql_cluster_path$PATH)
if test -z "$MYSQL_CONFIG"; then
AC_MSG_ERROR([could not locate mysql_config for NDB backend])
fi
NDB_LDFLAGS="`$MYSQL_CONFIG --libs_r`"
MYSQL_NDB_INC="`$MYSQL_CONFIG --include`"

AC_MSG_CHECKING([for ndbclient include directory])
MYSQL_NDB_INCDIR="`$MYSQL_CONFIG --variable=pkgincludedir`";
if test -z "$MYSQL_NDB_INCDIR"; then
MYSQL_NDB_INCDIR="`$MYSQL_CONFIG --include | sed 's/^-I /-I/g' | tr '[[:space:]]' '\n' | grep ^-I | sed 's/^-I//' | head -n 1`";
fi
if test -n "$MYSQL_NDB_INCDIR" -a -d "$MYSQL_NDB_INCDIR/storage/ndb/ndbapi"; then
NDB_INCLUDES="$MYSQL_NDB_INC $MYSQL_NDB_INC/storage/ndb $MYSQL_NDB_INC/storage/ndb/ndbapi"
AC_MSG_RESULT([$MYSQL_NDB_INCDIR/storage/ndb/ndbapi])
else
AC_MSG_ERROR([could not locate .../storage/ndb/ndbapi for NDB backend])
fi

SQL_INC=`$MYSQL --include`
NDB_INCLUDES="$SQL_INC $SQL_INC/storage/ndb $SQL_INC/storage/ndb/ndbapi"
AC_MSG_CHECKING([for ndbclient libraries directory])
MYSQL_NDB_LIBDIR="`$MYSQL_CONFIG --variable=pkglibdir`";
if test -z "$MYSQL_NDB_LIBDIR"; then
MYSQL_NDB_LIBDIR="`$MYSQL_CONFIG --libs_r | sed 's/^-L /-L/g' | tr '[[:space:]]' '\n' | grep ^-L | sed 's/^-L//'`"
fi
if test -n "$MYSQL_NDB_LIBDIR" -a -d "$MYSQL_NDB_LIBDIR"; then
AC_MSG_RESULT([$MYSQL_NDB_LIBDIR])
else
AC_MSG_RESULT([none])
fi
NDB_LIBS="$NDB_LDFLAGS -lndbclient -lstdc++"

AC_MSG_CHECKING(for NdbApi.hpp)
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$NDB_INCLUDES"
AC_MSG_CHECKING(for NdbApi.hpp)
AC_PREPROC_IFELSE(
[AC_LANG_SOURCE([[#include <NdbApi.hpp>]])],
AC_MSG_RESULT(yes),
AC_MSG_ERROR([could not locate NdbApi headers])
)
CPPFLAGS="$save_CPPFLAGS"

SQL_LIB="`$MYSQL --libs_r`"
NDB_LIBS="$SQL_LIB -lndbclient -lstdc++"

save_LDFLAGS="$LDFLAGS"
save_LIBS="$LIBS"
LDFLAGS="$SQL_LIB"
AC_CHECK_LIB(ndbclient,ndb_init,[: $SQL_LIB],[
LDFLAGS="$LDFLAGS $NDB_LDFLAGS"
AC_CHECK_LIB(ndbclient,ndb_init,[: $NDB_LDFLAGS],[
AC_MSG_ERROR([could not locate ndbclient library])
],[-lstdc++])
LIBS="$save_LIBS"
LDFLAGS="$save_LDFLAGS"

AC_MSG_CHECKING([ndb library present in ld.so search path])
NDB_LIBDIR="`$MYSQL --libs_r | sed 's/^-L /-L/g' | tr '[[:space:]]' '\n' | grep ^-L | sed 's/^-L//'`"
if ldconfig -v 2>/dev/null | grep -q "^$NDB_LIBDIR:"; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no, -rpath option will be passed to linker)
NDB_LDFLAGS="$NDB_LDFLAGS -Wl,-rpath,$NDB_LIBDIR"
NDB_RDIR="$NDB_RDIR -R$NDB_LIBDIR"
NDB_RDIR=
if test -n "$MYSQL_NDB_LIBDIR"; then
AC_MSG_CHECKING([ndbclient library present in ld.so search path])
if ldconfig -v 2>/dev/null | grep -q "^$MYSQL_NDB_LIBDIR:"; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no, -rpath option will be passed to linker)
NDB_LDFLAGS="$NDB_LDFLAGS -Wl,-rpath,$MYSQL_NDB_LIBDIR"
NDB_RDIR="-R$MYSQL_NDB_LIBDIR"
fi
fi
fi

Expand Down

0 comments on commit 05ddd16

Please sign in to comment.