ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Conor MacNeill" <>
Subject RE: [suggestion] re: Bootstrapping Ant
Date Tue, 08 Aug 2000 16:25:27 GMT

This is getting to be a rather philisophical discussion and I guess we will
end up agreeing to disagree. Nevertheless, let me address your latest

> Yes, but why create a wonderful cross platform tool like Ant with
> processor non-specific binaries and then use totally processor specific
> shell scripts to bootstrap the build.  It seem to me to be like saying,
> here's a new build tool to replace make, we suggest you use it for your
> projects, but we don't use it for ours.

I disagree.

Firstly let us define what we mean by bootstrap. I define it to mean
building ant when you do not have ant already available. Bootstrapping, by
definition therefore, cannot use ant. If you want to bootstrap ant without
using a platform script, you can use whatever mechanism you like as long as
you cause javac to compile certain core parts of ant. If you can do that on
a platform in a platform independent way, then please let us see it. The
bootstrap scripts are just a convenience for doing that on particular

Your argument to include ant.jar in ant means we would never bootstrap. OK,
that is not necessarily unreasonable. In fact Duncan, who originally wrote
ant did not bootstrap ant very often. Originally there was only
bootstrap.bat and not Nevertheless, I find it desirable to be
able to build ant straight from source without needing to have an ant.jar
around. Most of the time I don't need to but it is good to have the ability.

If you don't want to bootstrap ant at all, get a binary distribution from
the nightly build and then use it to build ant.

> Yes, the bootstrapping process builds and then utilises ant, but
> shouldn't
> we be aiming towards being able to avoid the build script
> altogether so we
> can run this thing on our Palm Pilot, or MacOS or whatever we happen to
> develop on whenever and wherever we happen to do it.

If don't want to use the scripts, you don't really have to. If you already
have ant available, invoke it how you like on ant's build script and it
should build ant. If you don't have ant available and you don't want to
bootstrap ant using the scripts, download a binary nightly build or latest
release and use that to build ant.

> > I think ant itself, and not just the build scripts rely on the
> pre-existence
> > of Java and the java compiler. Not much we can do there :-)
> I was clearly a bit brief on this point - you're not the only person to
> misunderstand me!
> What I mean is, Ant assumes that we have Java in our machine -
> without it
> Ant is useless.  So why are we also relying on the existence of
> particular
> shell script interpreters as well?

We don't rely on them, we use them as a convenience. Once you have an
ant.jar, you can use whatever mechanisms you like to invoke

> If we use Java for the
> bootstrap we are
> cutting out a dependency that we may not need to have and making things
> more platform independent.

You can just use Java for the bootstrap but you can't use ant because that
is not a bootstrap. That is building ant with ant.

> run ant. I
> > doubt you are suggesting we remove these platform specific
> scripts, are you?
> Yes - if at all possible.

Well if you can provide whatever is necessary to invoke ant on platform X,
then we can include it in the build and release.

> I would hope that shell scripts would only be necessary to simplify
> launching, and as a flexible mechanism for setting preferences /
> properties
> differently from the working defaults. It would provide the wrappers to
> make it launch under pre: 1.2 Java VMs etc.

Yes, I think I agree there. The scripts are convenient wrappers.

> Okay, but in most cases a previous Ant should be able to build itself -
> and indeed making that happen is a fairly justifiable target.

How previous? Previous release, previous nightly build, previous checkout? I
would prefer not to unnecessarily restrict the use of new features in the
build of ant. After all, you can always bootstrap it :-)

> However,
> even when it can't it should be possible to distribute an
> up-do-date binary
> that will.

I call that a nightly build.

> > Having the ant.jar in CVS is unnecessary, so why bother? It is not that
> > difficult to build ant purely from source.
> The same could be said for the existence of Ant at all given that we
> already have makefile.

I wonder how they build make? does it include a copy of make?


View raw message