mirror of
https://github.com/haiwen/ccnet-server.git
synced 2025-09-06 07:10:24 +00:00
Conditional compile MySQL and PostgreSQL support.
This commit is contained in:
@@ -253,17 +253,19 @@ if test "xyes" = "x$mysql"; then
|
|||||||
tmp_LDFLAGS=$LDFLAGS
|
tmp_LDFLAGS=$LDFLAGS
|
||||||
CPPFLAGS="`$MYSQLCONFIG --include` $CPPFLAGS"
|
CPPFLAGS="`$MYSQLCONFIG --include` $CPPFLAGS"
|
||||||
LDFLAGS="`$MYSQLCONFIG --libs` $LDFLAGS"
|
LDFLAGS="`$MYSQLCONFIG --libs` $LDFLAGS"
|
||||||
AC_CHECK_HEADERS([mysql.h])
|
AC_CHECK_HEADERS([mysql.h], [], [mysql="no"])
|
||||||
if test "xyes" = "x$mysql"; then
|
if test "xyes" = "x$mysql"; then
|
||||||
echo "found mysql client library"
|
echo "found mysql client library"
|
||||||
MYSQL_CFLAGS=`$MYSQLCONFIG --include`
|
MYSQL_CFLAGS=`$MYSQLCONFIG --include`
|
||||||
MYSQL_LIBS=`$MYSQLCONFIG --libs`
|
MYSQL_LIBS=`$MYSQLCONFIG --libs`
|
||||||
AC_SUBST(MYSQL_CFLAGS)
|
AC_SUBST(MYSQL_CFLAGS)
|
||||||
AC_SUBST(MYSQL_LIBS)
|
AC_SUBST(MYSQL_LIBS)
|
||||||
|
AC_DEFINE([HAVE_MYSQL], 1, [Define to 1 to enable mysql])
|
||||||
fi
|
fi
|
||||||
CPPFLAGS=$tmp_CPPFLAGS
|
CPPFLAGS=$tmp_CPPFLAGS
|
||||||
LDFLAGS=$tmp_LDFLAGS
|
LDFLAGS=$tmp_LDFLAGS
|
||||||
fi
|
fi
|
||||||
|
AM_CONDITIONAL([WITH_MYSQL], test "xyes" = "x$mysql")
|
||||||
|
|
||||||
postgresql="yes"
|
postgresql="yes"
|
||||||
check_postgres_config()
|
check_postgres_config()
|
||||||
@@ -305,10 +307,12 @@ if test "xyes" = "x$postgresql"; then
|
|||||||
PGSQL_LIBS="-L`$PGCONFIG --libdir` -lpq"
|
PGSQL_LIBS="-L`$PGCONFIG --libdir` -lpq"
|
||||||
AC_SUBST(PGSQL_CFLAGS)
|
AC_SUBST(PGSQL_CFLAGS)
|
||||||
AC_SUBST(PGSQL_LIBS)
|
AC_SUBST(PGSQL_LIBS)
|
||||||
|
AC_DEFINE([HAVE_POSTGRESQL], 1, [Define to 1 to enable postgresql])
|
||||||
fi
|
fi
|
||||||
CPPFLAGS=$tmp_CPPFLAGS
|
CPPFLAGS=$tmp_CPPFLAGS
|
||||||
LDFLAGS=$tmp_LDFLAGS
|
LDFLAGS=$tmp_LDFLAGS
|
||||||
fi
|
fi
|
||||||
|
AM_CONDITIONAL([WITH_POSTGRESQL], test "xyes" = "x$postgresql")
|
||||||
|
|
||||||
if test "${compile_ldap}" = "yes"; then
|
if test "${compile_ldap}" = "yes"; then
|
||||||
if test "$bwin32" != true; then
|
if test "$bwin32" != true; then
|
||||||
|
@@ -21,6 +21,8 @@ struct CcnetDBTrans {
|
|||||||
DBConnection *conn;
|
DBConnection *conn;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef HAVE_MYSQL
|
||||||
|
|
||||||
CcnetDB *
|
CcnetDB *
|
||||||
ccnet_db_new_mysql (const char *host,
|
ccnet_db_new_mysql (const char *host,
|
||||||
int port,
|
int port,
|
||||||
@@ -48,6 +50,10 @@ ccnet_db_new_mysql (const char *host,
|
|||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_POSTGRESQL
|
||||||
|
|
||||||
CcnetDB *
|
CcnetDB *
|
||||||
ccnet_db_new_pgsql (const char *host,
|
ccnet_db_new_pgsql (const char *host,
|
||||||
const char *user,
|
const char *user,
|
||||||
@@ -72,6 +78,8 @@ ccnet_db_new_pgsql (const char *host,
|
|||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
CcnetDB *
|
CcnetDB *
|
||||||
ccnet_db_new_sqlite (const char *db_path)
|
ccnet_db_new_sqlite (const char *db_path)
|
||||||
{
|
{
|
||||||
|
@@ -6,7 +6,19 @@ noinst_LTLIBRARIES = libdbwrapper.la
|
|||||||
|
|
||||||
noinst_HEADERS = db-wrapper.h mysql-db-ops.h sqlite-db-ops.h pgsql-db-ops.h
|
noinst_HEADERS = db-wrapper.h mysql-db-ops.h sqlite-db-ops.h pgsql-db-ops.h
|
||||||
|
|
||||||
libdbwrapper_la_SOURCES = db-wrapper.c mysql-db-ops.c sqlite-db-ops.c pgsql-db-ops.c
|
if WITH_MYSQL
|
||||||
|
MYSQL_DB_SRC = mysql-db-ops.c
|
||||||
|
else
|
||||||
|
MYSQL_DB_SRC =
|
||||||
|
endif
|
||||||
|
|
||||||
|
if WITH_POSTGRESQL
|
||||||
|
PGSQL_DB_SRC = pgsql-db-ops.c
|
||||||
|
else
|
||||||
|
PGSQL_DB_SRC =
|
||||||
|
endif
|
||||||
|
|
||||||
|
libdbwrapper_la_SOURCES = db-wrapper.c sqlite-db-ops.c $(MYSQL_DB_SRC) $(PGSQL_DB_SRC)
|
||||||
|
|
||||||
libdbwrapper_la_LDFLAGS = -Wl,-z -Wl,defs
|
libdbwrapper_la_LDFLAGS = -Wl,-z -Wl,defs
|
||||||
libdbwrapper_la_LIBADD = @SSL_LIBS@ @GLIB2_LIBS@ @MYSQL_LIBS@ -lsqlite3 @PGSQL_LIBS@
|
libdbwrapper_la_LIBADD = @SSL_LIBS@ @GLIB2_LIBS@ @MYSQL_LIBS@ -lsqlite3 @PGSQL_LIBS@
|
||||||
|
@@ -1,9 +1,15 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#include "db-wrapper.h"
|
#include "db-wrapper.h"
|
||||||
#include "mysql-db-ops.h"
|
|
||||||
#include "sqlite-db-ops.h"
|
#include "sqlite-db-ops.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_MYSQL
|
||||||
|
#include "mysql-db-ops.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_POSTGRESQL
|
||||||
#include "pgsql-db-ops.h"
|
#include "pgsql-db-ops.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct DBOperations {
|
typedef struct DBOperations {
|
||||||
void (*db_conn_pool_free) (DBConnPool *);
|
void (*db_conn_pool_free) (DBConnPool *);
|
||||||
@@ -40,6 +46,8 @@ init_conn_pool_common (DBConnPool *pool, int max_connections)
|
|||||||
pool->max_connections = max_connections;
|
pool->max_connections = max_connections;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_MYSQL
|
||||||
|
|
||||||
DBConnPool *
|
DBConnPool *
|
||||||
db_conn_pool_new_mysql (const char *host,
|
db_conn_pool_new_mysql (const char *host,
|
||||||
const char *user,
|
const char *user,
|
||||||
@@ -81,6 +89,10 @@ db_conn_pool_new_mysql (const char *host,
|
|||||||
return pool;
|
return pool;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_POSTGRESQL
|
||||||
|
|
||||||
DBConnPool *
|
DBConnPool *
|
||||||
db_conn_pool_new_pgsql (const char *host,
|
db_conn_pool_new_pgsql (const char *host,
|
||||||
const char *user,
|
const char *user,
|
||||||
@@ -118,6 +130,8 @@ db_conn_pool_new_pgsql (const char *host,
|
|||||||
return pool;
|
return pool;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
DBConnPool *
|
DBConnPool *
|
||||||
db_conn_pool_new_sqlite (const char *db_path, int max_connections)
|
db_conn_pool_new_sqlite (const char *db_path, int max_connections)
|
||||||
{
|
{
|
||||||
|
@@ -122,6 +122,8 @@ static int init_sqlite_database (CcnetSession *session)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_MYSQL
|
||||||
|
|
||||||
#define MYSQL_DEFAULT_PORT 3306
|
#define MYSQL_DEFAULT_PORT 3306
|
||||||
|
|
||||||
static int init_mysql_database (CcnetSession *session)
|
static int init_mysql_database (CcnetSession *session)
|
||||||
@@ -188,6 +190,10 @@ static int init_mysql_database (CcnetSession *session)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_POSTGRESQL
|
||||||
|
|
||||||
static int init_pgsql_database (CcnetSession *session)
|
static int init_pgsql_database (CcnetSession *session)
|
||||||
{
|
{
|
||||||
char *host, *user, *passwd, *db, *unix_socket;
|
char *host, *user, *passwd, *db, *unix_socket;
|
||||||
@@ -226,6 +232,8 @@ static int init_pgsql_database (CcnetSession *session)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
static int
|
static int
|
||||||
load_database_config (CcnetSession *session)
|
load_database_config (CcnetSession *session)
|
||||||
{
|
{
|
||||||
@@ -236,13 +244,20 @@ load_database_config (CcnetSession *session)
|
|||||||
if (!engine || strncasecmp (engine, DB_SQLITE, sizeof(DB_SQLITE)) == 0) {
|
if (!engine || strncasecmp (engine, DB_SQLITE, sizeof(DB_SQLITE)) == 0) {
|
||||||
ccnet_debug ("Use database sqlite\n");
|
ccnet_debug ("Use database sqlite\n");
|
||||||
ret = init_sqlite_database (session);
|
ret = init_sqlite_database (session);
|
||||||
} else if (strncasecmp (engine, DB_MYSQL, sizeof(DB_MYSQL)) == 0) {
|
}
|
||||||
|
#ifdef HAVE_MYSQL
|
||||||
|
else if (strncasecmp (engine, DB_MYSQL, sizeof(DB_MYSQL)) == 0) {
|
||||||
ccnet_debug ("Use database Mysql\n");
|
ccnet_debug ("Use database Mysql\n");
|
||||||
ret = init_mysql_database (session);
|
ret = init_mysql_database (session);
|
||||||
} else if (strncasecmp (engine, DB_PGSQL, sizeof(DB_PGSQL)) == 0) {
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_POSTGRESQL
|
||||||
|
else if (strncasecmp (engine, DB_PGSQL, sizeof(DB_PGSQL)) == 0) {
|
||||||
ccnet_debug ("Use database PostgreSQL\n");
|
ccnet_debug ("Use database PostgreSQL\n");
|
||||||
ret = init_pgsql_database (session);
|
ret = init_pgsql_database (session);
|
||||||
} else {
|
}
|
||||||
|
#endif
|
||||||
|
else {
|
||||||
ccnet_warning ("Unknown database type: %s.\n", engine);
|
ccnet_warning ("Unknown database type: %s.\n", engine);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user