| # Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved. | |
| # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
| # | |
| # This code is free software; you can redistribute it and/or modify it | |
| # under the terms of the GNU General Public License version 2 only, as | |
| # published by the Free Software Foundation. Oracle designates this | |
| # particular file as subject to the "Classpath" exception as provided | |
| # by Oracle in the LICENSE file that accompanied this code. | |
| # | |
| # This code is distributed in the hope that it will be useful, but WITHOUT | |
| # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
| # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
| # version 2 for more details (a copy is included in the LICENSE file that | |
| # accompanied this code). | |
| # | |
| # You should have received a copy of the GNU General Public License version | |
| # 2 along with this work; if not, write to the Free Software Foundation, | |
| # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
| # | |
| # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
| # or visit www.oracle.com if you need additional information or have any | |
| # questions. | |
| # | |
| include MakeIncludeStart.gmk | |
| ifeq ($(INCLUDE), true) | |
| ################################################################################ | |
| # Make file for generating BreakIterator data files. | |
| ################################################################################ | |
| # input | |
| # | |
| # Notes: sun.text.resources.BreakIteratorRules no longer goes to runtime. | |
| # They are used at JDK build phase in order to create $(BIFILES) which | |
| # are used on runtime instead. | |
| # | |
| TEXT_PKG := sun/text/resources | |
| TEXT_PKG_LD := $(TEXT_PKG)/ext | |
| TEXT_SOURCES := $(TEXT_PKG)/BreakIteratorRules.java \ | |
| $(TEXT_PKG)/BreakIteratorInfo.java \ | |
| $(TEXT_PKG_LD)/BreakIteratorRules_th.java \ | |
| $(TEXT_PKG_LD)/BreakIteratorInfo_th.java | |
| # Generate BreakIteratorData | |
| BREAK_ITERATOR_CLASSES := $(BUILDTOOLS_OUTPUTDIR)/break_iterator_classes | |
| # These two files should be moved out to a build tool! | |
| $(eval $(call SetupJavaCompilation, BUILD_BREAKITERATOR_BASE, \ | |
| TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \ | |
| SRC := $(TOPDIR)/src/java.base/share/classes, \ | |
| INCLUDE_FILES := \ | |
| $(TEXT_PKG)/BreakIteratorRules.java \ | |
| $(TEXT_PKG)/BreakIteratorInfo.java, \ | |
| BIN := $(BREAK_ITERATOR_CLASSES)/java.base, \ | |
| DISABLED_WARNINGS := options, \ | |
| )) | |
| $(eval $(call SetupJavaCompilation, BUILD_BREAKITERATOR_LD, \ | |
| TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \ | |
| SRC := $(TOPDIR)/src/jdk.localedata/share/classes, \ | |
| INCLUDE_FILES := \ | |
| $(TEXT_PKG_LD)/BreakIteratorRules_th.java \ | |
| $(TEXT_PKG_LD)/BreakIteratorInfo_th.java, \ | |
| BIN := $(BREAK_ITERATOR_CLASSES)/jdk.localedata, \ | |
| DISABLED_WARNINGS := options, \ | |
| )) | |
| BREAK_ITERATOR_BOOTCLASSPATH := \ | |
| --patch-module java.base=$(BREAK_ITERATOR_CLASSES)/java.base \ | |
| --patch-module jdk.localedata=$(BREAK_ITERATOR_CLASSES)/jdk.localedata \ | |
| --add-exports java.base/sun.text=ALL-UNNAMED \ | |
| --add-exports java.base/sun.text.resources=ALL-UNNAMED \ | |
| --add-exports jdk.localedata/sun.text.resources.ext=ALL-UNNAMED \ | |
| # | |
| # Generate data resource files. | |
| # input | |
| UNICODEDATA := $(MODULE_SRC)/share/data/unicodedata/UnicodeData.txt | |
| # output | |
| BASE_DATA_PKG_DIR := $(JDK_OUTPUTDIR)/modules/java.base/sun/text/resources | |
| LD_DATA_PKG_DIR := $(JDK_OUTPUTDIR)/modules/jdk.localedata/sun/text/resources/ext | |
| BIFILES := $(BASE_DATA_PKG_DIR)/CharacterBreakIteratorData \ | |
| $(BASE_DATA_PKG_DIR)/WordBreakIteratorData \ | |
| $(BASE_DATA_PKG_DIR)/LineBreakIteratorData \ | |
| $(BASE_DATA_PKG_DIR)/SentenceBreakIteratorData | |
| BIFILES_TH := $(LD_DATA_PKG_DIR)/WordBreakIteratorData_th \ | |
| $(LD_DATA_PKG_DIR)/LineBreakIteratorData_th | |
| $(BIFILES): $(BASE_DATA_PKG_DIR)/_the.bifiles | |
| $(BASE_DATA_PKG_DIR)/_the.bifiles: JAVA_FLAGS += $(BREAK_ITERATOR_BOOTCLASSPATH) | |
| $(BASE_DATA_PKG_DIR)/_the.bifiles: $(BUILD_TOOLS_JDK) $(UNICODEDATA) \ | |
| $(BUILD_BREAKITERATOR_BASE) $(BUILD_BREAKITERATOR_LD) | |
| $(call LogInfo, Generating BreakIteratorData) | |
| $(call MakeDir, $(@D)) | |
| $(RM) $(BIFILES) | |
| $(TOOL_GENERATEBREAKITERATORDATA) \ | |
| -o $(@D) \ | |
| -spec $(UNICODEDATA) | |
| $(TOUCH) $@ | |
| $(BIFILES_TH): $(LD_DATA_PKG_DIR)/_the.bifiles_th | |
| $(LD_DATA_PKG_DIR)/_the.bifiles_th: JAVA_FLAGS += $(BREAK_ITERATOR_BOOTCLASSPATH) | |
| $(LD_DATA_PKG_DIR)/_the.bifiles_th: $(BUILD_TOOLS_JDK) $(UNICODEDATA) \ | |
| $(BUILD_BREAKITERATOR_BASE) $(BUILD_BREAKITERATOR_LD) | |
| $(call LogInfo, Generating BreakIteratorData_th) | |
| $(RM) $(BIFILES_TH) | |
| $(TOOL_GENERATEBREAKITERATORDATA) \ | |
| -o $(@D) \ | |
| -spec $(UNICODEDATA) \ | |
| -language th | |
| $(TOUCH) $@ | |
| TARGETS += $(BIFILES) $(BIFILES_TH) | |
| ################################################################################ | |
| endif # include guard | |
| include MakeIncludeEnd.gmk |