16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 # Prepare the find cache. This is only used on windows. 27 $(eval $(call FillCacheFind, $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/windows/classes)) 28 29 # All .properties files to be compiled are appended to this variable. 30 ALL_COMPILED_PROPSOURCES := 31 # All generated .java files from compilation are appended to this variable. 32 ALL_COMPILED_PROPJAVAS := 33 # The (very long) command line for compilation, stored in a file, prior to use. 34 COMPILE_PROPCMDLINE := 35 36 # All .properties files to be cleaned are appended to this variable. 37 ALL_CLEANED_PROPSOURCES := 38 # All generated cleaned .properties files from cleaning are appended to this variable. 39 ALL_CLEANED_PROPOUTPUT := 40 # The (very long) command line for cleaning, stored in a file, prior to use. 41 CLEAN_PROPCMDLINE := 42 43 define add_properties_to_compile 44 # $1 is the name of the properties group 45 # $2 is the files belonging to this group 46 # $3 is the super class for the generated java file. 47 # $4 is a from pattern for translating stripped name from source to target 48 # $5 is the to pattern replacing $3 in the target 49 50 # Strip away prefix and suffix, 51 # leaving for example: sun/util/resources/CurrencyNames_sv 52 $1_PROPPATHS := $$(patsubst $(JDK_TOPDIR)/src/windows/classes/%.properties, %, \ 53 $$(patsubst $(JDK_TOPDIR)/src/macosx/classes/%.properties, %, \ 54 $$(patsubst $(JDK_TOPDIR)/src/share/classes/%.properties, %, $2))) 55 56 # Apply optional name transformation, example: hz_TW -> hz_HK 57 $(if $4, $1_PROPPATHS := $$(patsubst $4, $5, $$($1_PROPPATHS))) 58 59 # Accumulate all found properties files. 60 ALL_COMPILED_PROPSOURCES += $2 61 62 # Generate the list of to be created java files. 63 ALL_COMPILED_PROPJAVAS += $$(patsubst %, $(JDK_OUTPUTDIR)/gensrc/%.java, $$($1_PROPPATHS)) 64 65 # Now generate a sequence of "-compile ...CurrencyNames_sv.properties ...CurrencyNames_sv.java ListResourceBundle" 66 # suitable to be fed into the CompileProperties command. 67 COMPILE_PROPCMDLINE += $$(subst _SPACE_,$(SPACE),$$(join $$(addprefix -compile_SPACE_, $2), \ 68 $$(addsuffix _SPACE_$(strip $3), \ 69 $$(addprefix _SPACE_$(JDK_OUTPUTDIR)/gensrc/, \ 70 $$(addsuffix .java, $$($1_PROPPATHS)))))) 71 endef 72 73 define add_properties_to_clean 74 # $1 is the name of the properties group 75 # $2 is the files belonging to this group 76 # $3 is a from pattern for translating stripped name from source to target 77 # $4 is the to pattern replacing $3 in the target 78 # $5 optional name of extra directory to put properties files in (ex: resources) 79 80 # Strip away prefix and suffix, 81 # leaving for example: sun/util/resources/CurrencyNames_sv 82 $1_PROPPATHS := $$(patsubst $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes/%.properties, %, \ 83 $$(patsubst $(JDK_TOPDIR)/src/share/classes/%.properties, %, $2)) 84 85 # Apply optional name transformation, example: hz_TW -> hz_HK 86 $(if $3, $1_PROPPATHS := $$(patsubst $3, $4, $$($1_PROPPATHS))) 87 88 # Accumulate all found properties files. 89 ALL_CLEANED_PROPSOURCES += $2 90 91 # Generate the list of to be created java files. 92 $1_PROPOUTPUT := $$(patsubst %, $(JDK_OUTPUTDIR)/classes/%.properties, $$($1_PROPPATHS)) 93 # If the properties target file isn't in a "resources" dir, add one. 94 ifneq ($5, ) 95 $1_PROPOUTPUT := $$(foreach p, $$($1_PROPOUTPUT), $$(dir $$p)$5/$$(notdir $$p)) 96 endif 97 98 ALL_CLEANED_PROPOUTPUT += $$($1_PROPOUTPUT) 99 100 # Now generate a sequence of "-clean ...[src]...CurrencyNames_sv.properties ...[build]...CurrencyNames_sv.properties" 101 # suitable to be fed into the StripProperties command. 102 CLEAN_PROPCMDLINE += $$(subst _SPACE_,$(SPACE),$$(join $$(addprefix -clean_SPACE_,$2), \ 103 $$(addprefix _SPACE_, $$($1_PROPOUTPUT)))) 104 endef 105 106 # Some packages contain pregenerated java files instead of properties files. 107 # But unfortunately not all properties should be converted, some should be 108 # copied....argggghhh. 109 110 # For example: 111 # sun/applet/resources 112 # sun/misc/resources 113 # sun/text/resources 114 # sun/tools/jconsole/resources 115 # sun/tools/native2ascii/resources 116 # sun/util/resources 117 118 # Some packages have properties that need to be converted to java source files. 119 120 #com/apple/laf/resources 121 ifeq ($(OPENJDK_TARGET_OS), macosx) 122 $(eval $(call add_properties_to_compile,COM_APPLE_LAF, \ 123 $(filter %.properties, \ 124 $(call CacheFind, $(JDK_TOPDIR)/src/macosx/classes/com/apple/laf/resources)), \ 125 ListResourceBundle)) 126 endif 127 128 #com/sun/accessibility/internal/resources 129 $(eval $(call add_properties_to_compile,COM_SUN_ACCESSIBILITY, \ 130 $(filter %.properties, \ 131 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources)), \ 132 ListResourceBundle)) 133 $(eval $(call add_properties_to_compile,COM_SUN_ACCESSIBILITY_HK, \ 134 $(filter %.properties, \ 135 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources)), \ 136 ListResourceBundle, %zh_TW, %zh_HK)) 137 #com/sun/imageio/plugins/common 138 $(eval $(call add_properties_to_clean,COM_SUN_IMAGEIO, \ 139 $(filter %.properties, \ 140 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/imageio)))) 141 #com/sun/java/swing/plaf/gtk/resources 142 ifneq ($(OPENJDK_TARGET_OS), windows) 143 # Only compile GTK resource bundles on Solaris/Linux 144 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_GTK, \ 145 $(filter %.properties, \ 146 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources)), \ 147 ListResourceBundle)) 148 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_GTK_HK, \ 149 $(filter %.properties, \ 150 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources)), \ 151 ListResourceBundle, %zh_TW, %zh_HK)) 152 endif 153 #com/sun/java/swing/plaf/motif/resources 154 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_MOTIF, \ 155 $(filter %.properties, \ 156 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources)), \ 157 ListResourceBundle)) 158 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_MOTIF_HK, \ 159 $(filter %.properties, \ 160 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources)), \ 161 ListResourceBundle, %zh_TW, %zh_HK)) 162 #com/sun/java/swing/plaf/windows/resources 163 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_WINDOWS, \ 164 $(filter %.properties, \ 165 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources)), \ 166 ListResourceBundle)) 167 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_WINDOWS_HK, \ 168 $(filter %.properties, \ 169 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources)), \ 170 ListResourceBundle, %zh_TW, %zh_HK)) 171 #com/sun/java/util/jar/pack 172 $(eval $(call add_properties_to_clean,JNDI_COSNAMING, \ 173 $(JDK_TOPDIR)/src/share/classes/com/sun/java/util/jar/pack/intrinsic.properties)) 174 #com/sun/jndi/cosnaming 175 $(eval $(call add_properties_to_clean,JNDI_COSNAMING, \ 176 $(JDK_TOPDIR)/src/share/classes/com/sun/jndi/cosnaming/jndiprovider.properties)) 177 #com/sun/jndi/ldap 178 $(eval $(call add_properties_to_clean,JNDI_COSNAMING, \ 179 $(JDK_TOPDIR)/src/share/classes/com/sun/jndi/ldap/jndiprovider.properties)) 180 181 #com/sun/org/apache/xml/internal/security/resource 182 #FIXME: The "xmlsecurity*.properties" pattern is not ideal; we might want to find 183 #a better way to select the properties files that are needed. 184 $(eval $(call add_properties_to_clean,XML_SECURITY, \ 185 $(filter $(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity%.properties, \ 186 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource)))) 187 188 #com/sun/rowset 189 $(eval $(call add_properties_to_clean,COM_SUN_ROWSET, \ 190 $(filter %.properties, \ 191 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/rowset)))) 192 $(eval $(call add_properties_to_clean,COM_SUN_ROWSET_HK, \ 193 $(filter %zh_TW.properties, \ 194 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/rowset)), \ 195 %zh_TW, %zh_HK)) 196 197 #com/sun/swing/internal/plaf/basic/resources 198 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_BASIC, \ 199 $(filter %.properties, \ 200 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources)), \ 201 ListResourceBundle)) 202 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_BASIC_HK, \ 203 $(filter %.properties, \ 204 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources)), \ 205 ListResourceBundle, %zh_TW, %zh_HK)) 206 #com/sun/swing/internal/plaf/metal/resources 207 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_METAL, \ 208 $(filter %.properties, \ 209 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources)), \ 210 ListResourceBundle)) 211 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_METAL_HK, \ 212 $(filter %.properties, $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources)), \ 213 ListResourceBundle, %zh_TW, %zh_HK)) 214 #com/sun/swing/internal/plaf/synth/resources 215 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_SYNTH, \ 216 $(filter %.properties, \ 217 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources)), \ 218 ListResourceBundle)) 219 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_SYNTH_HK, \ 220 $(filter %.properties, \ 221 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources)), \ 222 ListResourceBundle, %zh_TW, %zh_HK)) 223 224 #com/sun/tools/jdi/resources 225 $(eval $(call add_properties_to_compile,COM_SUN_TOOLS_JDI, \ 226 $(filter %.properties, \ 227 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/tools/jdi/resources)), \ 228 ListResourceBundle)) 229 230 #com/sun/tools/script/shell 231 #java/util 232 #javax/sql/rowset 233 $(eval $(call add_properties_to_clean,JAVAX_SQL_ROWSET, \ 234 $(filter %.properties, \ 235 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/javax/sql/rowset)))) 236 #sun/awt/resources 237 $(eval $(call add_properties_to_compile,SUN_AWT, \ 238 $(filter %.properties, \ 239 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/awt/resources)), \ 240 ListResourceBundle)) 241 $(eval $(call add_properties_to_compile,SUN_AWT_HK, \ 242 $(filter %.properties, \ 243 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/awt/resources)), \ 244 ListResourceBundle, %zh_TW, %zh_HK)) 245 #sun/awt/windows/ 246 ifeq ($(OPENJDK_TARGET_OS), windows) 247 $(eval $(call add_properties_to_compile,SUN_AWT, \ 248 $(filter $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows/awtLocalization%.properties, \ 249 $(call CacheFind, $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows)), \ 250 ListResourceBundle)) 251 $(eval $(call add_properties_to_compile,SUN_AWT_HK, \ 252 $(filter $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows/awtLocalization%.properties, \ 253 $(call CacheFind, $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows)), \ 254 ListResourceBundle, %zh_TW, %zh_HK)) 255 endif 256 # os x specific awt properties 257 ifeq ($(OPENJDK_TARGET_OS),macosx) 258 $(eval $(call add_properties_to_compile,SUN_AWT,\ 259 $(filter $(JDK_TOPDIR)/src/macosx/classes/sun/awt/resources/%.properties,\ 260 $(call CacheFind,$(JDK_TOPDIR)/src/macosx/classes/sun/awt/resources)),\ 261 ListResourceBundle)) 262 endif 263 264 #sun/launcher/resources 265 $(eval $(call add_properties_to_compile,SUN_LAUNCHER, \ 266 $(filter %.properties, \ 267 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources)), \ 268 ListResourceBundle)) 269 $(eval $(call add_properties_to_compile,SUN_LAUNCHER_HK, \ 270 $(filter %.properties, \ 271 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources)), \ 272 ListResourceBundle, %zh_TW, %zh_HK)) 273 #sun/management/resources 274 $(eval $(call add_properties_to_compile,SUN_MANAGEMENT, \ 275 $(filter %.properties, \ 276 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/management/resources)), \ 277 ListResourceBundle)) 278 $(eval $(call add_properties_to_compile,SUN_MANAGEMENT_KH, \ 279 $(filter %.properties, \ 280 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/management/resources)), \ 281 ListResourceBundle, %zh_TW, %zh_HK)) 282 #sun/print 283 #sun/print/resources 284 $(eval $(call add_properties_to_compile,SUN_PRINT, \ 285 $(filter %.properties, \ 286 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/print/resources)), \ 287 ListResourceBundle)) 288 $(eval $(call add_properties_to_compile,SUN_PRINT_HK, \ 289 $(filter %.properties, \ 290 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/print/resources)), \ 291 ListResourceBundle, %zh_TW, %zh_HK)) 292 #sun/rmi/registry/resources 293 $(eval $(call add_properties_to_clean,SUN_RMI_REGISTRY, \ 294 $(filter %.properties, \ 295 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources)))) 296 $(eval $(call add_properties_to_clean,SUN_RMI_REGISTRY_HK, \ 297 $(filter %zh_TW.properties, \ 298 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources)), \ 299 %zh_TW, %zh_HK)) 300 301 #sun/rmi/rmic/resources 302 $(eval $(call add_properties_to_clean,SUN_RMI_RMIC, \ 303 $(filter %.properties, \ 304 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/rmi/rmic/resources)))) 305 306 #sun/rmi/server/resources 307 $(eval $(call add_properties_to_clean,SUN_RMI_SERVER, \ 308 $(filter %.properties, \ 309 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources)))) 310 $(eval $(call add_properties_to_clean,SUN_RMI_SERVER_HK, \ 311 $(filter %zh_TW.properties, \ 312 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources)), \ 313 %zh_TW, %zh_HK)) 314 315 # sun/tools/jar/resources 316 $(eval $(call add_properties_to_compile,SUN_TOOLS_JAR, \ 317 $(filter %.properties, \ 318 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources)), \ 319 ListResourceBundle)) 320 $(eval $(call add_properties_to_compile,SUN_TOOLS_JAR_HK, \ 321 $(filter %.properties, \ 322 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources)), \ 323 ListResourceBundle, %zh_TW, %zh_HK)) 324 325 #sun/tools/javac/resources 326 # It's unclear if the other localized property files here are supposed to be copied or not 327 # but the old build system didn't copy them. 328 $(eval $(call add_properties_to_clean,SUN_TOOLS_SERIALVER, \ 329 $(filter %javac.properties, \ 330 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/tools/javac/resources)))) 331 332 #sun/tools/jconsole/resources 333 $(eval $(call add_properties_to_clean,SUN_TOOLS_JCONSOLE, \ 334 $(filter %.properties, \ 335 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/resources)))) 336 337 #sun/tools/serialver 338 $(eval $(call add_properties_to_clean,SUN_TOOLS_SERIALVER, \ 339 $(filter %.properties, \ 340 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/tools/serialver)), , ,resources)) 341 342 #sun/util/logging/resources 343 $(eval $(call add_properties_to_compile,SUN_UTIL_LOGGING, \ 344 $(filter %.properties, \ 345 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources)), \ 346 ListResourceBundle)) 347 $(eval $(call add_properties_to_compile,SUN_UTIL_LOGGING_HK, \ 348 $(filter %.properties, \ 349 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources)), \ 350 ListResourceBundle, %zh_TW, %zh_HK)) 351 # sun/util/resources 352 $(eval $(call add_properties_to_compile,SUN_UTIL, \ 353 $(filter %.properties, \ 354 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/util/resources)), \ 355 sun.util.resources.LocaleNamesBundle)) 356 357 # Now setup the rule for the generation of the resource bundles. 358 $(JDK_OUTPUTDIR)/gensrc/_the.compiled_properties: $(ALL_COMPILED_PROPSOURCES) $(BUILD_TOOLS) 359 # Generate all output directories in advance since the build tool does not do that... 360 $(MKDIR) -p $(sort $(dir $(ALL_COMPILED_PROPJAVAS))) 361 $(ECHO) Compiling $(words $(ALL_COMPILED_PROPSOURCES)) properties into resource bundles 362 $(call ListPathsSafely,COMPILE_PROPCMDLINE,\n, >> $(JDK_OUTPUTDIR)/gensrc/_the.cmdline) 363 $(TOOL_COMPILEPROPERTIES) -quiet @$(JDK_OUTPUTDIR)/gensrc/_the.cmdline 364 $(TOUCH) $@ 365 366 # Now setup the rule for the generation of the cleaned properties. 367 # FIXME: We currently don't handle removed properties incrementally. 368 $(JDK_OUTPUTDIR)/classes/_the.cleaned_properties: $(ALL_CLEANED_PROPSOURCES) $(BUILD_TOOLS) 369 $(RM) $(JDK_OUTPUTDIR)/classes/_the.cleaned_properties.cmdline 370 # Generate all output directories in advance since the build tool does not do that... 371 $(MKDIR) -p $(sort $(dir $(ALL_CLEANED_PROPOUTPUT))) 372 $(ECHO) Copying and cleaning $(words $(ALL_CLEANED_PROPSOURCES)) properties 373 $(call ListPathsSafely,CLEAN_PROPCMDLINE,\n, >> $(JDK_OUTPUTDIR)/classes/_the.cleaned_properties.cmdline) 374 $(TOOL_STRIPPROPERTIES) @$(JDK_OUTPUTDIR)/classes/_the.cleaned_properties.cmdline 375 $(TOUCH) $@ 376 377 $(ALL_COMPILED_PROPJAVAS): $(JDK_OUTPUTDIR)/gensrc/_the.compiled_properties 378 379 $(ALL_CLEANED_PROPOUTPUT): $(JDK_OUTPUTDIR)/classes/_the.cleaned_properties 380 381 382 # Some zh_HK resources are just copied of zh_TW 383 $(JDK_OUTPUTDIR)/gensrc/%_zh_HK.java: $(JDK_TOPDIR)/src/share/classes/%_zh_TW.java 384 $(MKDIR) -p $(@D) 385 $(CAT) $< | $(SED) -e '/class/s/_zh_TW/_zh_HK/' > $@ 386 387 ZH_HK_JAVA := sun/applet/resources/MsgAppletViewer_zh_HK.java \ 388 sun/misc/resources/Messages_zh_HK.java \ 389 sun/security/util/AuthResources_zh_HK.java \ 390 sun/security/util/Resources_zh_HK.java 391 392 ZH_HK_JAVA_FILES := $(addprefix $(JDK_OUTPUTDIR)/gensrc/, $(ZH_HK_JAVA)) 393 394 395 GENSRC_PROPERTIES := $(ALL_COMPILED_PROPJAVAS) $(ALL_CLEANED_PROPOUTPUT) $(ZH_HK_JAVA_FILES) | 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 # Prepare the find cache. This is only used on windows. 27 $(eval $(call FillCacheFind, $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/windows/classes)) 28 29 # All .properties files to be compiled are appended to this variable. 30 ALL_COMPILED_PROPSOURCES := 31 # All generated .java files from compilation are appended to this variable. 32 ALL_COMPILED_PROPJAVAS := 33 # The (very long) command line for compilation, stored in a file, prior to use. 34 COMPILE_PROPCMDLINE := 35 36 define add_properties_to_compile 37 # $1 is the name of the properties group 38 # $2 is the files belonging to this group 39 # $3 is the super class for the generated java file. 40 41 # Strip away prefix and suffix, 42 # leaving for example: sun/util/resources/CurrencyNames_sv 43 $1_PROPPATHS := $$(patsubst $(JDK_TOPDIR)/src/windows/classes/%.properties, %, \ 44 $$(patsubst $(JDK_TOPDIR)/src/macosx/classes/%.properties, %, \ 45 $$(patsubst $(JDK_TOPDIR)/src/share/classes/%.properties, %, $2))) 46 47 # Accumulate all found properties files. 48 ALL_COMPILED_PROPSOURCES += $2 49 50 # Generate the list of to be created java files. 51 ALL_COMPILED_PROPJAVAS += $$(patsubst %, $(JDK_OUTPUTDIR)/gensrc/%.java, $$($1_PROPPATHS)) 52 53 # Now generate a sequence of 54 # "-compile ...CurrencyNames_sv.properties ...CurrencyNames_sv.java ListResourceBundle" 55 # suitable to be fed into the CompileProperties command. 56 COMPILE_PROPCMDLINE += $$(subst _SPACE_,$(SPACE),$$(join $$(addprefix -compile_SPACE_, $2), \ 57 $$(addsuffix _SPACE_$(strip $3), \ 58 $$(addprefix _SPACE_$(JDK_OUTPUTDIR)/gensrc/, \ 59 $$(addsuffix .java, $$($1_PROPPATHS)))))) 60 endef 61 62 ################################################################################ 63 # Some packages have properties that need to be converted to java source files. 64 COMPILE_PROP_SRC_FILES := \ 65 $(filter %.properties, $(call CacheFind, \ 66 $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources \ 67 $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources \ 68 $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources \ 69 $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources \ 70 $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources \ 71 $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources \ 72 $(JDK_TOPDIR)/src/share/classes/com/sun/tools/jdi/resources \ 73 $(JDK_TOPDIR)/src/share/classes/sun/awt/resources \ 74 $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources \ 75 $(JDK_TOPDIR)/src/share/classes/sun/management/resources \ 76 $(JDK_TOPDIR)/src/share/classes/sun/print/resources \ 77 $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources \ 78 $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources)) \ 79 # 80 81 ifeq ($(OPENJDK_TARGET_OS), macosx) 82 COMPILE_PROP_SRC_FILES += \ 83 $(filter %.properties, $(call CacheFind, \ 84 $(JDK_TOPDIR)/src/macosx/classes/com/apple/laf/resources \ 85 $(JDK_TOPDIR)/src/macosx/classes/sun/awt/resources)) \ 86 # 87 endif 88 89 ifeq ($(OPENJDK_TARGET_OS), windows) 90 COMPILE_PROP_SRC_FILES += \ 91 $(filter %.properties, $(call CacheFind, \ 92 $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows)) \ 93 # 94 else # ! windows 95 COMPILE_PROP_SRC_FILES += \ 96 $(filter %.properties, $(call CacheFind, \ 97 $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources)) \ 98 # 99 endif 100 101 $(eval $(call add_properties_to_compile,LIST_RESOURCE_BUNDLE, \ 102 $(COMPILE_PROP_SRC_FILES), ListResourceBundle)) 103 104 # sun/util/resources 105 $(eval $(call add_properties_to_compile,SUN_UTIL, \ 106 $(filter %.properties, \ 107 $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/sun/util/resources)), \ 108 sun.util.resources.LocaleNamesBundle)) 109 110 ################################################################################ 111 # Now setup the rule for the generation of the resource bundles. 112 $(JDK_OUTPUTDIR)/gensrc/_the.compiled_properties: $(ALL_COMPILED_PROPSOURCES) $(BUILD_TOOLS) 113 # Generate all output directories in advance since the build tool does not do that... 114 $(MKDIR) -p $(sort $(dir $(ALL_COMPILED_PROPJAVAS))) 115 $(ECHO) Compiling $(words $(ALL_COMPILED_PROPSOURCES)) properties into resource bundles 116 $(call ListPathsSafely,COMPILE_PROPCMDLINE,\n, >> $(JDK_OUTPUTDIR)/gensrc/_the.cmdline) 117 $(TOOL_COMPILEPROPERTIES) -quiet @$(JDK_OUTPUTDIR)/gensrc/_the.cmdline 118 $(TOUCH) $@ 119 120 $(ALL_COMPILED_PROPJAVAS): $(JDK_OUTPUTDIR)/gensrc/_the.compiled_properties 121 122 ################################################################################ 123 # Some zh_HK resources are just copies of zh_TW 124 125 define convert_tw_to_hk 126 $(MKDIR) -p $(@D) 127 $(CAT) $< | $(SED) -e '/class/s/_zh_TW/_zh_HK/' > $@ 128 endef 129 130 $(JDK_OUTPUTDIR)/gensrc/%_zh_HK.java: $(JDK_TOPDIR)/src/share/classes/%_zh_TW.java 131 $(call convert_tw_to_hk) 132 133 $(JDK_OUTPUTDIR)/gensrc/%_zh_HK.java: $(JDK_OUTPUTDIR)/gensrc/%_zh_TW.java 134 $(call convert_tw_to_hk) 135 136 ZH_HK_JAVA := sun/applet/resources/MsgAppletViewer_zh_HK.java \ 137 sun/misc/resources/Messages_zh_HK.java \ 138 sun/security/util/AuthResources_zh_HK.java \ 139 sun/security/util/Resources_zh_HK.java 140 141 ZH_HK_JAVA_FILES := $(addprefix $(JDK_OUTPUTDIR)/gensrc/, $(ZH_HK_JAVA)) \ 142 $(filter-out $(JDK_OUTPUTDIR)/gensrc/sun/util/resources/zh/%, \ 143 $(subst _zh_TW,_zh_HK,$(filter %_zh_TW.java, $(ALL_COMPILED_PROPJAVAS)))) 144 145 ################################################################################ 146 147 GENSRC_PROPERTIES := $(ALL_COMPILED_PROPJAVAS) $(ZH_HK_JAVA_FILES) |