make/gensrc/GensrcProperties.gmk
author erikj
Fri, 11 May 2018 08:39:21 -0700
changeset 50142 f348e5d4769b
parent 47217 72e3ae9a25eb
child 50590 5fa19bad622d
permissions -rw-r--r--
8202914: Let custom makefile override jmod intput dir locations Reviewed-by: tbell
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12317
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
     1
#
33669
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
     2
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
12317
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
     4
#
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
     7
# published by the Free Software Foundation.  Oracle designates this
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
     8
# particular file as subject to the "Classpath" exception as provided
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
     9
# by Oracle in the LICENSE file that accompanied this code.
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    10
#
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    11
# This code is distributed in the hope that it will be useful, but WITHOUT
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    13
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    14
# version 2 for more details (a copy is included in the LICENSE file that
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    15
# accompanied this code).
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    16
#
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    17
# You should have received a copy of the GNU General Public License version
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    18
# 2 along with this work; if not, write to the Free Software Foundation,
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    19
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    20
#
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    21
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    22
# or visit www.oracle.com if you need additional information or have any
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    23
# questions.
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    24
#
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    25
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    26
# This file defines macros that sets up rules for generating java classes
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    27
# from resource bundle properties files.
12317
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    28
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    29
################################################################################
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    30
# Helper macro for SetupCopy-zh_HK.
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    31
define SetupOneCopy-zh_HK
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    32
  $1_$2_TARGET := $$(patsubst $(TOPDIR)/src/$(MODULE)/share/classes/%, \
27565
729f9700483a 8049367: Modular Run-Time Images
chegar
parents: 27088
diff changeset
    33
      $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/%, \
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    34
      $$(subst _zh_TW,_zh_HK, $2))
12317
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    35
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    36
  $$($1_$2_TARGET): $2
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    37
	$(MKDIR) -p $$(@D)
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    38
	$(CAT) $$< | $(SED) -e '/class/s/_zh_TW/_zh_HK/' > $$@
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    39
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    40
  $1 += $$($1_$2_TARGET)
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    41
endef
12317
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    42
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    43
################################################################################
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    44
# Creates rules for copying zh_TW resources to zh_HK.
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    45
# Param 1 - Variable to add targets to
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    46
# Param 2 - Files to copy from
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    47
define SetupCopy-zh_HK
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    48
  $$(foreach f, $2, $$(eval $$(call SetupOneCopy-zh_HK,$1,$$f)))
12317
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    49
endef
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    50
23236
7c5997f59e20 8036611: Cleanup of handling of properties and other java resources in the build
erikj
parents: 23010
diff changeset
    51
################################################################################
33669
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    52
# Setup make rules that runs CompileProperties on a set of properties files.
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    53
#
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    54
# Parameter 1 is the name of the rule. This name is used as variable prefix,
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    55
# and the targets generated are listed in a variable by that name.
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    56
#
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    57
# Remaining parameters are named arguments. These include:
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    58
# SRC_DIRS   Directories containing properties files to process.
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    59
# EXCLUDE   Exclude files matching this pattern.
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    60
# CLASS   The super class for the generated classes.
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    61
# MODULE_PATH_ROOT   Module path root, defaults to $(TOPDIR)/src.
33669
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    62
SetupCompileProperties = $(NamedParamsMacroTemplate)
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    63
define SetupCompilePropertiesBody
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    64
  # Set default value unless overridden
29096
e91fff38083a 8073498: Enhance GensrcProperties.gmk to allow an alternative source root
erikj
parents: 27799
diff changeset
    65
  ifeq ($$($1_MODULE_PATH_ROOT), )
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    66
    $1_MODULE_PATH_ROOT := $(TOPDIR)/src
29096
e91fff38083a 8073498: Enhance GensrcProperties.gmk to allow an alternative source root
erikj
parents: 27799
diff changeset
    67
  endif
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    68
33669
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    69
  # Locate all properties files in the given source dirs.
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    70
  $1_SRC_FILES := $$(filter %.properties, $$(call CacheFind, $$($1_SRC_DIRS)))
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    71
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    72
  ifneq ($$($1_EXCLUDE), )
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    73
    $1_SRC_FILES := $$(filter-out $$($1_EXCLUDE), $$($1_SRC_FILES))
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    74
  endif
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    75
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    76
  # Convert .../src/<module>/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties
27753
a6c284fa0745 8065412: generated source to compile .properties file incorreectly includes the module name in the package name
erikj
parents: 27088
diff changeset
    77
  # to .../support/gensrc/<module>/com/sun/tools/javac/resources/javac_zh_CN.java
