Agreed. https://github.com/blakemcbride/Build
On Mon, Feb 11, 2019 at 9:40 PM Tim Murphy <tnmur...@gmail.com> wrote: > Targets with multiple outputs have never been well supported in GNU make > and despite appeals and the problem having existed forever and despite > examples of commercial make implementations that support it well, it would > not surprise me if support for it was something we could only hope for for > our children. I have, quite literally, gone grey haired waiting for it. > > So my advice is to to do anything except wait. > > Regards, Tim > > > On Tue, 12 Feb 2019, 04:13 Blake McBride <blake1...@gmail.com wrote: > >> 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 >> >
_______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make