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 JavaCompilation.gmk 31 include SetupJavaCompilers.gmk 32 include TextFileProcessing.gmk 33 34 ################################################################################ 35 36 $(eval $(call IncludeCustomExtension, CompileTools.gmk)) 37 38 ################################################################################ 39 40 # Use += to be able to add to this from a custom extension 41 BUILD_TOOLS_SRC_DIRS += \ 42 $(TOPDIR)/make/jdk/src/classes \ 43 $(BUILDTOOLS_OUTPUTDIR)/interim_tzdb_classes \ 44 # 45 46 $(eval $(call SetupJavaCompilation,BUILD_TOOLS_JDK, \ 47 SETUP := GENERATE_OLDBYTECODE, \ 48 SRC := $(BUILD_TOOLS_SRC_DIRS), \ 49 EXCLUDES := \ 50 build/tools/classlist \ 51 build/tools/deps \ 52 build/tools/docs \ 53 build/tools/jigsaw \ 54 build/tools/depend \ 55 , \ 56 DISABLED_WARNINGS := unchecked rawtypes deprecation cast, \ 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/build/tools/generatenimbus/resources, \ 69 FILES := $(wildcard $(TOPDIR)/src/java.desktop/share/classes/javax/swing/plaf/nimbus/*.template))) 70 71 TARGETS += $(COPY_NIMBUS_TEMPLATES) 72 73 ################################################################################ 74 75 $(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \ 76 SETUP := GENERATE_OLDBYTECODE, \ 77 SRC := $(TOPDIR)/make/jdk/src/classes, \ 78 INCLUDES := build/tools/depend, \ 79 BIN := $(BUILDTOOLS_OUTPUTDIR)/depend, \ 80 )) 81 82 DEPEND_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services/com.sun.source.util.Plugin 83 84 $(DEPEND_SERVICE_PROVIDER): 85 $(call MakeDir, $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services) 86 $(ECHO) build.tools.depend.Depend > $@ 87 88 TARGETS += $(COMPILE_DEPEND) $(DEPEND_SERVICE_PROVIDER) 89 90 ################################################################################ 91 92 # To be able to call the javascript filter when generating man pages using 93 # pandoc, we need to create this executable wrapper script. 94 ifeq ($(ENABLE_PANDOC), true) 95 # PANDOC_TROFF_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk. 96 PANDOC_TROFF_MANPAGE_FILTER := \ 97 $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-troff-manpage-filter 98 PANDOC_TROFF_MANPAGE_FILTER_SETUP := \ 99 $(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_troff_manpage_filter_setup.marker 100 101 # Create a usable instance of the wrapper script that calls the pandoc filter 102 # (which is written in javascript). 103 $(eval $(call SetupTextFileProcessing, CREATE_PANDOC_TROFF_MANPAGE_FILTER, \ 104 SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-troff-manpage-filter.sh.template, \ 105 OUTPUT_FILE := $(PANDOC_TROFF_MANPAGE_FILTER), \ 106 REPLACEMENTS := \ 107 @@BOOT_JDK@@ => $(BOOT_JDK) ; \ 108 @@TOPDIR@@ => $(TOPDIR) ; \ 109 @@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \ 110 )) 111 112 # Created script must be made executable 113 $(PANDOC_TROFF_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_TROFF_MANPAGE_FILTER) 114 $(CHMOD) a+rx $(PANDOC_TROFF_MANPAGE_FILTER) 115 $(TOUCH) $@ 116 117 TARGETS += $(PANDOC_TROFF_MANPAGE_FILTER_SETUP) 118 119 # PANDOC_HTML_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk. 120 PANDOC_HTML_MANPAGE_FILTER := \ 121 $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-html-manpage-filter 122 PANDOC_HTML_MANPAGE_FILTER_SETUP := \ 123 $(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_html_manpage_filter_setup.marker 124 125 # Create a usable instance of the wrapper script that calls the pandoc filter 126 # (which is written in javascript). 127 $(eval $(call SetupTextFileProcessing, CREATE_PANDOC_HTML_MANPAGE_FILTER, \ 128 SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-html-manpage-filter.sh.template, \ 129 OUTPUT_FILE := $(PANDOC_HTML_MANPAGE_FILTER), \ 130 REPLACEMENTS := \ 131 @@BOOT_JDK@@ => $(BOOT_JDK) ; \ 132 @@TOPDIR@@ => $(TOPDIR) ; \ 133 @@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \ 134 )) 135 136 # Created script must be made executable 137 $(PANDOC_HTML_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_HTML_MANPAGE_FILTER) 138 $(CHMOD) a+rx $(PANDOC_HTML_MANPAGE_FILTER) 139 $(TOUCH) $@ 140 141 TARGETS += $(PANDOC_HTML_MANPAGE_FILTER_SETUP) 142 endif 143 144 all: $(TARGETS)