1 #
   2 # Copyright (c) 2011, 2013, 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 # Cache all finds needed for this file. Only used on windows.
  27 $(eval $(call FillCacheFind, $(JDK_TOPDIR)/make/tools \
  28     $(JDK_TOPDIR)/makefiles/sun))
  29 
  30 TOOLS_SRC := $(JDK_TOPDIR)/make/tools/src \
  31     $(JDK_TOPDIR)/makefiles/sun/awt/ \
  32     $(JDK_TOPDIR)/makefiles/sun/osxapp \
  33     $(JDK_TOPDIR)/make/tools/swing-beans
  34 
  35 ifneq ($(OPENJDK_TARGET_OS), windows)
  36   TOOLS_SRC += $(JDK_TOPDIR)/src/solaris/classes/sun/awt/X11/generator
  37 endif
  38 
  39 # The exception handling of swing beaninfo which have the own tool directory
  40 ifeq (, $(BUILD_TOOLS))
  41   $(eval $(call SetupJavaCompilation,BUILD_TOOLS, \
  42       SETUP := GENERATE_OLDBYTECODE, \
  43       SRC := $(TOOLS_SRC), \
  44       BIN := $(JDK_OUTPUTDIR)/btclasses))
  45 endif
  46 
  47 $(JDK_OUTPUTDIR)/btclasses/build/tools/generatenimbus/resources/%.template: \
  48     $(JDK_TOPDIR)/src/share/classes/javax/swing/plaf/nimbus/%.template
  49         $(call install-file)
  50 
  51 BUILD_TOOLS += $(foreach i, $(wildcard $(JDK_TOPDIR)/src/share/classes/javax/swing/plaf/nimbus/*.template), $(JDK_OUTPUTDIR)/btclasses/build/tools/generatenimbus/resources/$(notdir $i))
  52 
  53 # Resources used by CheckDeps tool
  54 $(JDK_OUTPUTDIR)/btclasses/build/tools/deps/%: \
  55     $(JDK_TOPDIR)/make/tools/src/build/tools/deps/%
  56         $(call install-file)
  57 
  58 BUILD_TOOLS += $(JDK_OUTPUTDIR)/btclasses/build/tools/deps/refs.allowed
  59 
  60 # Add a checksum ("jsum") to the end of a text file. Prevents trivial tampering with class lists.
  61 TOOL_ADDJSUM = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
  62     build.tools.addjsum.AddJsum
  63 
  64 # The buildmetaindex tool creates a meta-index to make core class loaders lazier.
  65 TOOL_BUILDMETAINDEX = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
  66     build.tools.buildmetaindex.BuildMetaIndex
  67 
  68 # The comment checker is not currently used. Should it be removed or added to javac?
  69 TOOL_COMMENTCHECKER = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
  70     build.tools.commentchecker.CommentChecker
  71 
  72 TOOL_COMPILEFONTCONFIG = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
  73     build.tools.compilefontconfig.CompileFontConfig
  74 
  75 TOOL_COMPILEPROPERTIES = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
  76     build.tools.compileproperties.CompileProperties
  77 
  78 TOOL_STRIPPROPERTIES = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
  79     build.tools.stripproperties.StripProperties
  80 
  81 TOOL_JARREORDER = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
  82     build.tools.jarreorder.JarReorder
  83 
  84 TOOL_GENERATECHARACTER = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
  85     build.tools.generatecharacter.GenerateCharacter
  86 
  87 TOOL_CHARACTERNAME = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
  88     build.tools.generatecharacter.CharacterName
  89 
  90 TOOL_DIRDIFF = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
  91     build.tools.dirdiff.DirDiff
  92 
  93 TOOL_DTDBUILDER = $(JAVA) -Ddtd_home=$(JDK_TOPDIR)/make/tools/dtdbuilder/dtds \
  94     -cp $(JDK_OUTPUTDIR)/btclasses build.tools.dtdbuilder.DTDBuilder
  95 
  96 TOOL_GENERATEBREAKITERATORDATA = $(JAVA) \
  97     -cp $(JDK_OUTPUTDIR)/btclasses \
  98     build.tools.generatebreakiteratordata.GenerateBreakIteratorData
  99 
 100 TOOL_GENERATECURRENCYDATA = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
 101     build.tools.generatecurrencydata.GenerateCurrencyData
 102 
 103 TOOL_HASHER = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
 104     build.tools.hasher.Hasher
 105 
 106 # Jarsplit used in jdk/makefiles/common/Release.gmk
 107 TOOL_JARSPLIT = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
 108     build.tools.jarsplit.JarSplit
 109 
 110 TOOL_TZDB = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
 111     build.tools.tzdb.TzdbZoneRulesCompiler
 112 
 113 
 114 # TODO: There are references to the jdwpgen.jar in jdk/make/netbeans/jdwpgen/build.xml
 115 # and nbproject/project.properties in the same dir. Needs to be looked at.
 116 TOOL_JDWPGEN = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses build.tools.jdwpgen.Main
 117 
 118 # TODO: Lots of files in jdk/make/tools/CharsetMapping dir
 119 TOOL_CHARSETMAPPING = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
 120     build.tools.charsetmapping.Main
 121 
 122 TOOL_SPP = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses build.tools.spp.Spp
 123 
 124 # TODO: Only referenced in jdk/make/tools/sharing/README.txt. Find out what it means.
 125 TOOL_MAKECLASSLIST = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
 126     build.tools.makeclasslist.MakeClasslist
 127 
 128 # Nimbus is used somewhere in the swing build.
 129 TOOL_GENERATENIMBUS = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
 130     build.tools.generatenimbus.Generator
 131 
 132 TOOL_WRAPPERGENERATOR = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
 133     WrapperGenerator
 134 
 135 TOOL_AWT_TOBIN = $(JAVA) -Djava.awt.headless=true -cp $(JDK_OUTPUTDIR)/btclasses \
 136     sun.awt.ToBin
 137 
 138 TOOL_OSX_TOBIN = $(JAVA) -Djava.awt.headless=true -cp $(JDK_OUTPUTDIR)/btclasses \
 139     sun.osxapp.ToBin
 140 
 141 TOOL_CLDRCONVERTER = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
 142     build.tools.cldrconverter.CLDRConverter
 143 
 144 TOOL_REMOVEMETHODS = $(JAVA) -Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
 145     -cp $(JDK_OUTPUTDIR)/btclasses:$(JDK_OUTPUTDIR) \
 146     build.tools.classfile.RemoveMethods
 147 
 148 TOOL_CHECKDEPS = $(JAVA) -Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
 149     -cp $(JDK_OUTPUTDIR)/btclasses:$(JDK_OUTPUTDIR) \
 150     build.tools.deps.CheckDeps
 151 
 152 ##########################################################################################
 153 
 154 # Tools needed on solaris because OBJCOPY is broken.
 155 
 156 $(eval $(call SetupNativeCompilation,ADD_GNU_DEBUGLINK, \
 157     SRC := $(JDK_TOPDIR)/make/tools/add_gnu_debuglink, \
 158     LANG := C, \
 159     CC := $(BUILD_CC), \
 160     LDEXE := $(BUILD_LD), \
 161     LDFLAGS := -lelf, \
 162     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/add_gnu_debuglink, \
 163     OUTPUT_DIR := $(JDK_OUTPUTDIR)/btbin, \
 164     PROGRAM := add_gnu_debuglink))
 165 
 166 $(eval $(call SetupNativeCompilation,FIX_EMPTY_SEC_HDR_FLAGS, \
 167     SRC := $(JDK_TOPDIR)/make/tools/fix_empty_sec_hdr_flags, \
 168     LANG := C, \
 169     CC := $(BUILD_CC), \
 170     LDEXE := $(BUILD_LD), \
 171     LDFLAGS := -lelf, \
 172     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/fix_empty_sec_hdr_flags, \
 173     OUTPUT_DIR := $(JDK_OUTPUTDIR)/btbin, \
 174     PROGRAM := fix_empty_sec_hdr_flags))