Resources.gmk revision 2362
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# This code is free software; you can redistribute it and/or modify it
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# under the terms of the GNU General Public License version 2 only, as
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# published by the Free Software Foundation. Oracle designates this
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# particular file as subject to the "Classpath" exception as provided
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# by Oracle in the LICENSE file that accompanied this code.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# This code is distributed in the hope that it will be useful, but WITHOUT
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# version 2 for more details (a copy is included in the LICENSE file that
27e52281f1522522b170cafc76b08b58aa70ccaand# accompanied this code).
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# You should have received a copy of the GNU General Public License version
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# 2 along with this work; if not, write to the Free Software Foundation,
4b5981e276e93df97c34e4da05ca5cf8bbd937dand# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# or visit www.oracle.com if you need additional information or have any
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# questions.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Generic mechanism for installing properties files, resource bundles,
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# and other resource files.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# FILES_properties should be defined.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# FILES_compiled_properties should be defined.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# If COMPILED_PROPERTIES_SUPERCLASS is defined, ALL the FILES_properties
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# files will be compiled into java with this super class.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# You can add locales to LOCALE_SUFFIXES explicitly, or use the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# LOCALE_SET_DEFINITION variable to add some pre-defined locale lists.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# The LOCALE_SET_DEFINITION can have the value: jre, plugin, or jdk.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Resource bundles to be installed are identified using the following variables.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Note that only the file name of the base bundle is given; localized versions
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# are added automatically. For Java files, use a format suitable for inclusion
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# in the FILES_java list; dito for properties, all relative paths.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# NEW_RESOURCE_BUNDLES_JAVA - new resource bundles implemented in
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Java, not localized
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# RESOURCE_BUNDLES_JAVA - resource bundles implemented in
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Java, localized
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# The following variable is now used for most .properties files in the JDK.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# These properties files are converted into java and compiled with javac.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# The resulting .class files are usually smaller and are always faster to load.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# The relative path to the properties file becomes a relative path to a
3a4bee74e997db3681ef3fe735202ba35f52cb98nd# java source file.
b3c7a2279fa7a45f5807d9a404760b9b3760df50nd# RESOURCE_BUNDLES_COMPILED_PROPERTIES - resource bundles implemented as
b3c7a2279fa7a45f5807d9a404760b9b3760df50nd# properties files, localized
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# NEW_RESOURCE_BUNDLES_COMPILED_PROPERTIES - same as above, not localized
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# For non-compiled properties files, use the following variables:
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# NEW_RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES - new resource bundles implemented as
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# properties files, not localized
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES - resource bundles implemented as
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# properties files, localized
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Other properties files to be installed are identified using the variable:
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# OTHER_PROPERTIES
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Compile properties files into java source?
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd # Add all properties files to the compiled properties list (all or nothing)
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd COMPILED_PROPERTIES += $(FILES_compiled_properties) $(FILES_properties)
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Determine the locale suffixes needed beyond the base bundle
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Java files get tacked onto the standard list of files to compile
42af92a661a06b3cebc88d585aad75064a309d51ndRESOURCE_BUNDLE_FILES_java += $(NEW_RESOURCE_BUNDLES_JAVA)
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Add to java sources list
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Compiled properties files are translated to .java.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# The .java files are generated into GENSRCDIR.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60ndCOMPILED_PROPERTIES += $(NEW_RESOURCE_BUNDLES_COMPILED_PROPERTIES)
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60ndCOMPILED_PROPERTIES += $(RESOURCE_BUNDLES_COMPILED_PROPERTIES) \
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Add to java sources list
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Non-compiled files
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60ndPROPERTIES_FILES += $(NEW_RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES)
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60ndPROPERTIES_FILES += $(RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES) \
05ede5110427cb9dc071cc671d5aaba5d3b88c79nd $(foreach file,$(RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES), \
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# other properties
611049e38bfbaeb173d2d7fab2e44a48753436a1nd# Compile Properties tool
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60ndCOMPILEPROPERTIES_JARFILE = $(BUILDTOOLJARDIR)/compileproperties.jar
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Strip Properties tool
d8b761beec42bbe2847bb14e3b706642c6eed47cndSTRIPPROPERTIES_JARFILE = $(BUILDTOOLJARDIR)/stripproperties.jar
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Process and strip all non-compiled properties files (in a batch mode)
03a4ff9ac4c9b8009249010e7c53bb86ff05915andSTRIP_PROP_FILES = $(PROPERTIES_FILES:%=$(CLASSDESTDIR)/%)
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# To efficiently strip properties we use one run of StripProperties.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# This macro gathers an option for use later.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Constructs command line options file
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Strip the properties files
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60ndstrip_all_props: $(STRIPPROPERTIES_JARFILE) $(STRIP_PROP_options)
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd @if [ -s $(STRIP_PROP_options) ] ; then \
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd $(ECHO) "$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) -optionsfile $(STRIP_PROP_options)" ; \
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd $(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) -optionsfile $(STRIP_PROP_options) ; \
28c9d384aa958b321280b4ac886941dcad25396bnd# Creates files in CLASSDESTDIR
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# In some cases, we move files from package to resources subdir
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd$(CLASSDESTDIR)/%.properties: $(SHARE_SRC)/classes/%.properties
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# To efficiently compile properties into java sources we use one run
898711b68797304101de0882fa576c8908acfae6nd# of compileproperties. This macro gathers an option for use later.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# Note: The properties file and java source name can be different
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# locales, e.g. zh_TW and zh_HK. The java source filename
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd# determines the name of the class.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd$(ECHO) "-compile $? $@ $(COMPILED_PROPERTIES_SUPERCLASS)" \
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd$(GENSRCDIR)/%.java: $(CLOSED_PLATFORM_SRC)/classes/%.properties
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd$(GENSRCDIR)/%.java: $(CLOSED_SHARE_SRC)/classes/%.properties
@$(TOUCH) $@