mysql: Add Windows support
As the mysql_config script is not available for Windows, we use a hardcoded library name and no additional CFLAGS. This builds fine against the binary MySQL Connector/C distribution.
This commit is contained in:
+11
-5
@@ -895,12 +895,18 @@ if test x$fast = xtrue; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$mysql = xtrue; then
|
if test x$mysql = xtrue; then
|
||||||
AC_PATH_PROG([MYSQLCONFIG], [mysql_config], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
|
if test "x$windows" = xtrue; then
|
||||||
if test x$MYSQLCONFIG = x; then
|
AC_CHECK_HEADER([mysql.h],,[AC_MSG_ERROR([MySQL header file mysql.h not found!])])
|
||||||
AC_MSG_ERROR([mysql_config not found!])
|
AC_CHECK_LIB([mysql],[main],[LIBS="$LIBS"],[AC_MSG_ERROR([MySQL library not found!])],[])
|
||||||
|
AC_SUBST(MYSQLLIB, -lmysql)
|
||||||
|
else
|
||||||
|
AC_PATH_PROG([MYSQLCONFIG], [mysql_config], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
|
||||||
|
if test x$MYSQLCONFIG = x; then
|
||||||
|
AC_MSG_ERROR([mysql_config not found!])
|
||||||
|
fi
|
||||||
|
AC_SUBST(MYSQLLIB, `$MYSQLCONFIG --libs_r`)
|
||||||
|
AC_SUBST(MYSQLCFLAG, `$MYSQLCONFIG --cflags`)
|
||||||
fi
|
fi
|
||||||
AC_SUBST(MYSQLLIB, `$MYSQLCONFIG --libs_r`)
|
|
||||||
AC_SUBST(MYSQLCFLAG, `$MYSQLCONFIG --cflags`)
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$sqlite = xtrue; then
|
if test x$sqlite = xtrue; then
|
||||||
|
|||||||
@@ -14,12 +14,12 @@
|
|||||||
* for more details.
|
* for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "mysql_database.h"
|
||||||
|
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <mysql.h>
|
#include <mysql.h>
|
||||||
|
|
||||||
#include "mysql_database.h"
|
|
||||||
|
|
||||||
#include <utils/debug.h>
|
#include <utils/debug.h>
|
||||||
#include <utils/chunk.h>
|
#include <utils/chunk.h>
|
||||||
#include <threading/thread_value.h>
|
#include <threading/thread_value.h>
|
||||||
@@ -730,7 +730,7 @@ static bool finalize_transaction(private_mysql_database_t *this,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(database_t, commit, bool,
|
METHOD(database_t, commit_, bool,
|
||||||
private_mysql_database_t *this)
|
private_mysql_database_t *this)
|
||||||
{
|
{
|
||||||
return finalize_transaction(this, FALSE);
|
return finalize_transaction(this, FALSE);
|
||||||
@@ -768,7 +768,7 @@ static bool parse_uri(private_mysql_database_t *this, char *uri)
|
|||||||
/**
|
/**
|
||||||
* parse mysql://username:pass@host:port/database uri
|
* parse mysql://username:pass@host:port/database uri
|
||||||
*/
|
*/
|
||||||
username = strdupa(uri + 8);
|
username = strdup(uri + 8);
|
||||||
pos = strchr(username, ':');
|
pos = strchr(username, ':');
|
||||||
if (pos)
|
if (pos)
|
||||||
{
|
{
|
||||||
@@ -800,10 +800,12 @@ static bool parse_uri(private_mysql_database_t *this, char *uri)
|
|||||||
this->password = strdup(password);
|
this->password = strdup(password);
|
||||||
this->database = strdup(database);
|
this->database = strdup(database);
|
||||||
this->port = atoi(port);
|
this->port = atoi(port);
|
||||||
|
free(username);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
free(username);
|
||||||
DBG1(DBG_LIB, "parsing MySQL database uri '%s' failed", uri);
|
DBG1(DBG_LIB, "parsing MySQL database uri '%s' failed", uri);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -828,7 +830,7 @@ mysql_database_t *mysql_database_create(char *uri)
|
|||||||
.query = _query,
|
.query = _query,
|
||||||
.execute = _execute,
|
.execute = _execute,
|
||||||
.transaction = _transaction,
|
.transaction = _transaction,
|
||||||
.commit = _commit,
|
.commit = _commit_,
|
||||||
.rollback = _rollback,
|
.rollback = _rollback,
|
||||||
.get_driver = _get_driver,
|
.get_driver = _get_driver,
|
||||||
.destroy = _destroy,
|
.destroy = _destroy,
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
#ifndef MYSQL_DATABASE_H_
|
#ifndef MYSQL_DATABASE_H_
|
||||||
#define MYSQL_DATABASE_H_
|
#define MYSQL_DATABASE_H_
|
||||||
|
|
||||||
|
#include <library.h>
|
||||||
#include <database/database.h>
|
#include <database/database.h>
|
||||||
|
|
||||||
typedef struct mysql_database_t mysql_database_t;
|
typedef struct mysql_database_t mysql_database_t;
|
||||||
|
|||||||
Reference in New Issue
Block a user