[Monetdb-developers] JDBC liberation: use ant instead of make

Fabian Groffen Fabian.Groffen at cwi.nl
Fri Dec 9 10:41:23 CET 2005

Hi list,

Tonight's testweb reveals that not a single JDBC test has run, due to
incorrect packaging of the driver.  I have always disliked the was the
driver was built and packaged, but I think this time again, it is proven
that `make` is too ancient for Java, or at least too clumpsy to deal
with it.

This is not only my personal opinion.  That is, long ago other people
already found out that make doesn't work that well with Java
environments[1].  Although I understand the need to keep it 'simple'[2],
I personally feel that fixing the current setup again to make it work is
just another hack.  From the very start of JDBC development, I used
`ant`[1] to build the driver.  Ant is, unlike make, a build tool geared
towards Java projects, and the ant build scripts[3] that are currently
in CVS have a much better understanding of the various files than make
does.  Just to name a few:

- ant has multiple build targets for JDBC, XML:DB, MCL, etc.
- ant date stamps each build
- ant generates documentation when required
- ant understands Java
- ant builds jar files much more flexible.

I am strongly in favour of using ant in the future to build Java related
files.  That is, let configure detect if ant is available or not, when
Java is available.  If not, don't build, or complain.  I think most of
our test platforms (especially since Sun and IRIX are RIP) have ant
available (even Darwin has it!), as such availability of the build tools
shouldn't be an issue.
On a side note, testing Java on many platforms isn't that interesting,
since the JVM itself has been tested on all platforms Sun supports.  For
JDBC, currently only endianness, timezone and charset are important.
Since Darwin is both different-endian as well as in another timezone and
using another charset by default, it is the only machine that really
is interesting from a testing perspective, next to a windows machine and
a linux machine in our neigbourhood.

[1] http://ant.apache.org/
[2] that is, using tools known to those who deal with it
[3] ant's build scripts are XML files called build.xml

More information about the developers-list mailing list