35241
075bbb8f2423 8146403: Windows build can be faster
erikj
parents: 34330
diff changeset
    78
  # Strip away prefix and suffix, leaving for example only:
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    79
  # "<module>/share/classes/com/sun/tools/javac/resources/javac_zh_CN"
29096
e91fff38083a 8073498: Enhance GensrcProperties.gmk to allow an alternative source root
erikj
parents: 27799
diff changeset
    80
  $1_JAVAS := $$(patsubst $$($1_MODULE_PATH_ROOT)/%, \
27565
729f9700483a 8049367: Modular Run-Time Images
chegar
parents: 27088
diff changeset
    81
      $(SUPPORT_OUTPUTDIR)/gensrc/%, \
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    82
      $$(patsubst %.properties, %.java, \
27753
a6c284fa0745 8065412: generated source to compile .properties file incorreectly includes the module name in the package name
erikj
parents: 27088
diff changeset
    83
      $$(subst /$(OPENJDK_TARGET_OS)/classes,, \
a6c284fa0745 8065412: generated source to compile .properties file incorreectly includes the module name in the package name
erikj
parents: 27088
diff changeset
    84
      $$(subst /$(OPENJDK_TARGET_OS_TYPE)/classes,, \
33669
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    85
      $$(subst /share/classes,, $$($1_SRC_FILES))))))
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    86
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    87
  # Generate the package dirs for the to be generated java files. Sort to remove
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    88
  # duplicates.
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    89
  $1_DIRS := $$(sort $$(dir $$($1_JAVAS)))
12317
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
    90
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    91
  # Now generate a sequence of:
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    92
  # "-compile ...javac_zh_CN.properties ...javac_zh_CN.java java.util.ListResourceBundle"
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    93
  # suitable to be fed into the CompileProperties command.
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    94
  $1_CMDLINE := $$(subst _SPACE_, $(SPACE), \
33669
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    95
      $$(join $$(addprefix -compile_SPACE_, $$($1_SRC_FILES)), \
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    96
      $$(addsuffix _SPACE_$$($1_CLASS), \
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    97
      $$(addprefix _SPACE_, $$($1_JAVAS)))))
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
    98
33669
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
    99
  $1_TARGET := $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/_the.$1.marker
27565
729f9700483a 8049367: Modular Run-Time Images
chegar
parents: 27088
diff changeset
   100
  $1_CMDLINE_FILE := $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/_the.$1.cmdline
13702
efd6a05935b2 7197849: Update new build-infra makefiles
ohair
parents: 13583
diff changeset
   101
27565
729f9700483a 8049367: Modular Run-Time Images
chegar
parents: 27088
diff changeset
   102
# Now setup the rule for the generation of the resource bundles.
33669
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
   103
  $$($1_TARGET): $$($1_SRC_FILES) $$($1_JAVAS) $(BUILD_TOOLS_JDK)
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
   104
	$(MKDIR) -p $$(@D) $$($1_DIRS)
33669
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
   105
	$(ECHO) Compiling $$(words $$($1_SRC_FILES)) properties into resource bundles for $(MODULE)
32833
b99bc9129f51 8136385: Various build speed improvements for windows
erikj
parents: 29096
diff changeset
   106
	$$(eval $$(call ListPathsSafely, $1_CMDLINE, $$($1_CMDLINE_FILE)))
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
   107
	$(TOOL_COMPILEPROPERTIES) -quiet @$$($1_CMDLINE_FILE)
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
   108
	$(TOUCH) $$@
13702
efd6a05935b2 7197849: Update new build-infra makefiles
ohair
parents: 13583
diff changeset
   109
33669
1082bb5cff16 8142383: Use named arguments for SetupCompileProperties in jdk
ihse
parents: 32833
diff changeset
   110
  $$($1_JAVAS): $$($1_SRC_FILES)
12317
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
   111
27088
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
   112
  # Create zh_HK versions of all zh_TW files created above
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
   113
  $$(eval $$(call SetupCopy-zh_HK,$1_HK,$$(filter %_zh_TW.java, $$($1_JAVAS))))
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
   114
  # The zh_HK copy must wait for the compile properties tool to run
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
   115
  $$($1_HK): $$($1_TARGET)
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
   116
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
   117
  $1 += $$($1_JAVAS) $$($1_TARGET) $$($1_HK)
ea6446a9121b 8055191: Split GensrcProperties.gmk into separate modules
erikj
parents: 26192
diff changeset
   118
endef
12317
9670c1610c53 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
   119
23236
7c5997f59e20 8036611: Cleanup of handling of properties and other java resources in the build
erikj
parents: 23010
diff changeset
   120
################################################################################