Re: [PATCHES] Ant configuration - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: [PATCHES] Ant configuration
Date
Msg-id 00e401c159b6$022ba820$8201a8c0@inspiron
Whole thread Raw
In response to Re: [PATCHES] Ant configuration  (Peter Eisentraut <peter_e@gmx.net>)
Responses Re: [PATCHES] Ant configuration
List pgsql-jdbc

Dave Cramer writes:

> The one issue I have with a non ant based build system is that it
> makes it difficult to build the driver on a windows machine.

That is a valid concern that we're going to have to think about before
we move to another method.

> What problems does ant present?

* Ant needs to be installed.  Of course this is not that much of a
problem because you can simply install it.  However, in automated build
environments this might not be so easy, so people are just going to opt
to leave out the JDBC driver.

I'm sure we can use the Makefile to install the ant jar.

* Ant doesn't provide an exit status; you have to watch the build to see
if it works.  This is unacceptable.

Hmmm... I will look into this

* Ant is buggy.  We've had numerous reports of people having trouble
with it for no apparent reason.  I can also confirm from my own
experience that numerous things don't seem to work the way they should
work.

I find this a little hard to believe given the number of projects which
use ant as a primary build tool. jarkarta.apache.org for instance

* In numerous attempts I have failed to convince Ant to place the built
files in a tree different from the source tree.  This really makes it a
pain to build for multiple architectures (in Java, architecture =
different jdk).

I think this can be overcome. I have had no problems with this.

* Ant doesn't support gcj last I checked.  This is a real tragedy
because gcj is the only free(tm) Java compiler available that seems to
have a real future.  Ant doesn't support Kaffe very well, btw.

There are a number of free compilers, sun's is free, ibm's is free....

* The Ant language is not nearly as powerful as the stuff you can do in
Makefiles.

No comment .... I am Make challenged, but Ant is pretty comprehensive...

* Ant is, well, different.  I have personally spent a lot of effort to
make all parts of PostgreSQL build the same way.  Every new language has
to reinvent configuration and build management:  Perl MakeMaker -- total
junk, Python distutils -- no thanks, Tcl -- well, at least they had the
right idea.  Ant -- one more thing to go wrong.  Currently, everything
you want to switch and change about the build of PostgreSQL you
communicate to the configure script.  How do you change the Java
compiler?  Good question
-- not even the Ant manual can answer that because it depends on your
particular distribution.

Change the $JAVA_HOME environment variable AFAIK

The problem is that Ant is a completely new and different tool that we
have to deal with, but it doesn't actually solve a problem that hasn't
been solved already.

Well, this is a little philosophical, but my current focus is java, and
ant is the de-facto standard for building java programs, so I guess I'm
biased towards it.

One thing it does solve is the ability to resolve inter-dependancies
automatically. I have had builds which can only be built by ant, or by
building the entire source tree at once. This is one feature which is
usefull.

As for a solution. My opinion is that we should support both.

There seems to be enough interested parties to support both build tools.
For the folks that want a Makefile, they can support it. If someone
wants to support the build.xml file, then we should encourage it. I
suspect that one of them will become obsolete on it's own.

Dave


pgsql-jdbc by date:

Previous
From: Per-Olof Norén
Date:
Subject: Ant installation (and other) issues!
Next
From: "Dr. Evil"
Date:
Subject: PreparedStatement parameters question