1 # 2 # Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 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 default: all 27 28 include $(SPEC) 29 include MakeBase.gmk 30 include Modules.gmk 31 include JavaCompilation.gmk 32 include SetupJavaCompilers.gmk 33 include TextFileProcessing.gmk 34 35 ################################################################################ 36 37 $(eval $(call IncludeCustomExtension, CompileTools.gmk)) 38 39 ################################################################################ 40 41 # Use += to be able to add to this from a custom extension 42 BUILD_TOOLS_SRC_DIRS += \ 43 $(call FindAllToolsDirs) \ 44 $(TOPDIR)/make/jdk/src/classes \ 45 $(BUILDTOOLS_OUTPUTDIR)/interim_tzdb_classes \ 46 # 47 48 $(eval $(call SetupJavaCompilation, BUILD_TOOLS_JDK, \ 49 SETUP := GENERATE_OLDBYTECODE, \ 50 SRC := $(BUILD_TOOLS_SRC_DIRS), \ 51 EXCLUDES := \ 52 build/tools/classlist \ 53 build/tools/jigsaw \ 54 build/tools/depend \ 55 org/openjdk/buildtools/symbolgenerator \ 56 , \ 57 BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes, \ 58 ADD_JAVAC_FLAGS := \ 59 --add-exports java.desktop/sun.awt=ALL-UNNAMED \ 60 --add-exports java.base/sun.text=ALL-UNNAMED \ 61 , \ 62 )) 63 64 TARGETS += $(BUILD_TOOLS_JDK) 65 66 $(eval $(call SetupCopyFiles, COPY_NIMBUS_TEMPLATES, \ 67 SRC := $(TOPDIR)/src/java.desktop/share/classes/javax/swing/plaf/nimbus, \ 68 DEST := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes/org/openjdk/buildtools/generatenimbus/resources, \ 69 FILES := $(wildcard $(TOPDIR)/src/java.desktop/share/classes/javax/swing/plaf/nimbus/*.template), \ 70 )) 71 72 TARGETS += $(COPY_NIMBUS_TEMPLATES) 73 74 ################################################################################ 75 76 $(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \ 77 SETUP := GENERATE_OLDBYTECODE, \ 78 SRC := $(TOPDIR)/make/jdk/src/classes, \ 79 INCLUDES := build/tools/depend, \ 80 BIN := $(BUILDTOOLS_OUTPUTDIR)/depend, \ 81 )) 82 83 DEPEND_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services/com.sun.source.util.Plugin 84 85 $(DEPEND_SERVICE_PROVIDER): 86 $(call MakeDir, $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services) 87 $(ECHO) build.tools.depend.Depend > $@ 88 89 TARGETS += $(COMPILE_DEPEND) $(DEPEND_SERVICE_PROVIDER) 90 91 ################################################################################ 92 93 # To be able to call the javascript filter when generating man pages using 94 # pandoc, we need to create this executable wrapper script. 95 ifeq ($(ENABLE_PANDOC), true) 96 # PANDOC_TROFF_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk. 97 PANDOC_TROFF_MANPAGE_FILTER := \ 98 $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-troff-manpage-filter 99 PANDOC_TROFF_MANPAGE_FILTER_SETUP := \ 100 $(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_troff_manpage_filter_setup.marker 101 102 # Create a usable instance of the wrapper script that calls the pandoc filter 103 # (which is written in javascript). 104 $(eval $(call SetupTextFileProcessing, CREATE_PANDOC_TROFF_MANPAGE_FILTER, \ 105 SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-troff-manpage-filter.sh.template, \ 106 OUTPUT_FILE := $(PANDOC_TROFF_MANPAGE_FILTER), \ 107 REPLACEMENTS := \ 108 @@BOOT_JDK@@ => $(BOOT_JDK) ; \ 109 @@TOPDIR@@ => $(TOPDIR) ; \ 110 @@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \ 111 )) 112 113 # Created script must be made executable 114 $(PANDOC_TROFF_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_TROFF_MANPAGE_FILTER) 115 $(CHMOD) a+rx $(PANDOC_TROFF_MANPAGE_FILTER) 116 $(TOUCH) $@ 117 118 TARGETS += $(PANDOC_TROFF_MANPAGE_FILTER_SETUP) 119 120 # PANDOC_HTML_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk. 121 PANDOC_HTML_MANPAGE_FILTER := \ 122 $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-html-manpage-filter 123 PANDOC_HTML_MANPAGE_FILTER_SETUP := \ 124 $(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_html_manpage_filter_setup.marker 125 126 # Create a usable instance of the wrapper script that calls the pandoc filter 127 # (which is written in javascript). 128 $(eval $(call SetupTextFileProcessing, CREATE_PANDOC_HTML_MANPAGE_FILTER, \ 129 SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-html-manpage-filter.sh.template, \ 130 OUTPUT_FILE := $(PANDOC_HTML_MANPAGE_FILTER), \ 131 REPLACEMENTS := \ 132 @@BOOT_JDK@@ => $(BOOT_JDK) ; \ 133 @@TOPDIR@@ => $(TOPDIR) ; \ 134 @@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \ 135 )) 136 137 # Created script must be made executable 138 $(PANDOC_HTML_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_HTML_MANPAGE_FILTER) 139 $(CHMOD) a+rx $(PANDOC_HTML_MANPAGE_FILTER) 140 $(TOUCH) $@ 141 142 TARGETS += $(PANDOC_HTML_MANPAGE_FILTER_SETUP) 143 endif 144 145 all: $(TARGETS)