Ok, I see. Thanks for those very clear explanations and workarounds. I'll 
try some of them when I get the time to play with this again. It's too bad 
tup doesn't support marking a directory as completely untracked.

On Sunday, November 2, 2014 10:53:12 AM UTC-5, Neil Shepperd wrote:
>
> Hi, 
>
> My approach for building java projects with tup is to work in terms of jar 
> files bundling collections of classes. It's not perfect, since it somewhat 
> reduces the granularity of the dependency resolution, but it avoids a lot 
> of fussing about. The scripts I use are uploaded at 
> https://github.com/nshepperd/tup-java-tools - hopefully they haven't 
> bitrot yet... There's some android scripts as well, which you can ignore. 
> But basically instead of calling javac directly from tup, I have a python 
> script which calls javac then wraps all compilation products into a jar 
> file. This way you get a single known output file for each command. 
>
> For example, given a set of three java sources {A,B,C}.java, where A and B 
> are independent but C could import A and B, I would do: 
>
>     (with !javac = |> $(TOOLS_HOME)/javac.py -o %o %f |>) 
>     : src/A.java |> !javac |> src/A.jar 
>     : src/B.java |> !javac |> src/B.jar 
>     : src/C.java src/A.jar src/B.jar |> !javac |> src/C.jar 
>
> This results in three jar files, containing the classes output from 
> A.java, B.java, C.java respectively. You could then combine the products 
> into one file (analogous to a static library) with mashjar.py: 
>
>     (!mashjar = |> $(TOOLS_HOME)/mashjar.py -o %o %f |>) 
>     : src/*.jar |> !mashjar |> everything.jar 
>
> Alternatively, you could compile everything at once: 
>
>     : src/*.java |> !javac |> everything.jar 
>
> This is the less granular but easier approach. 
>
> These scripts all support a "-e entry.Point" option for defining the entry 
> point to an executable jarfile, but other than that they're qute dumb and 
> could do with extension -- for example, currently there's no way to supply 
> compiler flags like "-debug". Also if you try to compile without having 
> javac and fastjar both available in your PATH I think these scripts will 
> just fail mysteriously. But this at least gives you the idea of how you can 
> handle this. 
>
> Hope this helps- 
>
> Regards, 
>
> Neil 
>

-- 
-- 
tup-users mailing list
email: [email protected]
unsubscribe: [email protected]
options: http://groups.google.com/group/tup-users?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"tup-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to