I appreciate all of the replies and comments, but I think a point is being
missed.

Let's say my Java app is made up of 9,500 source files (which is actually
true!).  Let's say I change 20 of them.

1.  How could I create a dependency that basically says the 9,500 Java
files in an entire source directory tree result in the 9,500 class files in
the output directory tree?

2.  I need to create a text file to pass a lot of parameters to a single
evocation of javac.  This file must contain all the updated java files and
a pointer (classpath) to the already up-to-date class files.

What has been suggested works fine for 20 Java files.  But it is
impractical for 10,000 files.

Make doesn't deal with source trees well.  Although I can use 'find' in a
recipe, I can't for the target and dependency files.  I can't say, all of
the class files in one tree is dependent on all of the java files in
another - while also only compiling the out-of-date files - all in one
javac evocation.

Perhaps I am wrong.  But I think these are the problems that drove the
development of ant, maven, gradle, and others.

I intuit that make could be enhanced to deal with these other scenarios if
the will existed.

Thanks.

Blake


On Mon, Jan 21, 2019 at 3:24 AM Andrea Venturoli <m...@netfence.it> wrote:

> On 1/21/19 3:17 AM, Blake McBride wrote:
>
> > 1.  When building C programs one calls the compiler for each source
> > file.  This is impractical with Java because of the javac startup time.
> > Typically javac is called once with many source files at a time - but
> > not the ones that are not out of date.
>
> This is easy to overcome with a proper rule.
>
> I've used make a lot in the past for some Java project which didn't
> involve complex layouts.
>
>
>
>
> > 3.  Java build tools have the ability to download and cache files from
> > remote repositories over the net.
>
> This is something that make does not do (and does not try to do).
> Period.
>
> If you are doing a complex project which involves a lot of dependencies
> and you want them to be fetched and delivered, I guess make is not an
> option.
>
>
>
>
> Just my 2c.
>
>   bye
>         av.
>
> _______________________________________________
> Bug-make mailing list
> Bug-make@gnu.org
> https://lists.gnu.org/mailman/listinfo/bug-make
>
_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to