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 BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes, \ 57 ADD_JAVAC_FLAGS := \ 58 --add-exports java.desktop/sun.awt=ALL-UNNAMED \ 59 --add-exports java.base/sun.text=ALL-UNNAMED \ 60 , \ 61 )) 62 63 TARGETS += $(BUILD_TOOLS_JDK) 64 65 $(eval $(call SetupCopyFiles,COPY_NIMBUS_TEMPLATES, \ 66 SRC := $(TOPDIR)/src/java.desktop/share/classes/javax/swing/plaf/nimbus, \ 67 DEST := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes/build/tools/generatenimbus/resources, \ 68 FILES := $(wildcard $(TOPDIR)/src/java.desktop/share/classes/javax/swing/plaf/nimbus/*.template))) 69 70 TARGETS += $(COPY_NIMBUS_TEMPLATES) 71 72 ################################################################################ 73 74 $(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \ 75 SETUP := GENERATE_OLDBYTECODE, \ 76 SRC := $(TOPDIR)/make/jdk/src/classes, \ 77 INCLUDES := build/tools/depend, \ 78 BIN := $(BUILDTOOLS_OUTPUTDIR)/depend, \ 79 )) 80 81 DEPEND_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services/com.sun.source.util.Plugin 82 83 $(DEPEND_SERVICE_PROVIDER): 84 $(call MakeDir, $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services) 85 $(ECHO) build.tools.depend.Depend > $@ 86 87 TARGETS += $(COMPILE_DEPEND) $(DEPEND_SERVICE_PROVIDER) 88 89 ################################################################################ 90 91 # To be able to call the javascript filter when generating man pages using 92 # pandoc, we need to create this executable wrapper script. 93 ifeq ($(ENABLE_PANDOC), true) 94 # PANDOC_TROFF_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk. 95 PANDOC_TROFF_MANPAGE_FILTER := \ 96 $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-troff-manpage-filter 97 PANDOC_TROFF_MANPAGE_FILTER_SETUP := \ 98 $(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_troff_manpage_filter_setup.marker 99 100 # Create a usable instance of the wrapper script that calls the pandoc filter 101 # (which is written in javascript). 102 $(eval $(call SetupTextFileProcessing, CREATE_PANDOC_TROFF_MANPAGE_FILTER, \ 103 SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-troff-manpage-filter.sh.template, \ 104 OUTPUT_FILE := $(PANDOC_TROFF_MANPAGE_FILTER), \ 105 REPLACEMENTS := \ 106 @@BOOT_JDK@@ => $(BOOT_JDK) ; \ 107 @@TOPDIR@@ => $(TOPDIR) ; \ 108 @@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \ 109 )) 110 111 # Created script must be made executable 112 $(PANDOC_TROFF_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_TROFF_MANPAGE_FILTER) 113 $(CHMOD) a+rx $(PANDOC_TROFF_MANPAGE_FILTER) 114 $(TOUCH) $@ 115 116 TARGETS += $(PANDOC_TROFF_MANPAGE_FILTER_SETUP) 117 118 # PANDOC_HTML_MANPAGE_FILTER is duplicated for export in ToolsJdk.gmk. 119 PANDOC_HTML_MANPAGE_FILTER := \ 120 $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-html-manpage-filter 121 PANDOC_HTML_MANPAGE_FILTER_SETUP := \ 122 $(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_html_manpage_filter_setup.marker 123 124 # Create a usable instance of the wrapper script that calls the pandoc filter 125 # (which is written in javascript). 126 $(eval $(call SetupTextFileProcessing, CREATE_PANDOC_HTML_MANPAGE_FILTER, \ 127 SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-html-manpage-filter.sh.template, \ 128 OUTPUT_FILE := $(PANDOC_HTML_MANPAGE_FILTER), \ 129 REPLACEMENTS := \ 130 @@BOOT_JDK@@ => $(BOOT_JDK) ; \ 131 @@TOPDIR@@ => $(TOPDIR) ; \ 132 @@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \ 133 )) 134 135 # Created script must be made executable 136 $(PANDOC_HTML_MANPAGE_FILTER_SETUP): $(CREATE_PANDOC_HTML_MANPAGE_FILTER) 137 $(CHMOD) a+rx $(PANDOC_HTML_MANPAGE_FILTER) 138 $(TOUCH) $@ 139 140 TARGETS += $(PANDOC_HTML_MANPAGE_FILTER_SETUP) 141 endif 142 143 all: $(TARGETS)