xml-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Pogue <mpo...@apache.org>
Subject Re: Makefile's
Date Mon, 29 Nov 1999 18:27:38 GMT
I can comment based on my build experiences here...see below.

Dirk-Willem van Gulik wrote:
> 
> I am looking at various makefile options, gmake vs make vs Ant. Is there
> a good reason why a lot of OS java author's seem prefer
> 
>         1.      to simply compile everything in one javac statement
>                 which has been CD's to the right output
>                 directory. Regardless of wether all java files need
>                 to be recompiled.

Compiling "everything in a directory" can introduce errors into the
build, if you have temporary (or experimental) .java files sitting in a
directory that should NOT be built.

If people are checking in experimental files, you can never just
checkout all the latest files from CVS, and then say "build", because
you'll pick up too many files.

Yes, I have had this happen (when we did use a "compile *.java"-style
build).

> over
>         2.      compile everhting and use a -o/-d/-xxx output
>                 specifier
> over
>         3.      defined dependencies and do it file by file
>                 instead of all, and only when needed

This saves time, but frankly, when the whole build takes 10 seconds, it
doesn't save much time at all.  Maintaining dependencies by hand is hard
-- in general it's nice to have a tool (like makemake) to do it.

> 
> Is there a good reason ? Are dependencies too hard ? Or do (some)
> compiler's work this out themselfes well enough ?
>

Some do, but not all.
 
> And secondly, why is there such a strong desire to move the *.class
> file's far away from the source ?
>

It's convenient to have the sources in one place, and the build
intermediate and final outputs in another.  It makes packaging much
easier, when you want to exclude the source code, and/or intermediate
results.

Mike

Mime
View raw message