# # Copyright (c) 2011, 2024, 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. # default: all include $(SPEC) include MakeBase.gmk include CopyFiles.gmk include JavaCompilation.gmk include TextFileProcessing.gmk ################################################################################ $(eval $(call IncludeCustomExtension, CompileTools.gmk)) ################################################################################ # Use += to be able to add to this from a custom extension BUILD_TOOLS_SRC_DIRS += \ $(TOPDIR)/make/jdk/src/classes \ $(BUILDTOOLS_OUTPUTDIR)/interim_tzdb_classes \ # $(eval $(call SetupJavaCompilation, BUILD_TOOLS_JDK, \ TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \ SRC := $(BUILD_TOOLS_SRC_DIRS), \ EXCLUDES := \ build/tools/classlist \ build/tools/deps \ build/tools/docs \ build/tools/jigsaw \ build/tools/depend, \ BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes, \ DISABLED_WARNINGS := dangling-doc-comments options, \ JAVAC_FLAGS := \ --add-exports java.desktop/sun.awt=ALL-UNNAMED \ --add-exports java.base/sun.text=ALL-UNNAMED \ --add-exports java.base/sun.security.util=ALL-UNNAMED \ --add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \ --add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \ )) TARGETS += $(BUILD_TOOLS_JDK) $(eval $(call SetupCopyFiles, COPY_NIMBUS_TEMPLATES, \ SRC := $(TOPDIR)/src/java.desktop/share/classes/javax/swing/plaf/nimbus, \ DEST := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes/build/tools/generatenimbus/resources, \ FILES := $(wildcard $(TOPDIR)/src/java.desktop/share/classes/javax/swing/plaf/nimbus/*.template), \ )) TARGETS += $(COPY_NIMBUS_TEMPLATES) $(eval $(call SetupCopyFiles, COPY_CLDRCONVERTER_PROPERTIES, \ SRC := $(TOPDIR)/make/jdk/src/classes/build/tools/cldrconverter, \ DEST := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes/build/tools/cldrconverter, \ FILES := $(wildcard $(TOPDIR)/make/jdk/src/classes/build/tools/cldrconverter/*.properties), \ )) TARGETS += $(COPY_CLDRCONVERTER_PROPERTIES) ################################################################################ $(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \ TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \ SRC := $(TOPDIR)/make/jdk/src/classes, \ INCLUDES := build/tools/depend, \ BIN := $(BUILDTOOLS_OUTPUTDIR)/depend, \ DISABLED_WARNINGS := options, \ JAVAC_FLAGS := \ --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \ --add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED \ --add-exports jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED \ --add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED \ --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \ --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \ --add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \ --add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \ )) DEPEND_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services/com.sun.source.util.Plugin $(DEPEND_SERVICE_PROVIDER): $(call MakeDir, $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services) $(ECHO) build.tools.depend.Depend > $@ TARGETS += $(COMPILE_DEPEND) $(DEPEND_SERVICE_PROVIDER) ################################################################################ # To be able to call the javascript filter when generating man pages using # pandoc, we need to create this executable wrapper script. ifeq ($(ENABLE_PANDOC), true) # PANDOC_TROFF_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk. PANDOC_TROFF_MANPAGE_FILTER := \ $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-troff-manpage-filter PANDOC_TROFF_MANPAGE_FILTER_SETUP := \ $(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_troff_manpage_filter_setup.marker # Create a usable instance of the wrapper script that calls the pandoc filter # (which is written in javascript). $(eval $(call SetupTextFileProcessing, CREATE_PANDOC_TROFF_MANPAGE_FILTER, \ SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-troff-manpage-filter.sh.template, \ OUTPUT_FILE := $(PANDOC_TROFF_MANPAGE_FILTER), \ REPLACEMENTS := \ @@JAVA_SMALL@@ => $(JAVA_SMALL) ; \ @@BUILDTOOLS_OUTPUTDIR@@ => $(BUILDTOOLS_OUTPUTDIR) ; \ )) # Created script must be made executable $(PANDOC_TROFF_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_TROFF_MANPAGE_FILTER) $(CHMOD) a+rx $(PANDOC_TROFF_MANPAGE_FILTER) $(TOUCH) $@ TARGETS += $(PANDOC_TROFF_MANPAGE_FILTER_SETUP) # PANDOC_HTML_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk. PANDOC_HTML_MANPAGE_FILTER := \ $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-html-manpage-filter PANDOC_HTML_MANPAGE_FILTER_SETUP := \ $(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_html_manpage_filter_setup.marker # Create a usable instance of the wrapper script that calls the pandoc filter # (which is written in javascript). $(eval $(call SetupTextFileProcessing, CREATE_PANDOC_HTML_MANPAGE_FILTER, \ SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-html-manpage-filter.sh.template, \ OUTPUT_FILE := $(PANDOC_HTML_MANPAGE_FILTER), \ REPLACEMENTS := \ @@JAVA_SMALL@@ => $(JAVA_SMALL) ; \ @@BUILDTOOLS_OUTPUTDIR@@ => $(BUILDTOOLS_OUTPUTDIR) ; \ )) # Created script must be made executable $(PANDOC_HTML_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_HTML_MANPAGE_FILTER) $(CHMOD) a+rx $(PANDOC_HTML_MANPAGE_FILTER) $(TOUCH) $@ TARGETS += $(PANDOC_HTML_MANPAGE_FILTER_SETUP) endif all: $(TARGETS)