The TDBC build system should now be fully TEA compliant.
I've given up on making it build on 8.5, because it now depends on the changes made by TIP #357 introducing a Tcl_LoadFile entry point to load and build Stubs for a foreign library. The advantage to using Tcl_LoadFile is that all the drivers now can build anywhere that Tcl itself can, including cross compilation. This puts them well on the road to bundling them with Tcl itself.
To build tdbc itself, it should be possible to do:
./configure --prefix=/path [--exec_prefix=/path] --enable-threads [--enable-symbols](you can add other configuration options as desired), and then:
make all make test; # should pass 12 of 12 tests make install
To build the drivers, go into the individual driver source directories and do:
./configure --prefix=path [--exec_prefix=/path] --enable-threads [--enable-symbols]If you haven't installed a matching tdbc yet, you need to add:
--with-tdbc=/path/to/tdbc/build/dirAs with tdbc, the build is then:
make all make test make install
With most of the drivers, successful tests require:
- The database client libraries must be on PATH, LD_LIBRARY_PATH, or whatever your local system uses to find demand-load libraries.
- There must be an empty database in existence that the tests can run on. (SQLite3, and ODBC with Jet, use databases in the file system, so this caveat does not apply.)
- Many of the tests require environment variables to be set giving host name, database name, user ID, password, and similar values, to identify the database to use. The names of these variables are at the top of the individual '.test' files (e.g.,tdbcodbc/tests/tdbcodbc.test)
- A handful of tests fail; in particular, the ODBC driver for SQLite3 appears to get something wrong in transaction management and -readonly handling. (This failure is below the level of TDBC.)
The drivers should soon be available in the betas of ActiveTcl. Check with ActiveState for details.