building langtools (extension of partial builds)

Jonathan Gibbons jonathan.gibbons at oracle.com
Mon Oct 29 12:02:51 PDT 2012


I would think that developers working in the jdk/ directory would also 
like a --with-top-level option.

-- Jon


On 10/29/2012 11:57 AM, Magnus Ihse Bursie wrote:
> On 2012-09-18 18:49, Jonathan Gibbons wrote:
>>
>> For the record, this worked for me:
>>
>> ( mkdir -p build.new ; cd build.new ; sh 
>> /w/jjg/work/tl/common/autoconf/configure 
>> --with-override-langtools=$(cd .. ; pwd) )
>>
>> followed by
>>
>> make -f build.new/Makefile  langtools
> If this turns out to be a common mode of operation, we should probably 
> try to add support to it somehow.
>
> Maybe we could add a simple script named "configure" in the langtools 
> repo root, which would require a parameter
> --with-toplevel=/w/jjg/work/tl
> or something like that, and then calling /w/jjg/work/tl/configure with 
> --with-override-langtools=<directory of the langtools configure script>
> and all other configure arguments the user would like to pass. And 
> possibly also overriding the output, to create a build/<configuration> 
> directory under the current langtools repo instead. (This is currently 
> not easy to do, but it would be simple to add a --with-build-dir or so 
> to the top-level configure).
>
> I have already created a thin wrapper in langtools/makefiles/Makefile, 
> which will try to locate the top-level Makefile and run "make 
> langtools". This could possibly be improved in many ways, to allow 
> more fine-grained interaction with the langtools part of the build.
>
> For the jdk repo, I have added a JDK_TARGET variable, so you can type 
> "make jdk-only JDK_TARGET=libs-only" if you want to run the libs-only 
> target in the jdk makefile.
>
>>
>> FWIW, it works well enough, but it does more than I need as a 
>> langtools developer. I just need what is now builld/langtools/classes 
>> in this new world; I don't need the *.{jar,zip} files to be 
>> created/updated, with the exception of the bootstrap javac.  And, 
>> because everything channels through the top level makefile, there 
>> appears to be no easy way to build interim targets in 
>> langtools/makefiles/Makefile, is that right?
>
> I think the idea here is that when we transition to having smartjavac 
> as default, the default mode of operation would be to have a jar file, 
> not a directory full of class files, as default output. The new build 
> system mimics this, even when not running with smartjavac.
>
> But with that said, it might very well be the case that we are doing 
> stuff in langtools that's only needed if you want to build an image. 
> If so, we might want to consider moving that to a separate target in 
> langtools, and only call it if we are building an image.
>
> /Magnus




More information about the build-infra-dev mailing list