2d314b47cd
Javadoc needs to reference the newly built classes so as not to hit APIs which differ between the boot JDK and the source files of the JDK being built. Reviewed-by: ohair
230 lines
8.0 KiB
Plaintext
230 lines
8.0 KiB
Plaintext
#
|
|
# Copyright 2007-2008 Sun Microsystems, Inc. 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. Sun designates this
|
|
# particular file as subject to the "Classpath" exception as provided
|
|
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
|
# CA 95054 USA or visit www.sun.com if you need additional information or
|
|
# have any questions.
|
|
#
|
|
|
|
#
|
|
# Common java/javac/jdk variables used by all the Java makefiles.
|
|
# This file should not contain rules.
|
|
#
|
|
|
|
# WARNING: This file is shared with other workspaces.
|
|
# So when it includes other files, it must use JDK_TOPDIR.
|
|
#
|
|
|
|
#
|
|
# Memory related -J flags that all uses of java tools should use.
|
|
#
|
|
JAVA_MEM_FLAGS = -Xmx$(MAX_VM_MEMORY)m
|
|
ifeq ($(ARCH), ia64)
|
|
# Special flags for javac on ia64 to work around a VM problem with
|
|
# bad code generation during inlining (what version had this problem?):
|
|
# Suspect this may not be needed anymore.
|
|
JAVA_MEM_FLAGS += -Xms$(MAX_VM_MEMORY)m -XX:-Inline
|
|
else
|
|
JAVA_MEM_FLAGS += -Xms$(MIN_VM_MEMORY)m -XX:PermSize=32m -XX:MaxPermSize=160m
|
|
endif
|
|
|
|
#
|
|
# All java tools (javac, javah, and javadoc) run faster with certain java
|
|
# options, this macro should be used with all these tools.
|
|
# In particular, the client VM makes these tools run faster when
|
|
# it's available.
|
|
#
|
|
ADD_CLIENT_VM_OPTION = false
|
|
ifeq ($(PLATFORM), solaris)
|
|
ADD_CLIENT_VM_OPTION = true
|
|
else
|
|
ifeq ($(ARCH_DATA_MODEL), 32)
|
|
ADD_CLIENT_VM_OPTION = true
|
|
endif
|
|
endif
|
|
|
|
# Options for hotspot to turn off printing of options with fastdebug version
|
|
# and creating the hotspot.log file.
|
|
JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS = \
|
|
-XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput
|
|
|
|
# JVM options
|
|
JAVA_JVM_FLAGS = $(JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS)
|
|
|
|
ifeq ($(ADD_CLIENT_VM_OPTION), true)
|
|
JAVA_JVM_FLAGS += -client
|
|
endif
|
|
ifdef USE_HOTSPOT_INTERPRETER_MODE
|
|
JAVA_JVM_FLAGS += -Xint
|
|
endif
|
|
|
|
# Various VM flags
|
|
JAVA_TOOLS_FLAGS = $(JAVA_JVM_FLAGS) $(JAVA_MEM_FLAGS)
|
|
|
|
# The VM flags for javac
|
|
JAVAC_JVM_FLAGS =
|
|
|
|
# 64-bit builds require a larger thread stack size.
|
|
ifeq ($(ARCH_DATA_MODEL), 32)
|
|
JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=768
|
|
else
|
|
JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1536
|
|
endif
|
|
JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%)
|
|
|
|
# The jar -J options are special, must be added at the end of the command line
|
|
JAR_JFLAGS = $(JAVA_TOOLS_FLAGS:%=-J%)
|
|
|
|
# JAVA_TOOLS_DIR is the default location to find Java tools to run, if
|
|
# langtools is not available.
|
|
# This should be the latest promoted JDK javac.
|
|
ifndef JAVA_TOOLS_DIR
|
|
JAVA_TOOLS_DIR = $(JDK_IMPORT_PATH)/bin
|
|
endif
|
|
|
|
#
|
|
# Invoking the Java compiler. In leaf makefiles, choose as follows:
|
|
# -- Use JAVAC if you want to take full control of what options get
|
|
# passed to javac.
|
|
# -- Use JAVAC_CMD if you want to take the defaults given to you.
|
|
#
|
|
|
|
ifndef DEBUG_CLASSFILES
|
|
ifeq ($(VARIANT), DBG)
|
|
DEBUG_CLASSFILES = true
|
|
endif
|
|
endif
|
|
JAVACFLAGS =
|
|
ifeq ($(DEBUG_CLASSFILES),true)
|
|
JAVACFLAGS += -g
|
|
endif
|
|
ifeq ($(JAVAC_MAX_WARNINGS), true)
|
|
JAVACFLAGS += -Xlint:all
|
|
endif
|
|
ifeq ($(JAVAC_WARNINGS_FATAL), true)
|
|
JAVACFLAGS += -Werror
|
|
endif
|
|
|
|
# Add the source level
|
|
SOURCE_LANGUAGE_VERSION = 7
|
|
LANGUAGE_VERSION = -source $(SOURCE_LANGUAGE_VERSION)
|
|
JAVACFLAGS += $(LANGUAGE_VERSION)
|
|
|
|
# Add the class version we want
|
|
TARGET_CLASS_VERSION = 7
|
|
CLASS_VERSION = -target $(TARGET_CLASS_VERSION)
|
|
JAVACFLAGS += $(CLASS_VERSION)
|
|
JAVACFLAGS += -encoding ascii
|
|
JAVACFLAGS += "-Xbootclasspath:$(CLASSBINDIR)"
|
|
JAVACFLAGS += $(OTHER_JAVACFLAGS)
|
|
|
|
# Needed for javah
|
|
JAVAHFLAGS += -bootclasspath $(CLASSBINDIR)
|
|
|
|
# Needed for javadoc to ensure it builds documentation
|
|
# against the newly built classes
|
|
JAVADOCFLAGS += -bootclasspath $(CLASSBINDIR)
|
|
|
|
# Needed for JAVADOC and BOOT_JAVACFLAGS
|
|
NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
|
|
|
|
# Langtools
|
|
ifdef LANGTOOLS_DIST
|
|
JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar
|
|
JAVAH_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javah.jar
|
|
JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar
|
|
DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar
|
|
JAVAC_CMD = $(BOOT_JAVA_CMD) \
|
|
"-Xbootclasspath/p:$(JAVAC_JAR)" \
|
|
-jar $(JAVAC_JAR) $(JAVACFLAGS)
|
|
JAVAH_CMD = $(BOOT_JAVA_CMD) \
|
|
"-Xbootclasspath/p:$(JAVAH_JAR)$(CLASSPATH_SEPARATOR)$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)" \
|
|
-jar $(JAVAH_JAR) $(JAVAHFLAGS)
|
|
JAVADOC_CMD = $(BOOT_JAVA_CMD) \
|
|
"-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \
|
|
-jar $(JAVADOC_JAR) $(JAVADOCFLAGS)
|
|
else
|
|
# If no explicit tools, use boot tools (add VM flags in this case)
|
|
JAVAC_CMD = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \
|
|
$(JAVACFLAGS)
|
|
JAVAH_CMD = $(JAVA_TOOLS_DIR)/javah \
|
|
$(JAVAHFLAGS)
|
|
JAVADOC_CMD = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) \
|
|
$(JAVADOCFLAGS)
|
|
endif
|
|
|
|
# Override of what javac to use (see deploy workspace)
|
|
ifdef JAVAC
|
|
JAVAC_CMD = $(JAVAC)
|
|
endif
|
|
|
|
#
|
|
# The bootstrap java compiler (defined as the javac in the ALT_BOOTDIR jdk).
|
|
# Will be used to compile java code used to build the jdk, e.g. class files
|
|
# created by this compiler will NOT become part of this built jdk, but just
|
|
# used to build this jdk, e.g. run with the java in the ALT_BOOTDIR jdk.
|
|
#
|
|
# The javac supplied with the LANGTOOLS_DIST should be used to build the
|
|
# classes that will be put into the built jdk. But note that this javac
|
|
# will use the ALT_BOOTDIR java runtime. Any classes created by the
|
|
# LANGTOOLS_DIST javac should not be run during this jdk build and indeed
|
|
# may not even run with the ALT_BOOTDIR jdk because they may be a newer
|
|
# class file version that the ALT_BOOTDIR jdk doesn't understand.
|
|
#
|
|
# The important observation here is that the built jdk is NOT run during
|
|
# the build. If the built jdk needs to be verified that it can build this
|
|
# same jdk, then it should be supplied to the build process as the ALT_BOOTDIR
|
|
# jdk, and this resulting built jdk should be compared to the first one.
|
|
# (They should be the same). Re-using this built jdk as the ALT_BOOTDIR
|
|
# jdk will be the only way and the recommeneded way to verify the built jdk
|
|
# can bootstrap itself.
|
|
#
|
|
|
|
# The javac options supplied to the boot javac is limited. This compiler
|
|
# should only be used to build the 'make/tools' sources, which are not
|
|
# class files that end up in the classes directory.
|
|
ifeq ($(JAVAC_MAX_WARNINGS), true)
|
|
BOOT_JAVACFLAGS += -Xlint:all
|
|
endif
|
|
ifeq ($(JAVAC_WARNINGS_FATAL), true)
|
|
BOOT_JAVACFLAGS += -Werror
|
|
endif
|
|
|
|
BOOT_SOURCE_LANGUAGE_VERSION = 6
|
|
BOOT_TARGET_CLASS_VERSION = 6
|
|
BOOT_JAVACFLAGS += -encoding ascii -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
|
|
BOOT_JAR_JFLAGS += $(JAR_JFLAGS)
|
|
|
|
BOOT_JAVACFLAGS += $(NO_PROPRIETARY_API_WARNINGS)
|
|
|
|
BOOT_JAVA_CMD = $(BOOTDIR)/bin/java $(JAVA_TOOLS_FLAGS)
|
|
BOOT_JAVAC_CMD = $(BOOTDIR)/bin/javac $(JAVAC_JVM_FLAGS) $(BOOT_JAVACFLAGS)
|
|
BOOT_JAR_CMD = $(BOOTDIR)/bin/jar
|
|
BOOT_JARSIGNER_CMD = $(BOOTDIR)/bin/jarsigner
|
|
|
|
# Various tools we need to run (FIXUP: Are these the right ones?)
|
|
NATIVE2ASCII = $(BOOTDIR)/bin/native2ascii $(JAVA_TOOLS_FLAGS:%=-J%)
|
|
RMIC = $(BOOTDIR)/bin/rmic $(JAVA_TOOLS_FLAGS:%=-J%)
|
|
IDLJ = $(BOOTDIR)/bin/idlj $(JAVA_TOOLS_FLAGS:%=-J%)
|
|
|
|
# Should not be used
|
|
JAVA = /should/not/be/used
|
|
|