mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Add support to build trunk with libdbi and dbi backend on win32/mingw
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17473 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
@@ -267,6 +267,16 @@ set_default LIBGDA_DIR $GLOBAL_DIR\\libgda
|
||||
set_default LIBGDA_PATCH `pwd`/libgda-3.1.2-patch.diff
|
||||
set_default LIBGDA_PATCH2 `pwd`/libgda-3.1.2-patch2.diff
|
||||
|
||||
set_default SQLITE3_URL "http://sqlite.org/sqlite-amalgamation-3.6.1.tar.gz"
|
||||
set_default SQLITE3_DIR $GLOBAL_DIR\\sqlite3
|
||||
set_default LIBDBI_URL "http://downloads.sourceforge.net/libdbi/libdbi-0.8.3.tar.gz"
|
||||
set_default LIBDBI_DIR $GLOBAL_DIR\\libdbi
|
||||
set_default LIBDBI_PATCH `pwd`/libdbi-0.8.3.patch
|
||||
set_default LIBDBI_DRIVERS_URL "http://downloads.sourceforge.net/libdbi-drivers/libdbi-drivers-0.8.3-1.tar.gz"
|
||||
set_default LIBDBI_DRIVERS_DIR $GLOBAL_DIR\\libdbi-drivers
|
||||
set_default LIBDBI_DRIVERS_PATCH `pwd`/libdbi-drivers-dbd_sqlite3.c.patch
|
||||
set_default LIBDBI_DRIVERS_PATCH2 `pwd`/libdbi-drivers-Makefile.in.patch
|
||||
|
||||
set_default DOCBOOK_XSL_URL "$SF_MIRROR/docbook/docbook-xsl-1.72.0.zip"
|
||||
set_default UPDATE_DOCS yes
|
||||
set_default DOCS_REV "HEAD"
|
||||
@@ -310,7 +320,7 @@ add_step inst_libofx
|
||||
add_step inst_gwenhywfar
|
||||
add_step inst_ktoblzcheck
|
||||
add_step inst_aqbanking
|
||||
add_step inst_libgda
|
||||
add_step inst_libdbi
|
||||
##
|
||||
if [ "$CROSS_COMPILE" != "yes" ]; then
|
||||
add_step inst_inno
|
||||
|
||||
@@ -23,6 +23,8 @@ register_env_var GUILE_LDFLAGS " "
|
||||
register_env_var HH_CPPFLAGS " "
|
||||
register_env_var HH_LDFLAGS " "
|
||||
register_env_var INTLTOOL_PERL " "
|
||||
register_env_var LIBDBI_CPPFLAGS " "
|
||||
register_env_var LIBDBI_LDFLAGS " "
|
||||
register_env_var KTOBLZCHECK_CPPFLAGS " "
|
||||
register_env_var KTOBLZCHECK_LDFLAGS " "
|
||||
register_env_var PATH ":"
|
||||
@@ -929,6 +931,69 @@ function inst_aqbanking() {
|
||||
fi
|
||||
}
|
||||
|
||||
function inst_libdbi() {
|
||||
setup LibDBI
|
||||
_SQLITE3_UDIR=`unix_path ${SQLITE3_DIR}`
|
||||
_LIBDBI_UDIR=`unix_path ${LIBDBI_DIR}`
|
||||
_LIBDBI_DRIVERS_UDIR=`unix_path ${LIBDBI_DRIVERS_DIR}`
|
||||
add_to_env -I$_LIBDBI_UDIR/include LIBDBI_CPPFLAGS
|
||||
add_to_env -L$_LIBDBI_UDIR/lib LIBDBI_LDFLAGS
|
||||
if test -f ${_SQLITE3_UDIR}/bin/libsqlite3-0.dll
|
||||
then
|
||||
echo "SQLite3 already installed. skipping."
|
||||
else
|
||||
wget_unpacked $SQLITE3_URL $DOWNLOAD_DIR $TMP_DIR
|
||||
assert_one_dir $TMP_UDIR/sqlite-*
|
||||
qpushd $TMP_UDIR/sqlite-*
|
||||
./configure \
|
||||
--prefix=${_SQLITE3_UDIR}
|
||||
make
|
||||
make install
|
||||
qpopd
|
||||
test -f ${_SQLITE3_UDIR}/bin/libsqlite3-0.dll || die "SQLite3 not installed correctly"
|
||||
fi
|
||||
if test -f ${_LIBDBI_UDIR}/bin/libdbi-0.dll
|
||||
then
|
||||
echo "libdbi already installed. skipping."
|
||||
else
|
||||
wget_unpacked $LIBDBI_URL $DOWNLOAD_DIR $TMP_DIR
|
||||
assert_one_dir $TMP_UDIR/libdbi-0*
|
||||
qpushd $TMP_UDIR/libdbi-0*
|
||||
[ -n "$LIBDBI_PATCH" -a -f "$LIBDBI_PATCH" ] && \
|
||||
patch -p0 < $LIBDBI_PATCH
|
||||
./configure \
|
||||
--disable-docs \
|
||||
--prefix=${_LIBDBI_UDIR}
|
||||
make
|
||||
make install
|
||||
qpopd
|
||||
test -f ${_LIBDBI_UDIR}/bin/libdbi-0.dll || die "libdbi not installed correctly"
|
||||
fi
|
||||
if test -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdsqlite3.dll
|
||||
then
|
||||
echo "libdbi drivers already installed. skipping."
|
||||
else
|
||||
wget_unpacked $LIBDBI_DRIVERS_URL $DOWNLOAD_DIR $TMP_DIR
|
||||
assert_one_dir $TMP_UDIR/libdbi-drivers-*
|
||||
qpushd $TMP_UDIR/libdbi-drivers*
|
||||
[ -n "$LIBDBI_DRIVERS_PATCH" -a -f "$LIBDBI_DRIVERS_PATCH" ] && \
|
||||
patch -p0 < $LIBDBI_DRIVERS_PATCH
|
||||
[ -n "$LIBDBI_DRIVERS_PATCH2" -a -f "$LIBDBI_DRIVERS_PATCH2" ] && \
|
||||
patch -p0 < $LIBDBI_DRIVERS_PATCH2
|
||||
./configure \
|
||||
--disable-docs \
|
||||
--with-dbi-incdir=${_LIBDBI_UDIR}/include \
|
||||
--with-dbi-libdir=${_LIBDBI_UDIR}/lib \
|
||||
--with-sqlite3 \
|
||||
--with-sqlite3-dir=${_SQLITE3_UDIR} \
|
||||
--prefix=${_LIBDBI_DRIVERS_UDIR}
|
||||
make
|
||||
make install
|
||||
qpopd
|
||||
test -f ${_LIBDBI_DRIVERS_UDIR}/lib/dbd/libdbdsqlite3.dll || die "libdbi drivers not installed correctly"
|
||||
fi
|
||||
}
|
||||
|
||||
function inst_libgda() {
|
||||
setup LibGDA
|
||||
_LIBGDA_UDIR=`unix_path ${LIBGDA_DIR}`
|
||||
@@ -1002,12 +1067,13 @@ function inst_gnucash() {
|
||||
--prefix=$_INSTALL_WFSDIR \
|
||||
--enable-debug \
|
||||
--enable-schemas-install=no \
|
||||
--enable-dbi \
|
||||
${LIBOFX_OPTIONS} \
|
||||
${AQBANKING_OPTIONS} \
|
||||
--enable-binreloc \
|
||||
--enable-locale-specific-tax \
|
||||
CPPFLAGS="${AUTOTOOLS_CPPFLAGS} ${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GUILE_CPPFLAGS} ${KTOBLZCHECK_CPPFLAGS} ${HH_CPPFLAGS} -D_WIN32" \
|
||||
LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GUILE_LDFLAGS} ${KTOBLZCHECK_LDFLAGS} ${HH_LDFLAGS}" \
|
||||
CPPFLAGS="${AUTOTOOLS_CPPFLAGS} ${REGEX_CPPFLAGS} ${GNOME_CPPFLAGS} ${GUILE_CPPFLAGS} ${LIBDBI_CPPFLAGS} ${KTOBLZCHECK_CPPFLAGS} ${HH_CPPFLAGS} -D_WIN32" \
|
||||
LDFLAGS="${AUTOTOOLS_LDFLAGS} ${REGEX_LDFLAGS} ${GNOME_LDFLAGS} ${GUILE_LDFLAGS} ${LIBDBI_LDFLAGS} ${KTOBLZCHECK_LDFLAGS} ${HH_LDFLAGS}" \
|
||||
PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
|
||||
|
||||
# Windows DLLs don't need relinking
|
||||
@@ -1062,11 +1128,12 @@ function make_install() {
|
||||
# Create a startup script that works without the msys shell
|
||||
qpushd $_INSTALL_UDIR/bin
|
||||
echo "setlocal" > gnucash.bat
|
||||
echo "set PATH=${INSTALL_DIR}\\bin;${INSTALL_DIR}\\lib;${INSTALL_DIR}\\lib\\gnucash;${GOFFICE_DIR}\\bin;${LIBGSF_DIR}\\bin;${PCRE_DIR}\\bin;${GNOME_DIR}\\bin;${LIBXML2_DIR}\\bin;${GUILE_DIR}\\bin;${REGEX_DIR}\\bin;${AUTOTOOLS_DIR}\\bin;${AQBANKING_PATH};${LIBOFX_DIR}\\bin;${OPENSP_DIR}\\bin;${LIBGDA_DIR}\\bin;%PATH%" > gnucash.bat
|
||||
echo "set PATH=${INSTALL_DIR}\\bin;${INSTALL_DIR}\\lib;${INSTALL_DIR}\\lib\\gnucash;${GOFFICE_DIR}\\bin;${LIBGSF_DIR}\\bin;${PCRE_DIR}\\bin;${GNOME_DIR}\\bin;${LIBXML2_DIR}\\bin;${GUILE_DIR}\\bin;${REGEX_DIR}\\bin;${AUTOTOOLS_DIR}\\bin;${AQBANKING_PATH};${LIBOFX_DIR}\\bin;${OPENSP_DIR}\\bin;${LIBDBI_DIR}\\bin;${SQLITE3_DIR}\\bin;%PATH%" > gnucash.bat
|
||||
echo "set GUILE_WARN_DEPRECATED=no" >> gnucash.bat
|
||||
echo "set GNC_MODULE_PATH=${INSTALL_DIR}\\lib\\gnucash" >> gnucash.bat
|
||||
echo "set GUILE_LOAD_PATH=${INSTALL_DIR}\\share\\gnucash\\guile-modules;${INSTALL_DIR}\\share\\gnucash\\scm;%GUILE_LOAD_PATH%" >> gnucash.bat
|
||||
echo "set LTDL_LIBRARY_PATH=${INSTALL_DIR}\\lib" >> gnucash.bat
|
||||
echo "set GNC_DBD_DIR=${LIBDBI_DRIVERS_DIR}\\lib\\dbd" >> gnucash.bat
|
||||
echo "start gnucash-bin %*" >> gnucash.bat
|
||||
qpopd
|
||||
}
|
||||
|
||||
26
packaging/win32/libdbi-0.8.3.patch
Executable file
26
packaging/win32/libdbi-0.8.3.patch
Executable file
@@ -0,0 +1,26 @@
|
||||
Index: dbd.h
|
||||
===================================================================
|
||||
RCS file: /cvsroot/libdbi/libdbi/include/dbi/dbd.h,v
|
||||
retrieving revision 1.29
|
||||
diff -u -r1.29 dbd.h
|
||||
--- include/dbi/dbd.h 15 Aug 2005 19:18:18 -0000 1.29
|
||||
+++ include/dbi/dbd.h 16 Aug 2008 20:20:33 -0000
|
||||
@@ -52,7 +52,7 @@
|
||||
size_t dbd_quote_binary(dbi_conn_t *conn, const unsigned char *orig, size_t from_length, unsigned char **ptr_dest);
|
||||
size_t dbd_conn_quote_string(dbi_conn_t *conn, const char *orig, char *dest);
|
||||
const char *dbd_select_db(dbi_conn_t *conn, const char *db);
|
||||
-int dbd_geterror(dbi_conn_t *conn, int *errno, char **errstr);
|
||||
+int dbd_geterror(dbi_conn_t *conn, int *err_no, char **errstr);
|
||||
unsigned long long dbd_get_seq_last(dbi_conn_t *conn, const char *sequence);
|
||||
unsigned long long dbd_get_seq_next(dbi_conn_t *conn, const char *sequence);
|
||||
int dbd_ping(dbi_conn_t *conn);
|
||||
@@ -63,7 +63,7 @@
|
||||
void _dbd_result_add_field(dbi_result_t *result, unsigned int fieldidx, char *name, unsigned short type, unsigned int attribs);
|
||||
dbi_row_t *_dbd_row_allocate(unsigned int numfields);
|
||||
void _dbd_row_finalize(dbi_result_t *result, dbi_row_t *row, unsigned long long rowidx);
|
||||
-void _dbd_internal_error_handler(dbi_conn_t *conn, const char *errmsg, const int errno);
|
||||
+void _dbd_internal_error_handler(dbi_conn_t *conn, const char *errmsg, const int err_no);
|
||||
dbi_result_t *_dbd_result_create_from_stringarray(dbi_conn_t *conn, unsigned long long numrows_matched, const char **stringarray);
|
||||
void _dbd_register_driver_cap(dbi_driver_t *driver, const char *capname, int value);
|
||||
void _dbd_register_conn_cap(dbi_conn_t *conn, const char *capname, int value);
|
||||
|
||||
11
packaging/win32/libdbi-drivers-Makefile.in.patch
Executable file
11
packaging/win32/libdbi-drivers-Makefile.in.patch
Executable file
@@ -0,0 +1,11 @@
|
||||
--- drivers/sqlite3/Makefile.in.save Mon Mar 3 12:41:56 2008
|
||||
+++ drivers/sqlite3/Makefile.in Sat Aug 16 17:10:11 2008
|
||||
@@ -264,7 +264,7 @@
|
||||
@HAVE_SQLITE3_TRUE@sqlite3_sources = dbd_sqlite3.c
|
||||
INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/include @DBI_INCLUDE@ @SQLITE3_INCLUDE@
|
||||
lib_LTLIBRARIES = $(sqlite3_ltlibs)
|
||||
-libdbdsqlite3_la_LDFLAGS = $(sqlite3_ldflags) @SQLITE3_LDFLAGS@ @SQLITE3_LIBS@ @LIBADD_LIBDBI@
|
||||
+libdbdsqlite3_la_LDFLAGS = $(sqlite3_ldflags) @SQLITE3_LDFLAGS@ @SQLITE3_LIBS@ @LIBADD_LIBDBI@ -no-undefined
|
||||
libdbdsqlite3_la_SOURCES = $(sqlite3_sources)
|
||||
libdbdsqlite3_la_DEPENDENCIES = dbd_sqlite3.h
|
||||
EXTRA_DIST = dbd_sqlite3.c dbd_sqlite3.h AUTHORS TODO README dbd_sqlite3.sgml dbd_sqlite3.pdf dbd_sqlite3/*
|
||||
24
packaging/win32/libdbi-drivers-dbd_sqlite3.c.patch
Executable file
24
packaging/win32/libdbi-drivers-dbd_sqlite3.c.patch
Executable file
@@ -0,0 +1,24 @@
|
||||
Index: dbd_sqlite3.c
|
||||
===================================================================
|
||||
RCS file: /cvsroot/libdbi-drivers/libdbi-drivers/drivers/sqlite3/dbd_sqlite3.c,v
|
||||
retrieving revision 1.31
|
||||
diff -u -r1.31 dbd_sqlite3.c
|
||||
--- drivers/sqlite3/dbd_sqlite3.c 13 Aug 2008 22:56:03 -0000 1.31
|
||||
+++ drivers/sqlite3/dbd_sqlite3.c 16 Aug 2008 20:23:23 -0000
|
||||
@@ -1369,11 +1369,11 @@
|
||||
return db;
|
||||
}
|
||||
|
||||
-int dbd_geterror(dbi_conn_t *conn, int *errno, char **errstr) {
|
||||
- /* put error number into errno, error string into errstr
|
||||
- * return 0 if error, 1 if errno filled, 2 if errstr filled, 3 if both errno and errstr filled */
|
||||
+int dbd_geterror(dbi_conn_t *conn, int *err_no, char **errstr) {
|
||||
+ /* put error number into err_no, error string into errstr
|
||||
+ * return 0 if error, 1 if err_no filled, 2 if errstr filled, 3 if both err_no and errstr filled */
|
||||
|
||||
- *errno = sqlite3_errcode((sqlite3 *)conn->connection);
|
||||
+ *err_no = sqlite3_errcode((sqlite3 *)conn->connection);
|
||||
*errstr = strdup((char*)sqlite3_errmsg((sqlite3 *)conn->connection));
|
||||
return 3;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user