build target versions

Jonathan Gibbons Jonathan.Gibbons at Sun.COM
Wed May 6 01:20:02 UTC 2009


It would appear that the setting in Defs-control.gmk affects langtools.

-- Jon


Kelly O'Hair wrote:
>
>
> Jonathan Gibbons wrote:
>> Kelly,
>>
>> We're trying to change the default values for the -source and -target 
>> options in javac.
>>
>> I'm trying to understand two settings in the jdk build:
>>
>> jdk/make/common/shared/Defs-control.gmk
>> This file sets TARGET_CLASS_VERSION to 5, without having a matching
>> setting of LANGUAGE_VERSION.
>
> I think this Defs-control.gmk file is only used by closed repositories.
> This setting can probably be deleted.
> I don't think those closed repositories need or use this setting.
>
>>
>> jdk/make/common/shared/Defs-java.gmk
>> This file sets TARGET_CLASS_VERSION to 5, and correctly has a matching
>> setting of LANGUAGE_VERSION.
>
> That should be the primary place where these are set.
>
>>
>> What is the difference between the settings in those two files?  In 
>> other words,
>> who uses each one?
>>
>> Also, I note the following:
>>
>> make/Defs-internal.gmk
>> This file passes on the value of TARGET_CLASS_VERSION but does not pass
>> on a corresponding version of LANGUAGE_VERSION.
>
> It should pass both. Most makefiles should have got the settings
> in Defs-java.gmk, but some Makefiles may not include Defs-java.gmk.
> Passing the values in on the command line forces them in and also
> overrides any private setting the makefiles might have.
> Although with LANGUAGE_VERSION being a string with spaces "-source 1.5"
> you'll need to be careful crafting it, using appropriate quotes.
> Or could we change LANGUAGE_VERSION to just a number? ;^)
>
>>
>> As a general rule, anyone setting javac's -target flag should 
>> normally always be
>> setting a corresponding -source flag as well.  The target value can 
>> be bigger (newer)
>> than the source value, but it is an error for the target to be less 
>> than the source value.
>> Setting one but not the other opens oneself up to the possibility of 
>> errors when the
>> default values change.
>
> Agreed, this is an oversight. I'm the one that created Defs-java.gmk to
> try and corral all these java settings, I missed this.
> (the corba/make/common/shared one is an unfortunate copy).
>
> ---
>
> I did a bit of an inventory...
>
> On TARGET_CLASS_VERSION I see:
>
> ./langtools/make/Makefile:ifdef TARGET_CLASS_VERSION
> ./langtools/make/Makefile:  ANT_OPTIONS += 
> -Djavac.target=$(TARGET_CLASS_VERSION)
> ./jaxws/make/Makefile:ifdef TARGET_CLASS_VERSION
> ./jaxws/make/Makefile:  ANT_OPTIONS += 
> -Djavac.target=$(TARGET_CLASS_VERSION)
> ./jaxp/make/Makefile:ifdef TARGET_CLASS_VERSION
> ./jaxp/make/Makefile:  ANT_OPTIONS += 
> -Djavac.target=$(TARGET_CLASS_VERSION)
> ./make/Defs-internal.gmk:    
> TARGET_CLASS_VERSION=$(TARGET_CLASS_VERSION) \
> ./jdk/make/com/sun/crypto/provider/Makefile:TARGET_CLASS_VERSION = 5
> ./jdk/make/common/shared/Defs-control.gmk:TARGET_CLASS_VERSION=5
> ./jdk/make/common/shared/Defs-java.gmk:TARGET_CLASS_VERSION = 5
> ./jdk/make/common/shared/Defs-java.gmk:CLASS_VERSION = -target 
> $(TARGET_CLASS_VERSION)
> ./jdk/make/javax/crypto/Makefile:TARGET_CLASS_VERSION = 5
> ./corba/make/common/shared/Defs-java.gmk:TARGET_CLASS_VERSION = 5
> ./corba/make/common/shared/Defs-java.gmk:CLASS_VERSION = -target 
> $(TARGET_CLASS_VERSION)
>
> On LANGUAGE_VERSION I see:
>
> ./langtools/make/Makefile:# Note: jdk/make/common/Defs.gmk uses 
> LANGUAGE_VERSION (-source NN)
> ./jaxws/make/Makefile:# Note: jdk/make/common/Defs.gmk uses 
> LANGUAGE_VERSION (-source NN)
> ./jaxp/make/Makefile:# Note: jdk/make/common/Defs.gmk uses 
> LANGUAGE_VERSION (-source NN)
> ./jdk/make/common/shared/Defs-java.gmk:LANGUAGE_VERSION = -source 1.5
> ./jdk/make/common/shared/Defs-java.gmk:JAVACFLAGS  += $(LANGUAGE_VERSION)
> ./jdk/make/javax/swing/beaninfo/SwingBeans.gmk:JAVADOCFLAGS    = 
> $(NO_PROPRIETARY_API_WARNINGS) $(LANGUAGE_VERSION)
> ./corba/make/common/shared/Defs-java.gmk:LANGUAGE_VERSION = -source 1.5
> ./corba/make/common/shared/Defs-java.gmk:JAVACFLAGS  += 
> $(LANGUAGE_VERSION)
>
> Just to clarify.
>
> -kto
>
>
>
>>
>> -- Jon




More information about the build-dev mailing list