I couldn't get make test to work - it seemed to hang on:
make check-TESTS
make[2]: Entering directory `/home/Test/libdbi-drivers/tests'
But to even get that far I had to alter the test_dbi.c (since MinGW
has no sleep function). See attached patch
On 8/29/07, Duncan McQueen <[EMAIL PROTECTED]> wrote:
> I took a look at the README.w32 file - the procedure is the same for
> MinGW - just that you need to use MSYS to compile the drivers.
>
> This section is NOT applicable to the MinGW version:
>
> Once libdbi is compiled for Win32 and you have a DLL, you can use that
> DLL like any other. The only requirement is that the cygwin runtime
> DLL is available on the target machine also, since non-Windows API
> functions are implemented by cygwin.
>
>
>
>
>
> On 8/29/07, Duncan McQueen <[EMAIL PROTECTED]> wrote:
> > >
> > > It is certainly something to brag about. The more platforms we cover,
> > > the closer we get to world domination :-)
> > >
> > > I've made only a few changes to the patch. First, I've noticed that
> > > Makefile.w32 erroneously used -ldbi twice in the XY_LIBS definitions,
> > > and I've also removed the second one from the SQLITE3_LIBS definition
> > > that your patch added. Second, I've changed the definition of
> > > _POSIX_PATH_MAX to 256. I inserted 512 off the top of my head, but
> > > limits.h on FreeBSD uses 256 which is more likely to be correct.
> > >
> >
> > Sounds good to me. I was hacking at that Makefile to get it to work
> >
> > > Just to make sure I understand what you're doing. Is it exactly the
> > > same procedure to build Win32 DLLs using MinGW as it is on Cygwin? In
> > > that case I'd like to change a few comments in the Makefiles, readmes,
> > > and other docs which now only talk about Cygwin.
> >
> > Yes, it is the same procedure - at least close. Under MinGW you must
> > use MSYS (if you use the Makefile.w32) as compare dot the Cygwin
> > shell. Benefit is - not dependencies on some cygwin dll for runtime.
> >
> > >
> > > Finally, did you try and run "make check"? It'll ask you for a
> > > particular driver and then run a couple of tests with this database
> > > engine. Could you please send me the outputs of this command for each
> > > database engine you use, just to make sure everything works as
> > > intended?
> > >
> >
> > I will run a make check on each one. I have used the resulting dlls
> > for each of the three (postgresql, mysql and sqlite3) in a basic
> > application with success. But I can send you the results of a make
> > check.
> >
> > > regards,
> > > Markus
> > >
> > >
> > > >
> > > > On 8/28/07, Duncan McQueen <[EMAIL PROTECTED]> wrote:
> > > > > On 8/28/07, Markus Hoenicka <[EMAIL PROTECTED]> wrote:
> > > > > > Quoting Duncan McQueen <[EMAIL PROTECTED]>:
> > > > > >
> > > > > > > Part of the problem may be I am compiling using GCC 4.2.1 - and
> > > > > > > excessive warning messages seem to be the norm there. My dbd.h
> > > is
> > > > > > > from CVS as of two days ago.
> > > > > > >
> > > > > >
> > > > > > In that case it might help to manually cast the int variable to
> > > const
> > > > > > int, like this:
> > > > > >
> > > > > > _dbd_internal_error_handler(conn, "could not open database", (const
> > > > > > int) sqlite3_errcode);
> > > > > >
> > > > > > Does your GCC like this better?
> > > > > >
> > > > > >
> > > > >
> > > > > I will check tonight on both of these.
> > > > >
> > > > > > > I will look on the POSIX_PATH_MATH and try to add it. I know I
> > > have
> > > > > > > seen other source where it was defined as you mentioned.
> > > > > > >
> > > > > > >> ifndef _POSIX_PATH_MAX
> > > > > > >> #define _POSIX_PATH_MAX 512
> > > > > > >> endif
> > > > > > >>
> > > > > >
> > > > > > This should of course read:
> > > > > >
> > > > > > #ifndef _POSIX_PATH_MAX
> > > > > > #define _POSIX_PATH_MAX 512
> > > > > > #endif
> > > > > >
> > > > > > regards,
> > > > > > Markus
> > > > > >
> > > > > > --
> > > > > > Markus Hoenicka
> > > > > > [EMAIL PROTECTED]
> > > > > > (Spam-protected email: replace the quadrupeds with "mhoenicka")
> > > > > > http://www.mhoenicka.de
> > > > > >
> > > > > >
> > > > > >
> > > -------------------------------------------------------------------------
> > > > > > This SF.net email is sponsored by: Splunk Inc.
> > > > > > Still grepping through log files to find problems? Stop.
> > > > > > Now Search log events and configuration files using AJAX and a
> > > browser.
> > > > > > Download your FREE copy of Splunk now >> http://get.splunk.com/
> > > > > > _______________________________________________
> > > > > > libdbi-devel mailing list
> > > > > > [email protected]
> > > > > > https://lists.sourceforge.net/lists/listinfo/libdbi-devel
> > > > > >
> > > > >
> > > > Index: Makefile.w32
> > > > ===================================================================
> > > > RCS file: /cvsroot/libdbi-drivers/libdbi-drivers/Makefile.w32,v
> > > > retrieving revision 1.8
> > > > diff -u -w -b -i -p -r1.8 Makefile.w32
> > > > --- Makefile.w32 21 Nov 2005 21:18:15 -0000 1.8
> > > > +++ Makefile.w32 29 Aug 2007 01:57:01 -0000
> > > > @@ -39,19 +39,22 @@ MSQL_LIBS = -L /usr/local/lib -L /usr/lo
> > > > MYSQL_LIBS = -L /usr/local/lib -ldbi -lmysqlclient -liberty -lz
> > > > PGSQL_LIBS = -L /usr/local/lib -ldbi -ldbi -lpq -liberty
> > > > SQLITE_LIBS = -L /usr/local/lib -ldbi -ldbi -lsqlite -liberty
> > > > +SQLITE3_LIBS = -L /usr/local/lib -ldbi -ldbi -lsqlite3 -liberty
> > > > driverdir = ${exec_prefix}/lib/dbd
> > > >
> > > > LIBMSQL_DLL_NAME = libdbdmsql.dll
> > > > LIBMYSQL_DLL_NAME = libdbdmysql.dll
> > > > LIBPGSQL_DLL_NAME = libdbdpgsql.dll
> > > > LIBSQLITE_DLL_NAME = libdbdsqlite.dll
> > > > +LIBSQLITE3_DLL_NAME = libdbdsqlite3.dll
> > > >
> > > > LIBMSQL_DLL_EXP_LIB = libdbdmsql.dll.a
> > > > LIBMYSQL_DLL_EXP_LIB = libdbdmysql.dll.a
> > > > LIBPGSQL_DLL_EXP_LIB = libdbdpgsql.dll.a
> > > > LIBSQLITE_DLL_EXP_LIB = libdbdsqlite.dll.a
> > > > +LIBSQLITE3_DLL_EXP_LIB = libdbdsqlite3.dll.a
> > > >
> > > > -all: libmysql-dll libpgsql-dll libsqlite-dll libmsql-dll
> > > > +all: libmysql-dll libpgsql-dll libsqlite-dll libsqlite3-dll
> > > libmsql-dll
> > > >
> > > > libmsql-dll: $(top_srcdir)/drivers/msql/dbd_msql.o
> > > > $(CC) -shared
> > > -Wl,--out-implib=$(top_srcdir)/drivers/msql/.libs/$(LIBMSQL_DLL_EXP_LIB)
> > > -o $(top_srcdir)/drivers/msql/.libs/$(LIBMSQL_DLL_NAME)
> > > -L$(top_srcdir)/src/.libs $(LDFLAGS) $(top_srcdir)/drivers/msql/*.o
> > > $(MSQL_LIBS)
> > > > @@ -65,7 +68,10 @@ libpgsql-dll: $(top_srcdir)/drivers/pgsq
> > > > libsqlite-dll: $(top_srcdir)/drivers/sqlite/dbd_sqlite.o
> > > > $(CC) -shared
> > > -Wl,--out-implib=$(top_srcdir)/drivers/sqlite/.libs/$(LIBSQLITE_DLL_EXP_LIB)
> > > -o $(top_srcdir)/drivers/sqlite/.libs/$(LIBSQLITE_DLL_NAME) $(LDFLAGS)
> > > $(top_srcdir)/drivers/sqlite/*.o $(SQLITE_LIBS)
> > > >
> > > > -install: install-libmysql install-libpgsql install-libsqlite
> > > install-libmsql
> > > > +libsqlite3-dll: $(top_srcdir)/drivers/sqlite3/dbd_sqlite3.o
> > > > + $(CC) -shared
> > > -Wl,--out-implib=$(top_srcdir)/drivers/sqlite3/.libs/$(LIBSQLITE3_DLL_EXP_LIB)
> > > -o $(top_srcdir)/drivers/sqlite3/.libs/$(LIBSQLITE3_DLL_NAME)
> > > $(LDFLAGS) $(top_srcdir)/drivers/sqlite3/*.o $(SQLITE3_LIBS)
> > > > +
> > > > +install: install-libmysql install-libpgsql install-libsqlite
> > > install-libsqlite3 install-libmsql
> > > >
> > > > install-libmsql:
> > > > cp $(top_srcdir)/drivers/msql/.libs/$(LIBMSQL_DLL_NAME)
> > > $(driverdir) && \
> > > > @@ -83,8 +89,13 @@ install-libsqlite:
> > > > cp $(top_srcdir)/drivers/sqlite/.libs/$(LIBSQLITE_DLL_NAME)
> > > $(driverdir) && \
> > > > cp $(top_srcdir)/drivers/sqlite/.libs/$(LIBSQLITE_DLL_EXP_LIB)
> > > $(driverdir)
> > > >
> > > > +install-libsqlite3:
> > > > + cp $(top_srcdir)/drivers/sqlite3/.libs/$(LIBSQLITE3_DLL_NAME)
> > > $(driverdir) && \
> > > > + cp $(top_srcdir)/drivers/sqlite3/.libs/$(LIBSQLITE3_DLL_EXP_LIB)
> > > $(driverdir)
> > > > +
> > > > +
> > > >
> > > > -.PHONY: libdbdmysql.dll libdbdpgsql.dll libdbdsqlite.dll
> > > libdbdmsql.dll install install-libmysql install-libpgsql install-libsqlite
> > > > +.PHONY: libdbdmysql.dll libdbdpgsql.dll libdbdsqlite.dll
> > > libdbdsqlite3.dll libdbdmsql.dll install install-libmysql
> > > install-libpgsql install-libsqlite install-libsqlite3
> > > >
> > > >
> > > > # Tell versions [3.59,3.63) of GNU make to not export all variables.
> > > > cvs diff: Diffing debian
> > > > cvs diff: Diffing doc
> > > > cvs diff: Diffing doc/include
> > > > cvs diff: Diffing drivers
> > > > cvs diff: Diffing drivers/firebird
> > > > cvs diff: Diffing drivers/freetds
> > > > cvs diff: Diffing drivers/ingres
> > > > cvs diff: Diffing drivers/msql
> > > > cvs diff: Diffing drivers/mysql
> > > > cvs diff: Diffing drivers/oracle
> > > > cvs diff: Diffing drivers/pgsql
> > > > cvs diff: Diffing drivers/sqlite
> > > > cvs diff: Diffing drivers/sqlite3
> > > > Index: drivers/sqlite3/dbd_sqlite3.c
> > > > ===================================================================
> > > > RCS file:
> > > /cvsroot/libdbi-drivers/libdbi-drivers/drivers/sqlite3/dbd_sqlite3.c,v
> > > > retrieving revision 1.15
> > > > diff -u -w -b -i -p -r1.15 dbd_sqlite3.c
> > > > --- drivers/sqlite3/dbd_sqlite3.c 20 Feb 2007 00:00:25 -0000
> > > 1.15
> > > > +++ drivers/sqlite3/dbd_sqlite3.c 29 Aug 2007 01:41:51 -0000
> > > > @@ -204,11 +204,11 @@ int _real_dbd_connect(dbi_conn_t *conn,
> > > > access rights or an existing database is corrupted or created
> > > > with an incompatible version */
> > > > if (sq_errmsg) {
> > > > - _dbd_internal_error_handler(conn, sq_errmsg, sqlite3_errcode);
> > > > + _dbd_internal_error_handler(conn, sq_errmsg, (const int)
> > > sqlite3_errcode);
> > > > free(sq_errmsg);
> > > > }
> > > > else {
> > > > - _dbd_internal_error_handler(conn, "could not open database",
> > > sqlite3_errcode);
> > > > + _dbd_internal_error_handler(conn, "could not open database",
> > > (const int) sqlite3_errcode);
> > > > }
> > > > return -1;
> > > > }
> > > > @@ -408,7 +408,7 @@ dbi_result_t *dbd_list_dbs(dbi_conn_t *c
> > > > }
> > > >
> > > > if (sq_errmsg) {
> > > > - _dbd_internal_error_handler(conn, sq_errmsg, retval);
> > > > + _dbd_internal_error_handler(conn, sq_errmsg, (const int)
> > > retval);
> > > > free(sq_errmsg);
> > > > break;
> > > > }
> > > > Index: drivers/sqlite3/dbd_sqlite3.h
> > > > ===================================================================
> > > > RCS file:
> > > /cvsroot/libdbi-drivers/libdbi-drivers/drivers/sqlite3/dbd_sqlite3.h,v
> > > > retrieving revision 1.1
> > > > diff -u -w -b -i -p -r1.1 dbd_sqlite3.h
> > > > --- drivers/sqlite3/dbd_sqlite3.h 29 Apr 2005 20:42:39 -0000
> > > 1.1
> > > > +++ drivers/sqlite3/dbd_sqlite3.h 29 Aug 2007 01:39:41 -0000
> > > > @@ -33,6 +33,10 @@ enum enum_field_types { FIELD_TYPE_DECIM
> > > > other systems use limits like 32 (PostgreSQL) and 64 (MySQL) */
> > > > #define MAX_IDENT_LENGTH 128
> > > >
> > > > +#ifndef _POSIX_PATH_MAX
> > >
> > > > +#define _POSIX_PATH_MAX 512
> > > > +#endif
> > > > +
> > > > #define SQLITE3_RESERVED_WORDS { \
> > > > "ACTION", \
> > > > "ADD", \
> > > --
> > > Markus Hoenicka
> > > [EMAIL PROTECTED]
> > > (Spam-protected email: replace the quadrupeds with "mhoenicka")
> > > http://www.mhoenicka.de
> > >
> > >
> >
>
Index: test_dbi.c
===================================================================
RCS file: /cvsroot/libdbi-drivers/libdbi-drivers/tests/test_dbi.c,v
retrieving revision 1.37
diff -u -w -b -i -r1.37 test_dbi.c
--- test_dbi.c 16 Oct 2006 20:24:11 -0000 1.37
+++ test_dbi.c 30 Aug 2007 03:05:09 -0000
@@ -4,8 +4,14 @@
#include <time.h>
#include <unistd.h>
+#ifdef __MINGW32__
+#include <windows.h>
+#define sleep(seconds) Sleep((seconds)*1000)
+#endif
+
#define QUERY_LEN 1024
+
struct CONNINFO {
char driverdir[256];
char drivername[64];
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
libdbi-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libdbi-devel