build target versions
Kelly O'Hair
Kelly.Ohair at Sun.COM
Wed May 6 18:01:19 UTC 2009
You are right, my mistake. I missed the use of Defs-control.gmk by the
top Makefile.
Supporting partial builds means that each repository needs it's own settings
and the full build needs to override those settings.
I'd prefer to have one place where these are defined but it can be tricky. :^(
-kto
Jonathan Gibbons wrote:
> 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