You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
376 lines
11 KiB
376 lines
11 KiB
dnl ========================================
|
|
dnl checks for MySQL
|
|
dnl taken form KDEDB
|
|
dnl ========================================
|
|
|
|
AC_ARG_ENABLE(mysql,
|
|
AC_HELP_STRING([--enable-mysql],[build MySQL-plugin [default=yes]]),
|
|
mysql_plugin=$enableval, mysql_plugin=yes)
|
|
|
|
if test "x$mysql_plugin" = "xyes"; then
|
|
compile_mysql_plugin="yes"
|
|
else
|
|
compile_mysql_plugin="no"
|
|
fi
|
|
|
|
AC_ARG_WITH(mysql_includes,
|
|
AC_HELP_STRING([--with-mysql-includes=DIR],[use MySQL-includes installed in this directory]),
|
|
[
|
|
ac_mysql_incdir=$withval
|
|
], ac_mysql_incdir=
|
|
)
|
|
|
|
AC_ARG_WITH(mysql_libraries,
|
|
AC_HELP_STRING([--with-mysql-libraries=DIR],[use MySQL-libs installed in this directory ]),
|
|
[
|
|
ac_mysql_libdir=$withval
|
|
], ac_mysql_libdir=
|
|
)
|
|
|
|
dnl ==============================================
|
|
dnl check whether MySQL should be compiled
|
|
dnl and where headers and libraries are installed
|
|
dnl if present compile mysql-plugin
|
|
dnl ==============================================
|
|
|
|
AC_MSG_CHECKING([for MySQL])
|
|
|
|
if test "$compile_mysql_plugin" = "yes"; then
|
|
if test -n "$ac_mysql_incdir" -o -n "$ac_mysql_libdir"; then
|
|
dnl *** Configure arguments for includes or libs given ***
|
|
dnl *** and MySQL not explicitly disabled. ***
|
|
dnl *** Check that the paths given to configure are valid ***
|
|
AC_MSG_CHECKING([for MySQL headers])
|
|
mysql_incdirs="$ac_mysql_incdir /usr/local/include /usr/include"
|
|
AC_FIND_FILE(mysql/mysql.h, $mysql_incdirs, mysql_incdir)
|
|
if test -r $mysql_incdir/mysql/mysql.h; then
|
|
MYSQL_INC=$mysql_incdir
|
|
AC_MSG_RESULT([$MYSQL_INC])
|
|
AC_SUBST(MYSQL_INC)
|
|
else
|
|
compile_mysql_plugin="no"
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for MySQL libraries])
|
|
mysql_libdirs="$ac_mysql_libdir /usr/local/lib$tdelibsuff /usr/lib$tdelibsuff"
|
|
AC_FIND_FILE(mysql/libmysqlclient.so, $mysql_libdirs, mysql_libdir)
|
|
if test -r $mysql_libdir/mysql/libmysqlclient.so; then
|
|
MYSQL_LIBS=$mysql_libdir
|
|
AC_MSG_RESULT([$MYSQL_LIBS])
|
|
AC_SUBST(MYSQL_LIBS)
|
|
else
|
|
compile_mysql_plugin="no"
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
else
|
|
dnl *** No configure arguments for includes or libs given ***
|
|
dnl *** and MySQL not explicitly disabled. ***
|
|
KDE_FIND_PATH(mysql_config, MYSQL_CONFIG,
|
|
[${prefix}/bin ${exec_prefix}/bin /usr/local/bin /usr/bin ], [
|
|
AC_MSG_RESULT([not found])
|
|
])
|
|
|
|
if test -n "$MYSQL_CONFIG"; then
|
|
mysql_incdir=`$MYSQL_CONFIG --cflags| $SED -e "s,-I,,g" | cut -d " " -f 1`
|
|
mysql_libdir=`$MYSQL_CONFIG --libs| $SED -e "s,',,g"`
|
|
MYSQL_INC=$mysql_incdir
|
|
MYSQL_LIBS=$mysql_libdir
|
|
AC_SUBST(MYSQL_INC)
|
|
AC_SUBST(MYSQL_LIBS)
|
|
compile_mypsql_plugin="yes"
|
|
AC_MSG_RESULT([headers $mysql_incdir, libraries $mysql_libdir])
|
|
else
|
|
compile_mysql_plugin="no"
|
|
fi
|
|
fi
|
|
else
|
|
dnl *** MySQL plugin explicitly disabled. ***
|
|
dnl *** Show that we are doing as requested. ***
|
|
AC_MSG_NOTICE([Not attempting to configure MySQL as requested])
|
|
fi
|
|
|
|
if test "$compile_mysql_plugin" = "yes"; then
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
save_CXXFLAGS="$CXXFLAGS"
|
|
CXXFLAGS="$CXXFLAGS -I$mysql_incdir"
|
|
|
|
AC_MSG_CHECKING([if mysql has st_mysql struct])
|
|
AC_TRY_COMPILE(
|
|
[
|
|
#include <mysql.h>
|
|
typedef struct st_mysql MYSQL;
|
|
],
|
|
[],
|
|
AC_MSG_RESULT( yes )
|
|
mysql_struct=st_mysql,
|
|
AC_MSG_RESULT( no )
|
|
[
|
|
AC_MSG_CHECKING([if mysql has MYSQL struct])
|
|
AC_TRY_COMPILE(
|
|
[
|
|
#include <mysql.h>
|
|
typedef struct MYSQL MYSQL;
|
|
],
|
|
[],
|
|
AC_MSG_RESULT( yes )
|
|
mysql_struct=MYSQL,
|
|
AC_MSG_RESULT( no )
|
|
compile_mysql_plugin=no
|
|
)
|
|
]
|
|
)
|
|
|
|
CXXFLAGS="$save_CXXFLAGS"
|
|
AC_LANG_RESTORE
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED(MYSQL_STRUCT, $mysql_struct, [struct type name for MySql])
|
|
AM_CONDITIONAL(compile_mysql_plugin, test "$compile_mysql_plugin" = "yes")
|
|
|
|
dnl ========================================
|
|
dnl Checks for PostgreSQL
|
|
dnl ========================================
|
|
|
|
dnl ========================================
|
|
dnl libpq
|
|
dnl Add configure-args
|
|
dnl ========================================
|
|
|
|
dnl Assume we're building until something fails, unless explicitly disabled
|
|
AC_ARG_ENABLE(pgsql,
|
|
AC_HELP_STRING([--enable-pgsql],[build PostgreSQL-plugin [default=yes]]),
|
|
pgsql_plugin=$enableval, pgsql_plugin=yes)
|
|
|
|
if test "x$pgsql_plugin" = "xyes"; then
|
|
compile_pgsql_plugin="yes"
|
|
else
|
|
compile_pgsql_plugin="no"
|
|
fi
|
|
|
|
AC_ARG_WITH(pgsql-includes,
|
|
AC_HELP_STRING([--with-pgsql-includes=DIR],[use PostgreSQL(libpq)-includes installed in this directory ]),
|
|
[
|
|
ac_pgsql_incdir=$withval
|
|
], ac_pgsql_incdir=
|
|
)
|
|
|
|
AC_ARG_WITH(pgsql-libraries,
|
|
AC_HELP_STRING([--with-pgsql-libraries=DIR],[use PostgreSQL(libpq)-libraries installed in this directory ]),
|
|
[
|
|
ac_pgsql_libdir=$withval
|
|
], ac_pgsql_libdir=
|
|
)
|
|
|
|
|
|
dnl ========================================
|
|
dnl header/library directories
|
|
dnl ========================================
|
|
|
|
if test "$compile_pgsql_plugin" = "yes"; then
|
|
if test -n "$ac_pgsql_incdir" -o -n "$ac_pgsql_libdir"; then
|
|
dnl *** Configure arguments for includes or libs given ***
|
|
dnl *** and PostgreSQL not explicitly disabled. ***
|
|
dnl *** Check that the paths given to configure are valid ***
|
|
AC_MSG_CHECKING([for PostgreSQL C API headers])
|
|
pgsql_incdirs="$ac_pgsql_incdir /usr/local/include /usr/include"
|
|
AC_FIND_FILE(libpq-fe.h, $pgsql_incdirs, pgsql_incdir)
|
|
if test -r $pgsql_incdir/libpq-fe.h; then
|
|
PG_INCDIR=$pgsql_incdir
|
|
AC_MSG_RESULT([$PG_INCDIR])
|
|
AC_SUBST(PG_INCDIR)
|
|
else
|
|
compile_pgsql_plugin="no"
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for PostgreSQL C API libraries])
|
|
pgsql_libdirs="$ac_pgsql_libdir /usr/local/lib$tdelibsuff /usr/lib$tdelibsuff"
|
|
AC_FIND_FILE(libpq.so, $pgsql_libdirs, pgsql_libdir)
|
|
if test -r $pgsql_libdir/libpq.so; then
|
|
PG_LIBDIR=$pgsql_libdir
|
|
AC_MSG_RESULT([$PG_LIBDIR])
|
|
AC_SUBST(PG_LIBDIR)
|
|
else
|
|
compile_pgsql_plugin="no"
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
else
|
|
dnl *** No configure arguments for includes or libs given ***
|
|
dnl *** and PostgreSQL not explicitly disabled. ***
|
|
KDE_FIND_PATH(pg_config, PG_CONFIG,
|
|
[${prefix}/bin ${exec_prefix}/bin /usr/local/bin /usr/bin ], [
|
|
AC_MSG_RESULT([not found])
|
|
])
|
|
|
|
if test -n "$PG_CONFIG"; then
|
|
pgsql_incdir=`$PG_CONFIG --includedir`
|
|
pgsql_libdir=`$PG_CONFIG --libdir`
|
|
PG_INCDIR=$pgsql_incdir
|
|
PG_LIBDIR=$pgsql_libdir
|
|
AC_SUBST(PG_LIBDIR)
|
|
compile_pgsql_plugin="yes"
|
|
AC_MSG_RESULT([headers $pgsql_incdir, libraries $pgsql_libdir])
|
|
else
|
|
compile_pgsql_plugin="no"
|
|
fi
|
|
fi
|
|
else
|
|
dnl *** PostgreSQL plugin explicitly disabled. ***
|
|
dnl *** Show that we are doing as requested. ***
|
|
AC_MSG_NOTICE([Not attempting to configure PostgreSQL as requested])
|
|
fi
|
|
|
|
AM_CONDITIONAL(compile_pgsql_plugin, test "$compile_pgsql_plugin" = "yes")
|
|
|
|
|
|
dnl ========================================
|
|
dnl libpqxx checks
|
|
dnl ========================================
|
|
|
|
AC_ARG_WITH(pqxx-includes,
|
|
AC_HELP_STRING([--with-pqxx-includes=DIR],[use PostgreSQL(libpqxx)-includes installed in this directory ]),
|
|
[
|
|
ac_pqxx_incdir=$withval
|
|
], ac_pqxx_incdir=
|
|
)
|
|
|
|
AC_ARG_WITH(pqxx-libraries,
|
|
AC_HELP_STRING([--with-pqxx-libraries=DIR],[use PostgreSQL(libpqxx)-libraries installed in this directory ]),
|
|
[
|
|
ac_pqxx_libdir=$withval
|
|
], ac_pqxx_libdir=
|
|
)
|
|
|
|
|
|
dnl ========================================
|
|
dnl libpqxx headers
|
|
dnl ========================================
|
|
if test "$compile_pgsql_plugin" = "yes"; then
|
|
AC_MSG_CHECKING([for PostgreSQL C++ includes])
|
|
pqxx_incdirs="$ac_pqxx_incdir /usr/local/include /usr/include"
|
|
AC_FIND_FILE(pqxx/pqxx, $pqxx_incdirs, pqxx_incdir)
|
|
if test -r $pqxx_incdir/pqxx/pqxx; then
|
|
PQXX_INCDIR=$pqxx_incdir
|
|
AC_MSG_RESULT([$PQXX_INCDIR])
|
|
AC_SUBST(PQXX_INCDIR)
|
|
else
|
|
compile_pgsql_plugin="no"
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
fi
|
|
|
|
dnl ========================================
|
|
dnl libpqxx libraries
|
|
dnl ========================================
|
|
if test "$compile_pgsql_plugin" = "yes"; then
|
|
AC_MSG_CHECKING([for PostgreSQL C++ libraries])
|
|
pqxx_libdirs="$ac_pqxx_libdir $sys_lib_dlsearch_path_spec /usr/local/lib$tdelibsuff /usr/lib$tdelibsuff"
|
|
AC_FIND_FILE(libpqxx.so, $pqxx_libdirs, pqxx_libdir)
|
|
if test -r $pqxx_libdir/libpqxx.so; then
|
|
PQXX_LIBDIR=$pqxx_libdir
|
|
AC_MSG_RESULT([$PQXX_LIBDIR])
|
|
AC_SUBST(PQXX_LIBDIR)
|
|
else
|
|
compile_pgsql_plugin="no"
|
|
AC_MSG_RESULT([not found])
|
|
fi
|
|
fi
|
|
|
|
dnl ========================================
|
|
dnl libpqxx build flags
|
|
dnl ========================================
|
|
if test "$compile_pgsql_plugin" = "yes"; then
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
SAVED_CXXFLAGS="$CXXFLAGS"
|
|
AC_MSG_CHECKING([PostgreSQL build with default flags])
|
|
PQXX_CXXFLAGS=""
|
|
CXXFLAGS="$SAVED_CXXFLAGS $PQXX_CXXFLAGS"
|
|
AC_TRY_COMPILE([
|
|
#include <$PQXX_INCDIR/pqxx/pqxx>
|
|
],[ ],
|
|
pqxx_flags=yes,
|
|
pqxx_flags=no
|
|
)
|
|
if test "x$pqxx_flags" = "xno"; then
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_CHECKING([PostgreSQL build with enabled exceptions])
|
|
PQXX_CXXFLAGS+=" $USE_EXCEPTIONS"
|
|
CXXFLAGS="$SAVED_CXXFLAGS $PQXX_CXXFLAGS"
|
|
AC_TRY_COMPILE([
|
|
#include <$PQXX_INCDIR/pqxx/pqxx>
|
|
],[ ],
|
|
pqxx_exceptions=yes,
|
|
pqxx_exceptions=no
|
|
)
|
|
if test "x$pqxx_exceptions" = "xno"; then
|
|
AC_MSG_RESULT(no)
|
|
for CXX_STD_TEST in 11 14 17 20; do
|
|
AC_MSG_CHECKING([PostgreSQL build with C++$CXX_STD_TEST])
|
|
CXXFLAGS="$SAVED_CXXFLAGS $PQXX_CXXFLAGS -std=c++$CXX_STD_TEST"
|
|
AC_TRY_COMPILE([
|
|
#include <$PQXX_INCDIR/pqxx/pqxx>
|
|
],[ ],
|
|
pqxx_cxx_std=yes,
|
|
pqxx_cxx_std=no
|
|
)
|
|
if test "x$pqxx_cxx_std" = "xyes"; then
|
|
AC_MSG_RESULT(yes)
|
|
compile_pgsql_plugin="yes"
|
|
PQXX_CXXFLAGS+=" -std=c++$CXX_STD_TEST"
|
|
AC_SUBST(PQXX_CXXFLAGS)
|
|
break
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
compile_pgsql_plugin="no"
|
|
fi
|
|
done
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
AC_SUBST(PQXX_CXXFLAGS)
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
AC_SUBST(PQXX_CXXFLAGS)
|
|
fi
|
|
CXXFLAGS="$SAVED_CXXFLAGS"
|
|
AC_LANG_RESTORE
|
|
fi
|
|
|
|
dnl ========================================
|
|
dnl libpqxx field class name
|
|
dnl ========================================
|
|
if test "$compile_pgsql_plugin" = "yes"; then
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
SAVED_CXXFLAGS="$CXXFLAGS"
|
|
|
|
CXXFLAGS=$PQXX_CXXFLAGS
|
|
for PQXX_FIELD_CLASS in "pqxx::field" "pqxx::result::field"; do
|
|
AC_MSG_CHECKING([for PostgreSQL field class name - $PQXX_FIELD_CLASS])
|
|
AC_TRY_COMPILE([
|
|
#include <$PQXX_INCDIR/pqxx/pqxx>
|
|
],[
|
|
sizeof($PQXX_FIELD_CLASS);
|
|
],
|
|
pqxx_field_class=yes,
|
|
pqxx_field_class=no
|
|
)
|
|
if test "x$pqxx_field_class" = "xyes"; then
|
|
compile_pgsql_plugin="yes"
|
|
AC_DEFINE_UNQUOTED(PQXX_FIELD_CLASS, $PQXX_FIELD_CLASS, [ PQXX field class name ])
|
|
AC_MSG_RESULT(yes)
|
|
break
|
|
else
|
|
compile_pgsql_plugin="no"
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
done
|
|
CXXFLAGS="$SAVED_CXXFLAGS"
|
|
AC_LANG_RESTORE
|
|
fi
|
|
|
|
AM_CONDITIONAL(compile_pgsql_plugin, test "$compile_pgsql_plugin" = "yes")
|