Merge
This commit is contained in:
commit
558ba2a1a3
@ -6,3 +6,4 @@ cbc8ad9dd0e085a607427ea35411990982f19a36 jdk7-b25
|
||||
31e08f70e88d77c2053f91c21b49a04296bdc59a jdk7-b29
|
||||
2dab2f712e1832c92acfa63ec0337048b9422c20 jdk7-b30
|
||||
3300a35a0bd56d695b92fe0b34f03ebbfc939064 jdk7-b31
|
||||
64da805be725721bf2004e7409a0d7a16fc8ddbc jdk7-b32
|
||||
|
373
Makefile
373
Makefile
@ -49,27 +49,17 @@ ifndef JDK_MAKE_SHARED_DIR
|
||||
JDK_MAKE_SHARED_DIR=$(JDK_TOPDIR)/make/common/shared
|
||||
endif
|
||||
|
||||
# For start and finish echo lines
|
||||
TITLE_TEXT = Control $(PLATFORM) $(ARCH) $(RELEASE)
|
||||
DAYE_STAMP = `$(DATE) '+%y-%m-%d %H:%M'`
|
||||
START_ECHO = echo "$(TITLE_TEXT) $@ build started: $(DATE_STAMP)"
|
||||
FINISH_ECHO = echo "$(TITLE_TEXT) $@ build finished: $(DATE_STAMP)"
|
||||
|
||||
default: all
|
||||
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs-control.gmk
|
||||
|
||||
include ./make/Defs-internal.gmk
|
||||
|
||||
all::
|
||||
@$(ECHO) $(PLATFORM) $(ARCH) $(RELEASE) build started: `$(DATE) '+%y-%m-%d %H:%M'`
|
||||
$(MKDIR) -p $(OUTPUTDIR)
|
||||
|
||||
# Rules for sanity checks
|
||||
include ./make/sanity-rules.gmk
|
||||
|
||||
dev : dev-build
|
||||
|
||||
dev-build:
|
||||
$(MAKE) DEV_ONLY=true all
|
||||
dev-sanity:
|
||||
$(MAKE) DEV_ONLY=true sanity
|
||||
dev-clobber:
|
||||
$(MAKE) DEV_ONLY=true clobber
|
||||
|
||||
# Rules for various components
|
||||
include ./make/hotspot-rules.gmk
|
||||
include ./make/langtools-rules.gmk
|
||||
include ./make/corba-rules.gmk
|
||||
@ -80,11 +70,203 @@ include ./make/install-rules.gmk
|
||||
include ./make/sponsors-rules.gmk
|
||||
include ./make/deploy-rules.gmk
|
||||
|
||||
all:: setup build
|
||||
# What "all" means
|
||||
all::
|
||||
@$(START_ECHO)
|
||||
|
||||
setup: openjdk_check
|
||||
all:: openjdk_check sanity all_product_build
|
||||
|
||||
ifeq ($(SKIP_FASTDEBUG_BUILD), false)
|
||||
all:: fastdebug_build
|
||||
endif
|
||||
|
||||
ifeq ($(SKIP_DEBUG_BUILD), false)
|
||||
all:: debug_build
|
||||
endif
|
||||
|
||||
ifneq ($(SKIP_OPENJDK_BUILD), true)
|
||||
all:: openjdk_build
|
||||
endif
|
||||
|
||||
all::
|
||||
@$(FINISH_ECHO)
|
||||
|
||||
# Everything for a full product build
|
||||
all_product_build::
|
||||
@$(START_ECHO)
|
||||
|
||||
ifeq ($(SKIP_PRODUCT_BUILD), false)
|
||||
|
||||
all_product_build:: product_build
|
||||
|
||||
ifeq ($(BUILD_INSTALL), true)
|
||||
all_product_build:: $(INSTALL)
|
||||
clobber:: install-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_SPONSORS), true)
|
||||
all_product_build:: $(SPONSORS)
|
||||
clobber:: sponsors-clobber
|
||||
endif
|
||||
|
||||
ifneq ($(SKIP_COMPARE_IMAGES), true)
|
||||
all_product_build:: compare-image
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
all_product_build::
|
||||
@$(FINISH_ECHO)
|
||||
|
||||
# Generis build of basic repo series
|
||||
generic_build_repo_series::
|
||||
$(MKDIR) -p $(OUTPUTDIR)
|
||||
$(MKDIR) -p $(OUTPUTDIR)/j2sdk-image
|
||||
|
||||
ifeq ($(BUILD_LANGTOOLS), true)
|
||||
generic_build_repo_series:: langtools
|
||||
clobber:: langtools-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_CORBA), true)
|
||||
generic_build_repo_series:: corba
|
||||
clobber:: corba-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_JAXP), true)
|
||||
generic_build_repo_series:: jaxp
|
||||
clobber:: jaxp-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_JAXWS), true)
|
||||
generic_build_repo_series:: jaxws
|
||||
clobber:: jaxws-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_HOTSPOT), true)
|
||||
generic_build_repo_series:: $(HOTSPOT)
|
||||
clobber:: hotspot-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_JDK), true)
|
||||
generic_build_repo_series:: $(JDK_JAVA_EXE)
|
||||
clobber:: jdk-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_DEPLOY), true)
|
||||
generic_build_repo_series:: $(DEPLOY)
|
||||
clobber:: deploy-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_JDK), true)
|
||||
ifeq ($(BUNDLE_RULES_AVAILABLE), true)
|
||||
generic_build_repo_series:: openjdk-binary-plugs-bundles
|
||||
endif
|
||||
endif
|
||||
|
||||
# The debug build, fastdebug or debug. Needs special handling.
|
||||
# Note that debug builds do NOT do INSTALL steps, but must be done
|
||||
# after the product build and before the INSTALL step of the product build.
|
||||
#
|
||||
# DEBUG_NAME is fastdebug or debug
|
||||
# ALT_OUTPUTDIR is changed to have -debug or -fastdebug suffix
|
||||
# The resulting j2sdk-image is used by the install makefiles to create a
|
||||
# debug install bundle jdk-*-debug-** bundle (tar or zip)
|
||||
# which will install in the debug or fastdebug subdirectory of the
|
||||
# normal product install area.
|
||||
# The install process needs to know what the DEBUG_NAME is, so
|
||||
# look for INSTALL_DEBUG_NAME in the install rules.
|
||||
#
|
||||
|
||||
# Location of fresh bootdir output
|
||||
ABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
|
||||
FRESH_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image
|
||||
FRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME)/j2sdk-image
|
||||
|
||||
create_fresh_product_bootdir: FRC
|
||||
@$(START_ECHO)
|
||||
$(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
|
||||
NO_DOCS=true \
|
||||
BOOT_CYCLE_SETTINGS= \
|
||||
build_product_image
|
||||
@$(FINISH_ECHO)
|
||||
|
||||
create_fresh_debug_bootdir: FRC
|
||||
@$(START_ECHO)
|
||||
$(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
|
||||
NO_DOCS=true \
|
||||
BOOT_CYCLE_DEBUG_SETTINGS= \
|
||||
build_debug_image
|
||||
@$(FINISH_ECHO)
|
||||
|
||||
create_fresh_fastdebug_bootdir: FRC
|
||||
@$(START_ECHO)
|
||||
$(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) \
|
||||
NO_DOCS=true \
|
||||
BOOT_CYCLE_DEBUG_SETTINGS= \
|
||||
build_fastdebug_image
|
||||
@$(FINISH_ECHO)
|
||||
|
||||
# Create boot image?
|
||||
ifeq ($(SKIP_BOOT_CYCLE),false)
|
||||
ifneq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
|
||||
DO_BOOT_CYCLE=true
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(DO_BOOT_CYCLE),true)
|
||||
|
||||
# Create the bootdir to use in the build
|
||||
product_build:: create_fresh_product_bootdir
|
||||
debug_build:: create_fresh_debug_bootdir
|
||||
fastdebug_build:: create_fresh_fastdebug_bootdir
|
||||
|
||||
# Define variables to be used now for the boot jdk
|
||||
BOOT_CYCLE_SETTINGS= \
|
||||
ALT_BOOTDIR=$(FRESH_BOOTDIR) \
|
||||
ALT_JDK_IMPORT_PATH=$(FRESH_BOOTDIR)
|
||||
BOOT_CYCLE_DEBUG_SETTINGS= \
|
||||
ALT_BOOTDIR=$(FRESH_DEBUG_BOOTDIR) \
|
||||
ALT_JDK_IMPORT_PATH=$(FRESH_DEBUG_BOOTDIR)
|
||||
|
||||
else
|
||||
|
||||
# Use the supplied ALT_BOOTDIR as the boot
|
||||
BOOT_CYCLE_SETTINGS=
|
||||
BOOT_CYCLE_DEBUG_SETTINGS=
|
||||
|
||||
endif
|
||||
|
||||
build_product_image:
|
||||
@$(START_ECHO)
|
||||
$(MAKE) \
|
||||
SKIP_FASTDEBUG_BUILD=true \
|
||||
SKIP_DEBUG_BUILD=true \
|
||||
$(BOOT_CYCLE_SETTINGS) \
|
||||
generic_build_repo_series
|
||||
@$(FINISH_ECHO)
|
||||
|
||||
generic_debug_build:
|
||||
@$(START_ECHO)
|
||||
$(MAKE) \
|
||||
ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)-$(DEBUG_NAME) \
|
||||
DEBUG_NAME=$(DEBUG_NAME) \
|
||||
NO_DOCS=true \
|
||||
$(BOOT_CYCLE_DEBUG_SETTINGS) \
|
||||
generic_build_repo_series
|
||||
@$(FINISH_ECHO)
|
||||
|
||||
build_debug_image:
|
||||
$(MAKE) DEBUG_NAME=debug generic_debug_build
|
||||
|
||||
build_fastdebug_image:
|
||||
$(MAKE) DEBUG_NAME=fastdebug generic_debug_build
|
||||
|
||||
# Build final image
|
||||
product_build:: build_product_image
|
||||
debug_build:: build_debug_image
|
||||
fastdebug_build:: build_fastdebug_image
|
||||
|
||||
# Check on whether we really can build the openjdk, need source etc.
|
||||
openjdk_check: FRC
|
||||
ifneq ($(SKIP_OPENJDK_BUILD), true)
|
||||
@ -101,113 +283,6 @@ ifneq ($(SKIP_OPENJDK_BUILD), true)
|
||||
@$(ECHO) " "
|
||||
endif
|
||||
|
||||
build:: sanity
|
||||
|
||||
clobber::
|
||||
|
||||
ifeq ($(BUILD_LANGTOOLS), true)
|
||||
build:: langtools
|
||||
clobber:: langtools-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_CORBA), true)
|
||||
build:: corba
|
||||
clobber:: corba-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_JAXP), true)
|
||||
build:: jaxp
|
||||
clobber:: jaxp-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_JAXWS), true)
|
||||
build:: jaxws
|
||||
clobber:: jaxws-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_HOTSPOT), true)
|
||||
build:: $(HOTSPOT)
|
||||
clobber:: hotspot-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_JDK), true)
|
||||
build:: $(JDK_JAVA_EXE)
|
||||
clobber:: jdk-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_DEPLOY), true)
|
||||
build:: $(DEPLOY)
|
||||
clobber:: deploy-clobber
|
||||
endif
|
||||
|
||||
#
|
||||
# Generic debug build, fastdebug or debug. Needs special handling.
|
||||
# Note that debug builds do NOT do INSTALL steps, but must be done
|
||||
# after the product build and before the INSTALL step of the product build.
|
||||
#
|
||||
# DEBUG_NAME is fastdebug or debug
|
||||
# ALT_OUTPUTDIR is changed to have -debug or -fastdebug suffix
|
||||
# The resulting j2sdk-image is used by the install makefiles to create a
|
||||
# debug install bundle jdk-*-debug-** bundle (tar or zip)
|
||||
# which will install in the debug or fastdebug subdirectory of the
|
||||
# normal product install area.
|
||||
# The install process needs to know what the DEBUG_NAME is, so
|
||||
# look for INSTALL_DEBUG_NAME in the install rules.
|
||||
#
|
||||
|
||||
COMMON_DEBUG_FLAGS= \
|
||||
DEBUG_NAME=$(DEBUG_NAME) \
|
||||
ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)-$(DEBUG_NAME) \
|
||||
NO_DOCS=true
|
||||
|
||||
product_build: setup
|
||||
@$(ECHO) $@ build started: `$(DATE) '+%y-%m-%d %H:%M'`
|
||||
$(MAKE) SKIP_FASTDEBUG_BUILD=true SKIP_DEBUG_BUILD=true all
|
||||
@$(ECHO) $@ build finished: `$(DATE) '+%y-%m-%d %H:%M'`
|
||||
|
||||
generic_debug_build:
|
||||
@$(ECHO) $@ build started: `$(DATE) '+%y-%m-%d %H:%M'`
|
||||
$(MAKE) $(COMMON_DEBUG_FLAGS) setup build
|
||||
@$(ECHO) $@ build finished: `$(DATE) '+%y-%m-%d %H:%M'`
|
||||
|
||||
debug_build: setup
|
||||
$(MAKE) DEBUG_NAME=debug generic_debug_build
|
||||
|
||||
fastdebug_build: setup
|
||||
$(MAKE) DEBUG_NAME=fastdebug generic_debug_build
|
||||
|
||||
ifeq ($(SKIP_FASTDEBUG_BUILD), false)
|
||||
all:: fastdebug_build
|
||||
endif
|
||||
|
||||
ifeq ($(SKIP_DEBUG_BUILD), false)
|
||||
all:: debug_build
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_JDK), true)
|
||||
ifeq ($(BUNDLE_RULES_AVAILABLE), true)
|
||||
all:: openjdk-binary-plugs-bundles
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_INSTALL), true)
|
||||
all :: $(INSTALL)
|
||||
clobber:: install-clobber
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_SPONSORS), true)
|
||||
all :: $(SPONSORS)
|
||||
clobber:: sponsors-clobber
|
||||
endif
|
||||
|
||||
ifneq ($(SKIP_COMPARE_IMAGES), true)
|
||||
all :: compare-image
|
||||
endif
|
||||
|
||||
ifneq ($(SKIP_OPENJDK_BUILD), true)
|
||||
all :: openjdk_build
|
||||
endif
|
||||
|
||||
# If we have bundle rules, we have a chance here to do a complete cycle
|
||||
# build, of production and open build.
|
||||
# FIXUP: We should create the openjdk source bundle and build that?
|
||||
@ -235,6 +310,7 @@ else
|
||||
endif
|
||||
|
||||
openjdk_build:
|
||||
@$(START_ECHO)
|
||||
@$(ECHO) " "
|
||||
@$(ECHO) "================================================="
|
||||
@$(ECHO) "Starting openjdk build"
|
||||
@ -245,6 +321,7 @@ openjdk_build:
|
||||
$(MKDIR) -p $(OPENJDK_OUTPUTDIR)
|
||||
($(CD) $(OPENJDK_BUILDDIR) && $(MAKE) \
|
||||
OPENJDK=true \
|
||||
NO_DOCS=true \
|
||||
ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR) \
|
||||
ALT_OUTPUTDIR=$(OPENJDK_OUTPUTDIR) \
|
||||
ALT_BINARY_PLUGS_PATH=$(OPENJDK_PLUGS) \
|
||||
@ -261,6 +338,7 @@ openjdk_build:
|
||||
@$(ECHO) " Binary Bundle: $(OPENJDK_BUILD_BINARY_ZIP)"
|
||||
@$(ECHO) "================================================="
|
||||
@$(ECHO) " "
|
||||
@$(FINISH_ECHO)
|
||||
|
||||
endif
|
||||
endif
|
||||
@ -274,8 +352,18 @@ clobber::
|
||||
|
||||
clean: clobber
|
||||
|
||||
all::
|
||||
@$(ECHO) Control build finished: `$(DATE) '+%y-%m-%d %H:%M'`
|
||||
#
|
||||
# Dev builds
|
||||
#
|
||||
|
||||
dev : dev-build
|
||||
|
||||
dev-build:
|
||||
$(MAKE) DEV_ONLY=true all
|
||||
dev-sanity:
|
||||
$(MAKE) DEV_ONLY=true sanity
|
||||
dev-clobber:
|
||||
$(MAKE) DEV_ONLY=true clobber
|
||||
|
||||
#
|
||||
# Quick jdk verification build
|
||||
@ -460,16 +548,6 @@ ifeq ($(BUNDLE_RULES_AVAILABLE), true)
|
||||
include $(BUNDLE_RULES)
|
||||
endif
|
||||
|
||||
################################################################
|
||||
# Cycle build. Build the jdk, use it to build the jdk again.
|
||||
################################################################
|
||||
|
||||
ABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
|
||||
|
||||
boot_cycle:
|
||||
$(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) product_build
|
||||
$(MAKE) ALT_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image product_build
|
||||
|
||||
################################################################
|
||||
# JPRT rule to build
|
||||
################################################################
|
||||
@ -480,9 +558,20 @@ include ./make/jprt.gmk
|
||||
# PHONY
|
||||
################################################################
|
||||
|
||||
.PHONY: all build what clobber insane \
|
||||
fastdebug_build debug_build product_build setup \
|
||||
dev dev-build dev-sanity dev-clobber
|
||||
.PHONY: all \
|
||||
generic_build_repo_series \
|
||||
what clobber insane \
|
||||
dev dev-build dev-sanity dev-clobber \
|
||||
product_build \
|
||||
fastdebug_build \
|
||||
debug_build \
|
||||
build_product_image \
|
||||
build_debug_image \
|
||||
build_fastdebug_image \
|
||||
create_fresh_product_bootdir \
|
||||
create_fresh_debug_bootdir \
|
||||
create_fresh_fastdebug_bootdir \
|
||||
generic_debug_build
|
||||
|
||||
# Force target
|
||||
FRC:
|
||||
|
@ -132,7 +132,7 @@
|
||||
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
|
||||
SunSolve</a> for patch downloads.
|
||||
</td>
|
||||
<td>Sun Studio 11 </td>
|
||||
<td>Sun Studio 12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Solaris SPARCV9 (64bit)</td>
|
||||
@ -141,7 +141,7 @@
|
||||
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
|
||||
SunSolve</a> for patch downloads.
|
||||
</td>
|
||||
<td>Sun Studio 11</td>
|
||||
<td>Sun Studio 12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Solaris X86 (32bit)</td>
|
||||
@ -150,7 +150,7 @@
|
||||
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
|
||||
SunSolve</a> for patch downloads.
|
||||
</td>
|
||||
<td>Sun Studio 11</td>
|
||||
<td>Sun Studio 12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Solaris X64 (64bit)</td>
|
||||
@ -159,7 +159,7 @@
|
||||
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
|
||||
SunSolve</a> for patch downloads.
|
||||
</td>
|
||||
<td>Sun Studio 11</td>
|
||||
<td>Sun Studio 12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Windows X86 (32bit)</td>
|
||||
@ -831,8 +831,8 @@
|
||||
<blockquote>
|
||||
At a minimum, the
|
||||
<a href="http://developers.sun.com/sunstudio/index.jsp" target="_blank">
|
||||
Sun Studio 11 Compilers</a>
|
||||
(containing version 5.8 of the C and C++ compilers) is required,
|
||||
Sun Studio 12 Compilers</a>
|
||||
(containing version 5.9 of the C and C++ compilers) is required,
|
||||
with patches from the
|
||||
<a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access" target="_blank">
|
||||
SunSolve web site</a>.
|
||||
|
@ -6,3 +6,4 @@ c14dab40ed9bf45ad21150bd70c9c80cdf655415 jdk7-b28
|
||||
4f91c08b3e4498213a9c5a24898f7d9c38cf86fb jdk7-b29
|
||||
d1605aabd0a15ecf93787c47de63073c33fba52d jdk7-b30
|
||||
9c2ecc2ffb125f14fab3857fe7689598956348a0 jdk7-b31
|
||||
b727c32788a906c04839516ae7443a085185a300 jdk7-b32
|
||||
|
@ -6,3 +6,4 @@ fb57027902e04ecafceae31a605e69b436c23d57 jdk7-b26
|
||||
e21f4266466cd1306b176aaa08b2cd8337a9be3d jdk7-b29
|
||||
b6d6877c1155621a175dccd12dc14c54f938fb8b jdk7-b30
|
||||
b7474b739d13bacd9972f88ac91f6350b7b0be12 jdk7-b31
|
||||
c51121419e30eac5f0fbbce45ff1711c4ce0de28 jdk7-b32
|
||||
|
@ -1,27 +0,0 @@
|
||||
|
||||
OPENJDK ASSEMBLY EXCEPTION
|
||||
|
||||
The OpenJDK source code made available by Sun at openjdk.java.net and
|
||||
openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the
|
||||
GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
|
||||
only ("GPL2"), with the following clarification and special exception.
|
||||
|
||||
Linking this OpenJDK Code statically or dynamically with other code
|
||||
is making a combined work based on this library. Thus, the terms
|
||||
and conditions of GPL2 cover the whole combination.
|
||||
|
||||
As a special exception, Sun gives you permission to link this
|
||||
OpenJDK Code with certain code licensed by Sun as indicated at
|
||||
http://openjdk.java.net/legal/exception-modules-2007-05-08.html
|
||||
("Designated Exception Modules") to produce an executable,
|
||||
regardless of the license terms of the Designated Exception Modules,
|
||||
and to copy and distribute the resulting executable under GPL2,
|
||||
provided that the Designated Exception Modules continue to be
|
||||
governed by the licenses under which they were offered by Sun.
|
||||
|
||||
As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to
|
||||
build an executable that includes those portions of necessary code that Sun
|
||||
could not provide under GPL2 (or that Sun has provided under GPL2 with the
|
||||
Classpath exception). If you modify or add to the OpenJDK code, that new
|
||||
GPL2 code may still be combined with Designated Exception Modules if the
|
||||
new code is made subject to this exception by its copyright holder.
|
347
jdk/make/LICENSE
347
jdk/make/LICENSE
@ -1,347 +0,0 @@
|
||||
The GNU General Public License (GPL)
|
||||
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this license
|
||||
document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your freedom to share
|
||||
and change it. By contrast, the GNU General Public License is intended to
|
||||
guarantee your freedom to share and change free software--to make sure the
|
||||
software is free for all its users. This General Public License applies to
|
||||
most of the Free Software Foundation's software and to any other program whose
|
||||
authors commit to using it. (Some other Free Software Foundation software is
|
||||
covered by the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not price. Our
|
||||
General Public Licenses are designed to make sure that you have the freedom to
|
||||
distribute copies of free software (and charge for this service if you wish),
|
||||
that you receive source code or can get it if you want it, that you can change
|
||||
the software or use pieces of it in new free programs; and that you know you
|
||||
can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid anyone to deny
|
||||
you these rights or to ask you to surrender the rights. These restrictions
|
||||
translate to certain responsibilities for you if you distribute copies of the
|
||||
software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether gratis or for
|
||||
a fee, you must give the recipients all the rights that you have. You must
|
||||
make sure that they, too, receive or can get the source code. And you must
|
||||
show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and (2)
|
||||
offer you this license which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain that
|
||||
everyone understands that there is no warranty for this free software. If the
|
||||
software is modified by someone else and passed on, we want its recipients to
|
||||
know that what they have is not the original, so that any problems introduced
|
||||
by others will not reflect on the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software patents. We
|
||||
wish to avoid the danger that redistributors of a free program will
|
||||
individually obtain patent licenses, in effect making the program proprietary.
|
||||
To prevent this, we have made it clear that any patent must be licensed for
|
||||
everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and modification
|
||||
follow.
|
||||
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains a notice
|
||||
placed by the copyright holder saying it may be distributed under the terms of
|
||||
this General Public License. The "Program", below, refers to any such program
|
||||
or work, and a "work based on the Program" means either the Program or any
|
||||
derivative work under copyright law: that is to say, a work containing the
|
||||
Program or a portion of it, either verbatim or with modifications and/or
|
||||
translated into another language. (Hereinafter, translation is included
|
||||
without limitation in the term "modification".) Each licensee is addressed as
|
||||
"you".
|
||||
|
||||
Activities other than copying, distribution and modification are not covered by
|
||||
this License; they are outside its scope. The act of running the Program is
|
||||
not restricted, and the output from the Program is covered only if its contents
|
||||
constitute a work based on the Program (independent of having been made by
|
||||
running the Program). Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's source code as
|
||||
you receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice and
|
||||
disclaimer of warranty; keep intact all the notices that refer to this License
|
||||
and to the absence of any warranty; and give any other recipients of the
|
||||
Program a copy of this License along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and you may
|
||||
at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion of it, thus
|
||||
forming a work based on the Program, and copy and distribute such modifications
|
||||
or work under the terms of Section 1 above, provided that you also meet all of
|
||||
these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices stating
|
||||
that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in whole or
|
||||
in part contains or is derived from the Program or any part thereof, to be
|
||||
licensed as a whole at no charge to all third parties under the terms of
|
||||
this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively when run,
|
||||
you must cause it, when started running for such interactive use in the
|
||||
most ordinary way, to print or display an announcement including an
|
||||
appropriate copyright notice and a notice that there is no warranty (or
|
||||
else, saying that you provide a warranty) and that users may redistribute
|
||||
the program under these conditions, and telling the user how to view a copy
|
||||
of this License. (Exception: if the Program itself is interactive but does
|
||||
not normally print such an announcement, your work based on the Program is
|
||||
not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If identifiable
|
||||
sections of that work are not derived from the Program, and can be reasonably
|
||||
considered independent and separate works in themselves, then this License, and
|
||||
its terms, do not apply to those sections when you distribute them as separate
|
||||
works. But when you distribute the same sections as part of a whole which is a
|
||||
work based on the Program, the distribution of the whole must be on the terms
|
||||
of this License, whose permissions for other licensees extend to the entire
|
||||
whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest your
|
||||
rights to work written entirely by you; rather, the intent is to exercise the
|
||||
right to control the distribution of derivative or collective works based on
|
||||
the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program with the
|
||||
Program (or with a work based on the Program) on a volume of a storage or
|
||||
distribution medium does not bring the other work under the scope of this
|
||||
License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it, under
|
||||
Section 2) in object code or executable form under the terms of Sections 1 and
|
||||
2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable source
|
||||
code, which must be distributed under the terms of Sections 1 and 2 above
|
||||
on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three years, to
|
||||
give any third party, for a charge no more than your cost of physically
|
||||
performing source distribution, a complete machine-readable copy of the
|
||||
corresponding source code, to be distributed under the terms of Sections 1
|
||||
and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer to
|
||||
distribute corresponding source code. (This alternative is allowed only
|
||||
for noncommercial distribution and only if you received the program in
|
||||
object code or executable form with such an offer, in accord with
|
||||
Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for making
|
||||
modifications to it. For an executable work, complete source code means all
|
||||
the source code for all modules it contains, plus any associated interface
|
||||
definition files, plus the scripts used to control compilation and installation
|
||||
of the executable. However, as a special exception, the source code
|
||||
distributed need not include anything that is normally distributed (in either
|
||||
source or binary form) with the major components (compiler, kernel, and so on)
|
||||
of the operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the source
|
||||
code from the same place counts as distribution of the source code, even though
|
||||
third parties are not compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program except as
|
||||
expressly provided under this License. Any attempt otherwise to copy, modify,
|
||||
sublicense or distribute the Program is void, and will automatically terminate
|
||||
your rights under this License. However, parties who have received copies, or
|
||||
rights, from you under this License will not have their licenses terminated so
|
||||
long as such parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not signed it.
|
||||
However, nothing else grants you permission to modify or distribute the Program
|
||||
or its derivative works. These actions are prohibited by law if you do not
|
||||
accept this License. Therefore, by modifying or distributing the Program (or
|
||||
any work based on the Program), you indicate your acceptance of this License to
|
||||
do so, and all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the Program),
|
||||
the recipient automatically receives a license from the original licensor to
|
||||
copy, distribute or modify the Program subject to these terms and conditions.
|
||||
You may not impose any further restrictions on the recipients' exercise of the
|
||||
rights granted herein. You are not responsible for enforcing compliance by
|
||||
third parties to this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues), conditions
|
||||
are imposed on you (whether by court order, agreement or otherwise) that
|
||||
contradict the conditions of this License, they do not excuse you from the
|
||||
conditions of this License. If you cannot distribute so as to satisfy
|
||||
simultaneously your obligations under this License and any other pertinent
|
||||
obligations, then as a consequence you may not distribute the Program at all.
|
||||
For example, if a patent license would not permit royalty-free redistribution
|
||||
of the Program by all those who receive copies directly or indirectly through
|
||||
you, then the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply and
|
||||
the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any patents or
|
||||
other property right claims or to contest validity of any such claims; this
|
||||
section has the sole purpose of protecting the integrity of the free software
|
||||
distribution system, which is implemented by public license practices. Many
|
||||
people have made generous contributions to the wide range of software
|
||||
distributed through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing to
|
||||
distribute software through any other system and a licensee cannot impose that
|
||||
choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to be a
|
||||
consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in certain
|
||||
countries either by patents or by copyrighted interfaces, the original
|
||||
copyright holder who places the Program under this License may add an explicit
|
||||
geographical distribution limitation excluding those countries, so that
|
||||
distribution is permitted only in or among countries not thus excluded. In
|
||||
such case, this License incorporates the limitation as if written in the body
|
||||
of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions of the
|
||||
General Public License from time to time. Such new versions will be similar in
|
||||
spirit to the present version, but may differ in detail to address new problems
|
||||
or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any later
|
||||
version", you have the option of following the terms and conditions either of
|
||||
that version or of any later version published by the Free Software Foundation.
|
||||
If the Program does not specify a version number of this License, you may
|
||||
choose any version ever published by the Free Software Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free programs
|
||||
whose distribution conditions are different, write to the author to ask for
|
||||
permission. For software which is copyrighted by the Free Software Foundation,
|
||||
write to the Free Software Foundation; we sometimes make exceptions for this.
|
||||
Our decision will be guided by the two goals of preserving the free status of
|
||||
all derivatives of our free software and of promoting the sharing and reuse of
|
||||
software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
|
||||
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
|
||||
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
|
||||
PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
||||
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
|
||||
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
|
||||
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
|
||||
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
|
||||
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
|
||||
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
|
||||
OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest possible
|
||||
use to the public, the best way to achieve this is to make it free software
|
||||
which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest to attach
|
||||
them to the start of each source file to most effectively convey the exclusion
|
||||
of warranty; and each file should have at least the "copyright" line and a
|
||||
pointer to where the full notice is found.
|
||||
|
||||
One line to give the program's name and a brief idea of what it does.
|
||||
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 2 of the License, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program 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 for
|
||||
more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc., 59
|
||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this when it
|
||||
starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
|
||||
with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free
|
||||
software, and you are welcome to redistribute it under certain conditions;
|
||||
type 'show c' for details.
|
||||
|
||||
The hypothetical commands 'show w' and 'show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may be
|
||||
called something other than 'show w' and 'show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary. Here
|
||||
is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
'Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
signature of Ty Coon, 1 April 1989
|
||||
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General Public
|
||||
License instead of this License.
|
||||
|
||||
|
||||
"CLASSPATH" EXCEPTION TO THE GPL
|
||||
|
||||
Certain source files distributed by Sun Microsystems, Inc. are subject to
|
||||
the following clarification and special exception to the GPL, but only where
|
||||
Sun has expressly included in the particular source file's header the words
|
||||
"Sun designates this particular file as subject to the "Classpath" exception
|
||||
as provided by Sun in the LICENSE file that accompanied this code."
|
||||
|
||||
Linking this library statically or dynamically with other modules is making
|
||||
a combined work based on this library. Thus, the terms and conditions of
|
||||
the GNU General Public License cover the whole combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent modules,
|
||||
and to copy and distribute the resulting executable under terms of your
|
||||
choice, provided that you also meet, for each linked independent module,
|
||||
the terms and conditions of the license of that module. An independent
|
||||
module is a module which is not derived from or based on this library. If
|
||||
you modify this library, you may extend this exception to your version of
|
||||
the library, but you are not obligated to do so. If you do not wish to do
|
||||
so, delete this exception statement from your version.
|
@ -1,34 +0,0 @@
|
||||
README:
|
||||
This file should be located at the top of the jdk Mercurial repository.
|
||||
|
||||
See http://openjdk.java.net/ for more information about the OpenJDK.
|
||||
|
||||
Simple Build Instructions:
|
||||
|
||||
1. Download and install a JDK 6 from
|
||||
http://java.sun.com/javase/downloads/index.jsp
|
||||
Set the environment variable ALT_BOOTDIR to the location of this JDK 6.
|
||||
|
||||
2. Download and install the Binary Plugs for the most recent JDK7 from
|
||||
http://download.java.net/openjdk/jdk7/
|
||||
Set the environment variable ALT_BINARY_PLUGS_PATH to the location of
|
||||
these binary plugs.
|
||||
|
||||
3. Either download and install the latest JDK7 from
|
||||
http://download.java.net/openjdk/jdk7/, or build your own complete
|
||||
OpenJDK7 by using the top level Makefile in the OpenJDK Mercurial forest.
|
||||
Set the environment variable ALT_JDK_IMPORT_PATH to the location of
|
||||
this latest JDK7 or OpenJDK7 build.
|
||||
|
||||
4. Check the sanity of doing a build with the current machine:
|
||||
cd make && gnumake sanity
|
||||
See README-builds.html if you run into problems.
|
||||
|
||||
5. Do a partial build of the jdk:
|
||||
cd make && gnumake all
|
||||
|
||||
6. Construct the images:
|
||||
cd make && gnumake images
|
||||
The resulting JDK image should be found in build/*/j2sdk-image
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,28 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
|
||||
<head> <title>OpenJDK README</title> </head>
|
||||
|
||||
<!-- ====================================================== -->
|
||||
<hr noshade="noshade" size="3">
|
||||
<center>
|
||||
<h1>OpenJDK README</h1>
|
||||
</center>
|
||||
|
||||
<!-- ------------------------------------------------------ -->
|
||||
<hr noshade="noshade" size="3">
|
||||
|
||||
<h2>TBD</h2>
|
||||
|
||||
<h2>Building the OpenJDK</h2>
|
||||
|
||||
<p>
|
||||
Refer to <a href="README-builds.html">the OpenJDK Build README</a>
|
||||
for build instructions.
|
||||
|
||||
<!-- ====================================================== -->
|
||||
|
||||
<hr noshade="noshade" size="3">
|
||||
|
||||
</body>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
@ -193,7 +193,7 @@ build-jar: $(UNSIGNED_DIR)/sunjce_provider.jar
|
||||
$(UNSIGNED_DIR)/sunjce_provider.jar: build $(JCE_MANIFEST_FILE)
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
|
||||
@ -253,7 +253,7 @@ endif
|
||||
@$(CD) $(OBFUS_DIR); $(java-vm-cleanup)
|
||||
$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ \
|
||||
-C $(OBFUS_DIR)/build com \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
$(sign-target)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
|
@ -71,7 +71,7 @@ $(IMJAR): $(FILES_class) $(FILES_copy) $(PROVIDER_CONF_FILE)
|
||||
$(BOOT_JAR_CMD) -cf $@ \
|
||||
-C $(CLASSDESTDIR) com \
|
||||
-C $(CLASSDESTDIR) $(SERVICESDIR) \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
clean::
|
||||
|
@ -71,7 +71,7 @@ $(IMJAR): $(FILES_class) $(FILES_copy) $(PROVIDER_CONF_FILE)
|
||||
$(BOOT_JAR_CMD) -cf $@ \
|
||||
-C $(CLASSDESTDIR) com \
|
||||
-C $(CLASSDESTDIR) $(SERVICESDIR) \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
clean::
|
||||
|
@ -46,7 +46,7 @@ $(BUILDTOOL_JAR_FILE): $(BUILDTOOL_MANIFEST_FILE) \
|
||||
-sourcepath $(BUILDTOOL_SOURCE_ROOT) $(BUILDTOOL_MAIN_SOURCE_FILE)
|
||||
$(BOOT_JAR_CMD) cfm $@ $(BUILDTOOL_MANIFEST_FILE) \
|
||||
-C $(BUILDTOOLCLASSDIR) $(PKGDIR) \
|
||||
$(JAR_JFLAGS) || $(RM) $@
|
||||
$(BOOT_JAR_JFLAGS) || $(RM) $@
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
# Printing out a build tool information line
|
||||
|
@ -86,18 +86,22 @@ HPIS = native
|
||||
#
|
||||
# Default optimization
|
||||
#
|
||||
CC_HIGHEST_OPT = -O3
|
||||
CC_HIGHER_OPT = -O3
|
||||
CC_LOWER_OPT = -O2
|
||||
CC_NO_OPT =
|
||||
|
||||
ifeq ($(PRODUCT), java)
|
||||
_OPT = $(CC_HIGHER_OPT)
|
||||
else
|
||||
_OPT = $(CC_LOWER_OPT)
|
||||
CPPFLAGS_DBG += -DLOGGING
|
||||
ifndef OPTIMIZATION_LEVEL
|
||||
ifeq ($(PRODUCT), java)
|
||||
OPTIMIZATION_LEVEL = HIGHER
|
||||
else
|
||||
OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
endif
|
||||
|
||||
CC_OPT/NONE =
|
||||
CC_OPT/LOWER = -O2
|
||||
CC_OPT/HIGHER = -O3
|
||||
CC_OPT/HIGHEST = -O3
|
||||
|
||||
CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
|
||||
|
||||
# For all platforms, do not omit the frame pointer register usage.
|
||||
# We need this frame pointer to make it easy to walk the stacks.
|
||||
# This should be the default on X86, but ia64 and amd64 may not have this
|
||||
@ -112,18 +116,6 @@ LDFLAGS_COMMON_sparc += -m32 -mcpu=v9
|
||||
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
|
||||
LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH))
|
||||
|
||||
# Add in platform specific optimizations for all opt levels
|
||||
CC_HIGHEST_OPT += $(_OPT_$(ARCH))
|
||||
CC_HIGHER_OPT += $(_OPT_$(ARCH))
|
||||
CC_LOWER_OPT += $(_OPT_$(ARCH))
|
||||
|
||||
# If NO_OPTIMIZATIONS is defined in the environment, turn all optimzations off
|
||||
ifdef NO_OPTIMIZATIONS
|
||||
CC_HIGHEST_OPT = $(CC_NO_OPT)
|
||||
CC_HIGHER_OPT = $(CC_NO_OPT)
|
||||
CC_LOWER_OPT = $(CC_NO_OPT)
|
||||
endif
|
||||
|
||||
#
|
||||
# Selection of warning messages
|
||||
#
|
||||
@ -162,19 +154,19 @@ ifeq ($(FASTDEBUG), true)
|
||||
endif
|
||||
endif
|
||||
|
||||
CFLAGS_OPT = $(POPT)
|
||||
CFLAGS_OPT = $(CC_OPT)
|
||||
CFLAGS_DBG = $(DEBUG_FLAG)
|
||||
CFLAGS_COMMON += $(CFLAGS_REQUIRED)
|
||||
|
||||
CXXFLAGS_COMMON = $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS)
|
||||
CXXFLAGS_OPT = $(POPT)
|
||||
CXXFLAGS_OPT = $(CC_OPT)
|
||||
CXXFLAGS_DBG = $(DEBUG_FLAG)
|
||||
CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
|
||||
|
||||
# FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
CFLAGS_DBG += $(CC_LOWER_OPT)
|
||||
CXXFLAGS_DBG += $(CC_LOWER_OPT)
|
||||
CFLAGS_DBG += $(CC_OPT/LOWER)
|
||||
CXXFLAGS_DBG += $(CC_OPT/LOWER)
|
||||
endif
|
||||
|
||||
CPPFLAGS_COMMON = -D$(ARCH) -DARCH='"$(ARCH)"' -DLINUX $(VERSION_DEFINES) \
|
||||
@ -186,6 +178,9 @@ endif
|
||||
|
||||
CPPFLAGS_OPT =
|
||||
CPPFLAGS_DBG = -DDEBUG
|
||||
ifneq ($(PRODUCT), java)
|
||||
CPPFLAGS_DBG += -DLOGGING
|
||||
endif
|
||||
|
||||
ifdef LIBRARY
|
||||
# Libraries need to locate other libraries at runtime, and you can tell
|
||||
|
@ -86,15 +86,16 @@ HPIS = native
|
||||
#
|
||||
# Java default optimization (-x04/-O2) etc. Applies to the VM.
|
||||
#
|
||||
ifeq ($(PRODUCT), java)
|
||||
_OPT = $(CC_HIGHER_OPT)
|
||||
else
|
||||
_OPT = $(CC_LOWER_OPT)
|
||||
CPPFLAGS_DBG += -DLOGGING -DDBINFO
|
||||
ifndef OPTIMIZATION_LEVEL
|
||||
ifeq ($(PRODUCT), java)
|
||||
OPTIMIZATION_LEVEL = HIGHER
|
||||
else
|
||||
OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# If -Xa is in CFLAGS_COMMON it will end up ahead of $(POPT) for the
|
||||
# If -Xa is in CFLAGS_COMMON it will end up ahead of $(CC_OPT) for the
|
||||
# optimized build, and that ordering of the flags completely freaks
|
||||
# out cc. Hence, -Xa is instead in each CFLAGS variant.
|
||||
#
|
||||
@ -123,8 +124,8 @@ endif
|
||||
#
|
||||
# Debug flag for C and C++ compiler
|
||||
#
|
||||
CFLAGS_DEBUG_OPTION=-g
|
||||
CXXFLAGS_DEBUG_OPTION=-g
|
||||
CFLAGS_DEBUG_OPTION = -g $(CC_OPT/NONE)
|
||||
CXXFLAGS_DEBUG_OPTION = -g $(CXX_OPT/NONE)
|
||||
|
||||
# Turn off -g if we are doing tcov build
|
||||
ifdef TCOV_BUILD
|
||||
@ -142,9 +143,8 @@ endif
|
||||
# Performance/size of files should be about the same, maybe smaller.
|
||||
#
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
CC_FASTDEBUG_OPT = $(CC_LOWER_OPT)
|
||||
CFLAGS_DEBUG_OPTION = -g $(CC_FASTDEBUG_OPT)
|
||||
CXXFLAGS_DEBUG_OPTION = -g0 $(CC_FASTDEBUG_OPT)
|
||||
CFLAGS_DEBUG_OPTION = -g $(CC_OPT/LOWER)
|
||||
CXXFLAGS_DEBUG_OPTION = -g0 $(CXX_OPT/LOWER)
|
||||
endif
|
||||
|
||||
CFLAGS_COMMON = -L$(OBJDIR)
|
||||
@ -160,7 +160,7 @@ CFLAGS_COMMON += -errshort=tags
|
||||
CXXFLAGS_COMMON += -errtags=yes
|
||||
|
||||
# Optimization flags
|
||||
CFLAGS_OPT = $(POPT)
|
||||
CFLAGS_OPT = $(CC_OPT)
|
||||
|
||||
# Debug version flags
|
||||
CFLAGS_DBG = $(CFLAGS_DEBUG_OPTION)
|
||||
@ -197,7 +197,7 @@ ifeq ($(COMPILER_WARNINGS_FATAL),true)
|
||||
CXXFLAGS_COMMON += -errwarn=%all
|
||||
endif
|
||||
|
||||
CXXFLAGS_OPT = $(POPT)
|
||||
CXXFLAGS_OPT = $(CXX_OPT)
|
||||
CXXFLAGS_DBG = $(CXXFLAGS_DEBUG_OPTION)
|
||||
CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
|
||||
|
||||
@ -267,6 +267,10 @@ CPPFLAGS_COMMON = -D__solaris__ -D$(ARCH_FAMILY)
|
||||
CPPFLAGS_OPT = -DNDEBUG
|
||||
CPPFLAGS_DBG = -DDEBUG
|
||||
|
||||
ifneq ($(PRODUCT), java)
|
||||
CPPFLAGS_DBG += -DLOGGING -DDBINFO
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH_FAMILY), i586)
|
||||
# The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
|
||||
# Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
|
||||
@ -410,63 +414,151 @@ endif
|
||||
# Different "levels" of optimization.
|
||||
#
|
||||
ifeq ($(CC_VERSION),gcc)
|
||||
CC_HIGHEST_OPT = -O3
|
||||
CC_HIGHER_OPT = -O3
|
||||
CC_LOWER_OPT = -O2
|
||||
|
||||
CC_OPT/NONE =
|
||||
CC_OPT/LOWER = -O2
|
||||
CC_OPT/HIGHER = -O3
|
||||
CC_OPT/HIGHEST = -O3
|
||||
|
||||
CXX_OPT/NONE =
|
||||
CXX_OPT/LOWER = -O2
|
||||
CXX_OPT/HIGHER = -O3
|
||||
CXX_OPT/HIGHEST = -O3
|
||||
|
||||
CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer
|
||||
CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer
|
||||
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
# (See Rules.gmk) May need to wait for gcc 5?
|
||||
AUTOMATIC_PCH_OPTION =
|
||||
|
||||
else
|
||||
|
||||
# Highest could be -xO5, but indications are that -xO5 should be reserved
|
||||
# for a per-file use, on sources with known performance impacts.
|
||||
CC_HIGHEST_OPT = -xO4
|
||||
CC_HIGHER_OPT = -xO4
|
||||
CC_LOWER_OPT = -xO2
|
||||
OPT_LEVEL/LOWER = 2
|
||||
OPT_LEVEL/HIGHER = 4
|
||||
OPT_LEVEL/HIGHEST = 4
|
||||
|
||||
CC_OPT/NONE =
|
||||
CC_OPT/LOWER = $(OPT_LEVEL/LOWER:%=-xO%)
|
||||
CC_OPT/HIGHER = $(OPT_LEVEL/HIGHER:%=-xO%)
|
||||
CC_OPT/HIGHEST = $(OPT_LEVEL/HIGHEST:%=-xO%)
|
||||
|
||||
CXX_OPT/NONE =
|
||||
CXX_OPT/LOWER = $(OPT_LEVEL/LOWER:%=-xO%)
|
||||
CXX_OPT/HIGHER = $(OPT_LEVEL/HIGHER:%=-xO%)
|
||||
CXX_OPT/HIGHEST = $(OPT_LEVEL/HIGHEST:%=-xO%)
|
||||
|
||||
# We need stack frames at all times
|
||||
USE_XKEEPFRAME_OPTION = false
|
||||
ifeq ($(USE_XKEEPFRAME_OPTION),true)
|
||||
|
||||
# Unknown spelling on this option at this time (Maybe in SS13?)
|
||||
CC_XKEEPFRAME_OPTIONS = -xkeepframe
|
||||
CXX_XKEEPFRAME_OPTIONS = -xkeepframe
|
||||
|
||||
else
|
||||
|
||||
# On X86, make sure tail call optimization is off
|
||||
# The z and y are the tail call optimizations.
|
||||
ifeq ($(ARCH_FAMILY), i586)
|
||||
ifeq ($(shell $(EXPR) $(CC_VER) \> 5.8), 1)
|
||||
# Somehow, tail call optimization is creeping in.
|
||||
# Make sure it is off.
|
||||
# WARNING: These may cause compiler warnings about duplicate -O options
|
||||
CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz
|
||||
CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz
|
||||
endif
|
||||
endif
|
||||
|
||||
# On i586 we need to tell the code generator to ALWAYS use a
|
||||
# frame pointer.
|
||||
ifeq ($(ARCH_FAMILY), i586)
|
||||
# Note that in 5.7, this is done with -xregs=no%frameptr
|
||||
ifeq ($(CC_VER), 5.5)
|
||||
# It's not exactly clear when this optimization kicks in, the
|
||||
# current assumption is -xO4 or greater and for C++ with
|
||||
# the -features=no%except option and -xO4 and greater.
|
||||
# Bottom line is, we ALWAYS want a frame pointer!
|
||||
CC_XKEEPFRAME_OPTIONS += -Wu,-Z~B
|
||||
CXX_XKEEPFRAME_OPTIONS += -Qoption ube -Z~B
|
||||
endif
|
||||
ifeq ($(shell $(EXPR) $(CC_VER) \> 5.6), 1)
|
||||
# Do NOT use frame pointer register as a general purpose opt register
|
||||
CC_OPT/NONE += -xregs=no%frameptr
|
||||
CXX_OPT/NONE += -xregs=no%frameptr
|
||||
CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr
|
||||
CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr
|
||||
endif
|
||||
endif
|
||||
|
||||
# Optimizer for sparc needs to be told not to do certain things
|
||||
# related to frames or save instructions.
|
||||
ifeq ($(ARCH_FAMILY), sparc)
|
||||
# Do not use save instructions instead of add instructions
|
||||
# This was an optimization starting in SC5.0 that made it hard for us to
|
||||
# find the "save" instruction (which got turned into an "add")
|
||||
CC_XKEEPFRAME_OPTIONS += -Wc,-Qrm-s
|
||||
CXX_XKEEPFRAME_OPTIONS += -Qoption cg -Qrm-s
|
||||
# Don't allow tail call code optimization. Started in SC5.0.
|
||||
# We don't like code of this form:
|
||||
# save
|
||||
# <code>
|
||||
# call foo
|
||||
# restore
|
||||
# because we can't tell if the method will have a stack frame
|
||||
# and register windows or not.
|
||||
CC_XKEEPFRAME_OPTIONS += -Wc,-Qiselect-T0
|
||||
CXX_XKEEPFRAME_OPTIONS += -Qoption cg -Qiselect-T0
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
# Extra options used with HIGHEST
|
||||
#
|
||||
# WARNING: Use of _OPT=$(CC_HIGHEST_OPT) in your Makefile needs to be
|
||||
# WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
|
||||
# done with care, there are some assumptions below that need to
|
||||
# be understood about the use of pointers, and IEEE behavior.
|
||||
#
|
||||
# Use non-standard floating point mode (not IEEE 754)
|
||||
CC_HIGHEST_OPT += -fns
|
||||
CC_HIGHEST_EXTRAS += -fns
|
||||
# Do some simplification of floating point arithmetic (not IEEE 754)
|
||||
CC_HIGHEST_OPT += -fsimple
|
||||
CC_HIGHEST_EXTRAS += -fsimple
|
||||
# Use single precision floating point with 'float'
|
||||
CC_HIGHEST_OPT += -fsingle
|
||||
CC_HIGHEST_EXTRAS += -fsingle
|
||||
# Assume memory references via basic pointer types do not alias
|
||||
# (Source with excessing pointer casting and data access with mixed
|
||||
# pointer types are not recommended)
|
||||
CC_HIGHEST_OPT += -xalias_level=basic
|
||||
CC_HIGHEST_EXTRAS += -xalias_level=basic
|
||||
# Use intrinsic or inline versions for math/std functions
|
||||
# (If you expect perfect errno behavior, do not use this)
|
||||
CC_HIGHEST_OPT += -xbuiltin=%all
|
||||
CC_HIGHEST_EXTRAS += -xbuiltin=%all
|
||||
# Loop data dependency optimizations (need -xO3 or higher)
|
||||
CC_HIGHEST_OPT += -xdepend
|
||||
CC_HIGHEST_EXTRAS += -xdepend
|
||||
# Pointer parameters to functions do not overlap
|
||||
# (Similar to -xalias_level=basic usage, but less obvious sometimes.
|
||||
# If you pass in multiple pointers to the same data, do not use this)
|
||||
CC_HIGHEST_OPT += -xrestrict
|
||||
CC_HIGHEST_EXTRAS += -xrestrict
|
||||
# Inline some library routines
|
||||
# (If you expect perfect errno behavior, do not use this)
|
||||
CC_HIGHEST_OPT += -xlibmil
|
||||
CC_HIGHEST_EXTRAS += -xlibmil
|
||||
# Use optimized math routines
|
||||
# (If you expect perfect errno behavior, do not use this)
|
||||
# Can cause undefined external on Solaris 8 X86 on __sincos, removing for now
|
||||
# CC_HIGHEST_OPT += -xlibmopt
|
||||
# CC_HIGHEST_EXTRAS += -xlibmopt
|
||||
ifeq ($(ARCH_FAMILY), sparc)
|
||||
# Assume at most 8byte alignment, raise SIGBUS on error
|
||||
### Presents an ABI issue with customer JNI libs?
|
||||
####CC_HIGHEST_OPT += -xmemalign=8s
|
||||
####CC_HIGHEST_EXTRAS += -xmemalign=8s
|
||||
# Automatic prefetch instructions, explicit prefetch macros
|
||||
CC_HIGHEST_OPT += -xprefetch=auto,explicit
|
||||
CC_HIGHEST_EXTRAS += -xprefetch=auto,explicit
|
||||
# Pick ultra as the chip to optimize to
|
||||
CC_HIGHEST_OPT += -xchip=ultra
|
||||
CC_HIGHEST_EXTRAS += -xchip=ultra
|
||||
endif
|
||||
ifeq ($(ARCH), i586)
|
||||
# Pick pentium as the chip to optimize to
|
||||
CC_HIGHEST_OPT += -xchip=pentium
|
||||
CC_HIGHEST_EXTRAS += -xchip=pentium
|
||||
endif
|
||||
ifdef LIBRARY
|
||||
# The Solaris CBE (Common Build Environment) requires that the use
|
||||
@ -476,9 +568,6 @@ else
|
||||
CFLAGS_REQUIRED_sparcv9 += -xregs=no%appl
|
||||
endif
|
||||
ifeq ($(shell $(EXPR) $(CC_VER) \> 5.6), 1)
|
||||
# Do NOT use the frame pointer register as a general purpose opt register
|
||||
CFLAGS_REQUIRED_i586 += -xregs=no%frameptr
|
||||
CFLAGS_REQUIRED_amd64 += -xregs=no%frameptr
|
||||
# We MUST allow data alignment of 4 for sparc V8 (32bit)
|
||||
# Presents an ABI issue with customer JNI libs? We must be able to
|
||||
# to handle 4byte aligned objects? (rare occurance, but possible?)
|
||||
@ -492,77 +581,28 @@ else
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
# (See Rules.gmk) The SS11 -xpch=auto* options appear to be broken.
|
||||
AUTOMATIC_PCH_OPTION =
|
||||
|
||||
# Add in keep frame options
|
||||
CC_OPT/LOWER += $(CC_XKEEPFRAME_OPTIONS)
|
||||
CC_OPT/HIGHER += $(CC_XKEEPFRAME_OPTIONS)
|
||||
CC_OPT/HIGHEST += $(CC_XKEEPFRAME_OPTIONS)
|
||||
CXX_OPT/LOWER += $(CXX_XKEEPFRAME_OPTIONS)
|
||||
CXX_OPT/HIGHER += $(CXX_XKEEPFRAME_OPTIONS)
|
||||
CXX_OPT/HIGHEST += $(CXX_XKEEPFRAME_OPTIONS)
|
||||
|
||||
# Add in highest optimization settings
|
||||
CC_OPT/HIGHEST += $(CC_HIGHEST_EXTRAS)
|
||||
CXX_OPT/HIGHEST += $(CC_HIGHEST_EXTRAS)
|
||||
|
||||
endif
|
||||
CC_NO_OPT =
|
||||
|
||||
# If NO_OPTIMIZATIONS is defined in the environment, turn all optimzations off
|
||||
ifdef NO_OPTIMIZATIONS
|
||||
CC_HIGHEST_OPT = $(CC_NO_OPT)
|
||||
CC_HIGHER_OPT = $(CC_NO_OPT)
|
||||
CC_LOWER_OPT = $(CC_NO_OPT)
|
||||
endif
|
||||
# Default optimization settings based on level.
|
||||
CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
|
||||
CXX_OPT = $(CXX_OPT/$(OPTIMIZATION_LEVEL))
|
||||
|
||||
# Flags required all the time
|
||||
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
|
||||
|
||||
# Add processor specific options for optimizations
|
||||
CC_HIGHEST_OPT += $(_OPT_$(ARCH))
|
||||
CC_HIGHER_OPT += $(_OPT_$(ARCH))
|
||||
CC_LOWER_OPT += $(_OPT_$(ARCH))
|
||||
|
||||
# Secret compiler optimization options that should be in the above macros
|
||||
# but since they differ in format from C to C++, are added into the C or
|
||||
# C++ specific macros for compiler flags.
|
||||
#
|
||||
# On i586 we need to tell the code generator to ALWAYS use a
|
||||
# frame pointer.
|
||||
ifeq ($(ARCH_FAMILY), i586)
|
||||
# Note that in 5.7, this is done with -xregs=no%frameptr
|
||||
ifeq ($(CC_VER), 5.5)
|
||||
# It's not exactly clear when this optimization kicks in, the
|
||||
# current assumption is -xO4 or greater and for C++ with
|
||||
# the -features=no%except option and -xO4 and greater.
|
||||
# Bottom line is, we ALWAYS want a frame pointer!
|
||||
CXXFLAGS_OPT += -Qoption ube -Z~B
|
||||
CFLAGS_OPT += -Wu,-Z~B
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
CXXFLAGS_DBG += -Qoption ube -Z~B
|
||||
CFLAGS_DBG += -Wu,-Z~B
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
#
|
||||
# Optimizer for sparc needs to be told not to do certain things
|
||||
# related to frames or save instructions.
|
||||
ifeq ($(ARCH_FAMILY), sparc)
|
||||
# NOTE: Someday the compilers will provide a high-level option for this.
|
||||
# Use save instructions instead of add instructions
|
||||
# This was an optimization starting in SC5.0 that made it hard for us to
|
||||
# find the "save" instruction (which got turned into an "add")
|
||||
CXXFLAGS_OPT += -Qoption cg -Qrm-s
|
||||
CFLAGS_OPT += -Wc,-Qrm-s
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
CXXFLAGS_DBG += -Qoption cg -Qrm-s
|
||||
CFLAGS_DBG += -Wc,-Qrm-s
|
||||
endif
|
||||
#
|
||||
# NOTE: Someday the compilers will provide a high-level option for this.
|
||||
# Don't allow tail call code optimization. Started in SC5.0.
|
||||
# We don't like code of this form:
|
||||
# save
|
||||
# <code>
|
||||
# call foo
|
||||
# restore
|
||||
# because we can't tell if the method will have a stack frame
|
||||
# and register windows or not.
|
||||
CXXFLAGS_OPT += -Qoption cg -Qiselect-T0
|
||||
CFLAGS_OPT += -Wc,-Qiselect-T0
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
CXXFLAGS_DBG += -Qoption cg -Qiselect-T0
|
||||
CFLAGS_DBG += -Wc,-Qiselect-T0
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Path and option to link against the VM, if you have to. Note that
|
||||
# there are libraries that link against only -ljava, but they do get
|
||||
|
@ -84,6 +84,15 @@ EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH)
|
||||
#
|
||||
# Default optimization
|
||||
#
|
||||
|
||||
ifndef OPTIMIZATION_LEVEL
|
||||
ifeq ($(PRODUCT), java)
|
||||
OPTIMIZATION_LEVEL = HIGHER
|
||||
else
|
||||
OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CC_VERSION),msvc)
|
||||
# Visual Studio .NET 2003 or VS2003 compiler option definitions:
|
||||
# -O1 Favors reduced size over speed (-Og -Os -Oy -Ob2 -Gs -GF -Gy)
|
||||
@ -113,21 +122,28 @@ ifeq ($(CC_VERSION),msvc)
|
||||
# NOTE: With VC6, -Ox, -O1, and -O2 used -Ob1, not -Ob2.
|
||||
# NOTE: With VC6, -O1 and -O2 used -Gf, not -GF.
|
||||
#
|
||||
|
||||
CC_OPT/NONE = -Od
|
||||
CC_OPT/LOWER = -O2
|
||||
CC_OPT/HIGHER = -O3
|
||||
CC_OPT/HIGHEST = -O3
|
||||
|
||||
ifeq ($(COMPILER_VERSION), VC6)
|
||||
# VC6 (6.2) msvc compiler (the way Tiger and early Mustang were built)
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
AUTOMATIC_PCH_OPTION =
|
||||
GX_OPTION = -GX
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
CC_HIGHEST_OPT = -Ox -Gy -Os -GB
|
||||
CC_HIGHER_OPT = -Ox -Gy -Os -GB
|
||||
CC_LOWER_OPT = -Ox -Gy -Os -GB
|
||||
CC_OPT/HIGHEST = -Ox -Gy -Os -GB
|
||||
CC_OPT/HIGHER = -Ox -Gy -Os -GB
|
||||
CC_OPT/LOWER = -Ox -Gy -Os -GB
|
||||
else
|
||||
CC_HIGHEST_OPT = -Ox -Gy -Op
|
||||
CC_HIGHER_OPT = -Ox -Gy -Op
|
||||
CC_LOWER_OPT = -Ox -Gy -Op
|
||||
CC_OPT/HIGHEST = -Ox -Gy -Op
|
||||
CC_OPT/HIGHER = -Ox -Gy -Op
|
||||
CC_OPT/LOWER = -Ox -Gy -Op
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(COMPILER_VERSION), VS2003)
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
AUTOMATIC_PCH_OPTION = -YX
|
||||
@ -135,53 +151,45 @@ ifeq ($(CC_VERSION),msvc)
|
||||
GX_OPTION = -GX
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
# Lowered opt level to try and reduce footprint, dll size especially.
|
||||
# Was: CC_HIGHEST_OPT = -O2 -G6
|
||||
# Was: CC_HIGHER_OPT = -O2
|
||||
CC_HIGHEST_OPT = -O2
|
||||
CC_HIGHER_OPT = -O1
|
||||
CC_LOWER_OPT = -O1
|
||||
# Was: CC_OPT/HIGHEST = -O2 -G6
|
||||
# Was: CC_OPT/HIGHER = -O2
|
||||
CC_OPT/HIGHEST = -O2
|
||||
CC_OPT/HIGHER = -O1
|
||||
CC_OPT/LOWER = -O1
|
||||
else
|
||||
CC_HIGHEST_OPT = -O2 -Op
|
||||
CC_HIGHER_OPT = -O2 -Op
|
||||
CC_LOWER_OPT = -O1 -Op
|
||||
CC_OPT/HIGHEST = -O2 -Op
|
||||
CC_OPT/HIGHER = -O2 -Op
|
||||
CC_OPT/LOWER = -O1 -Op
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(COMPILER_VERSION), VS2005)
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
AUTOMATIC_PCH_OPTION =
|
||||
# VS2005 compiler, only with Platform SDK right now?
|
||||
GX_OPTION = -EHsc
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
CC_HIGHEST_OPT = -O2
|
||||
CC_HIGHER_OPT = -O1
|
||||
CC_LOWER_OPT = -O1
|
||||
CC_OPT/HIGHEST = -O2
|
||||
CC_OPT/HIGHER = -O1
|
||||
CC_OPT/LOWER = -O1
|
||||
else
|
||||
CC_HIGHEST_OPT = -O2
|
||||
CC_HIGHER_OPT = -O1
|
||||
CC_LOWER_OPT = -O1
|
||||
CC_OPT/HIGHEST = -O2
|
||||
CC_OPT/HIGHER = -O1
|
||||
CC_OPT/LOWER = -O1
|
||||
endif
|
||||
endif
|
||||
CC_NO_OPT = -Od
|
||||
|
||||
else # CC_VERSION
|
||||
|
||||
# GCC not supported, but left for historical reference...
|
||||
CC_HIGHEST_OPT = -O3
|
||||
CC_HIGHER_OPT = -O2
|
||||
CC_LOWER_OPT = -O2
|
||||
CC_NO_OPT =
|
||||
CC_OPT/NONE =
|
||||
CC_OPT/LOWER = -O2
|
||||
CC_OPT/HIGHER = -O2
|
||||
CC_OPT/HIGHEST = -O3
|
||||
|
||||
endif
|
||||
|
||||
# If NO_OPTIMIZATIONS is defined in the environment, turn all optimzations off
|
||||
ifdef NO_OPTIMIZATIONS
|
||||
CC_HIGHEST_OPT = $(CC_NO_OPT)
|
||||
CC_HIGHER_OPT = $(CC_NO_OPT)
|
||||
CC_LOWER_OPT = $(CC_NO_OPT)
|
||||
endif
|
||||
|
||||
ifeq ($(PRODUCT), java)
|
||||
_OPT = $(CC_HIGHER_OPT)
|
||||
else
|
||||
_OPT = $(CC_LOWER_OPT)
|
||||
endif
|
||||
CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
|
||||
|
||||
# Select the runtime support library carefully, need to be consistent
|
||||
#
|
||||
@ -233,7 +241,7 @@ ifeq ($(CC_VERSION),msvc)
|
||||
# Use static link for the C++ runtime (so msvcp71.dll not needed)
|
||||
#
|
||||
CFLAGS_COMMON += -Zi -nologo
|
||||
CFLAGS_OPT = $(POPT)
|
||||
CFLAGS_OPT = $(CC_OPT)
|
||||
CFLAGS_DBG = -Od $(MS_RUNTIME_DEBUG_OPTION)
|
||||
|
||||
# Starting from VS2005 the wchar_t is handled as a built-in C/C++ data type
|
||||
|
@ -482,11 +482,6 @@ PKGDIR = $(subst .,/,$(PACKAGE))
|
||||
#
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs-java.gmk
|
||||
|
||||
#
|
||||
# Set opt level to ALT_OPT if set otherwise _OPT
|
||||
#
|
||||
POPT = $(_OPT$(ALT_OPT))$(ALT_OPT)
|
||||
|
||||
#
|
||||
# Convenient macros
|
||||
#
|
||||
|
@ -251,7 +251,7 @@ $(DEMO_JAR): \
|
||||
@$(DEMO_JAVAC_INPUT)
|
||||
$(BOOT_JAR_CMD) -cfm $@ $(DEMO_MANIFEST) \
|
||||
-C $(DEMO_JAR_IMAGE) . \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
endif
|
||||
@ -317,7 +317,11 @@ bundles: $(DEMO_BUILD_SRCZIP)
|
||||
# Applets are special, no jar file, no src.zip, everything expanded.
|
||||
ifdef DEMO_IS_APPLET
|
||||
@$(ECHO) "Expanding jar file into demos area at $(DEMO_DESTDIR)"
|
||||
( $(CD) $(DEMO_DESTDIR) && $(BOOT_JAR_CMD) -xfv $(DEMONAME).jar && $(RM) -r META-INF $(DEMONAME).jar )
|
||||
( $(CD) $(DEMO_DESTDIR) && \
|
||||
$(BOOT_JAR_CMD) -xfv $(DEMONAME).jar \
|
||||
$(BOOT_JAR_JFLAGS) && \
|
||||
$(RM) -r META-INF $(DEMONAME).jar && \
|
||||
$(java-vm-cleanup) )
|
||||
@( $(CD) $(DEMO_DESTDIR) && $(java-vm-cleanup) )
|
||||
@$(ECHO) "Expanding source into demos area at $(DEMO_DESTDIR)"
|
||||
( $(CD) $(DEMO_DESTDIR) && $(UNZIP) -o src.zip && $(RM) src.zip )
|
||||
|
@ -238,7 +238,7 @@ else # PLATFORM
|
||||
#
|
||||
$(ACTUAL_LIBRARY):: $(COMPILE_FILES_o) $(FILES_m) $(FILES_reorder)
|
||||
@$(prep-target)
|
||||
@$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), _OPT=$(_OPT)"
|
||||
@$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), OPTIMIZATION_LEVEL=$(OPTIMIZATION_LEVEL)"
|
||||
@$(ECHO) "Rebuilding $@ because of $?"
|
||||
ifeq ($(LIBRARY), fdlibm)
|
||||
$(AR) -r $@ $(FILES_o)
|
||||
|
@ -63,15 +63,6 @@ endif
|
||||
|
||||
JTG_DOCS = $(JDK_TOPDIR)/src/solaris/doc
|
||||
|
||||
# Choose the right set of documents for the images
|
||||
ifdef OPENJDK
|
||||
SHARE_JDK_DOC_SRC = $(JDK_TOPDIR)/make
|
||||
SHARE_JRE_DOC_SRC = $(JDK_TOPDIR)/make
|
||||
else
|
||||
SHARE_JDK_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jdk
|
||||
SHARE_JRE_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jre
|
||||
endif
|
||||
|
||||
#We use this for man page header
|
||||
jdkversion := $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
|
||||
|
||||
@ -81,13 +72,20 @@ ifeq ($(PLATFORM), windows)
|
||||
endif
|
||||
|
||||
# The base names of all the license and document files for the jdk and jre
|
||||
# (These files get placed in the jdk and jre install images)
|
||||
ifdef OPENJDK
|
||||
# Where to find these files
|
||||
SHARE_JDK_DOC_SRC = $(JDK_TOPDIR)
|
||||
SHARE_JRE_DOC_SRC = $(JDK_TOPDIR)
|
||||
# Same files for jdk and jre, no name changes
|
||||
LICENSE_DOCLIST_JDK = LICENSE ASSEMBLY_EXCEPTION
|
||||
LICENSE_DOCLIST_JRE = LICENSE ASSEMBLY_EXCEPTION
|
||||
OTHER_DOCLIST_JDK = README.html THIRD_PARTY_README
|
||||
OTHER_DOCLIST_JRE = README.html THIRD_PARTY_README
|
||||
OTHER_DOCLIST_JDK = THIRD_PARTY_README
|
||||
OTHER_DOCLIST_JRE = THIRD_PARTY_README
|
||||
else
|
||||
# Where to find these files
|
||||
SHARE_JDK_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jdk
|
||||
SHARE_JRE_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jre
|
||||
# Select the pre-release or FCS license version based on the build milestone.
|
||||
LICENSE_VERSION=.pre
|
||||
ifeq ($(MILESTONE), fcs)
|
||||
@ -662,7 +660,7 @@ $(RES_JAR_ARGLIST): $(RES_JAR_FILELIST)
|
||||
$(RESOURCES_JAR): $(RES_JAR_ARGLIST) $(JAR_MANIFEST_FILE)
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
|
||||
@$(RES_JAR_ARGLIST) $(JAR_JFLAGS)
|
||||
@$(RES_JAR_ARGLIST) $(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
# Create jsse.jar containing SunJSSE implementation classes
|
||||
@ -671,7 +669,7 @@ $(JSSE_JAR): $(JAR_MANIFEST_FILE)
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
|
||||
$(JSSE_CLASSES_DIRS:%=-C $(CLASSBINDIR) %) \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
# Create sec-bin.zip
|
||||
@ -721,7 +719,7 @@ $(RT_JAR_ARGLIST): $(RT_JAR_FILELIST)
|
||||
$(RT_JAR): $(RT_JAR_ARGLIST) $(JAR_MANIFEST_FILE)
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
|
||||
@$(RT_JAR_ARGLIST) $(JAR_JFLAGS)
|
||||
@$(RT_JAR_ARGLIST) $(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
# Meta-index construction to make core class loaders lazier
|
||||
@ -955,7 +953,7 @@ initial-image-jdk:: initial-image-jdk-setup \
|
||||
@#
|
||||
$(BOOT_JAR_CMD) c0f $(LIBDIR)/tools.jar $(addprefix \
|
||||
-C $(CLASSBINDIR) , $(TOOLS)) \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
$(CP) $(LIBDIR)/tools.jar $(JDK_IMAGE_DIR)/lib/tools.jar
|
||||
@#
|
||||
@ -968,7 +966,7 @@ initial-image-jdk:: initial-image-jdk-setup \
|
||||
-Acom.sun.tools.javac.sym.Dest=$(OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
|
||||
$(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS)
|
||||
$(BOOT_JAR_CMD) c0f $(LIBDIR)/ct.sym \
|
||||
-C $(OUTPUTDIR)/symbols META-INF $(JAR_JFLAGS)
|
||||
-C $(OUTPUTDIR)/symbols META-INF $(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
$(CP) $(LIBDIR)/ct.sym $(JDK_IMAGE_DIR)/lib/ct.sym
|
||||
@#
|
||||
@ -1132,11 +1130,11 @@ endef
|
||||
COMPARE_FILTER = | $(EGREP) -v /fastdebug/ | $(EGREP) -v /demo/ | $(EGREP) -v /sample/
|
||||
|
||||
# If a previuous image is provided, no need to install it.
|
||||
ifdef PREVIOUS_JDK_IMAGE
|
||||
ifdef PREVIOUS_RELEASE_IMAGE
|
||||
|
||||
# Just use the pre-installed images
|
||||
PREV_JRE_IMAGE_DIR=$(PREVIOUS_JDK_IMAGE)/jre
|
||||
PREV_JDK_IMAGE_DIR=$(PREVIOUS_JDK_IMAGE)
|
||||
PREV_JRE_IMAGE_DIR=$(PREVIOUS_RELEASE_IMAGE)/jre
|
||||
PREV_JDK_IMAGE_DIR=$(PREVIOUS_RELEASE_IMAGE)
|
||||
|
||||
else
|
||||
|
||||
|
@ -185,7 +185,8 @@ endef # import-binary-plug-file
|
||||
define import-binary-plug-classes
|
||||
@$(MKDIR) -p $(CLASSDESTDIR)
|
||||
@$(CAT) $1 | $(SED) -e 's/^/PLUG IMPORT: /'
|
||||
($(CD) $(CLASSDESTDIR) && $(BOOT_JAR_CMD) xf $(PLUG_IMPORT_JARFILE) @$1)
|
||||
($(CD) $(CLASSDESTDIR) && $(BOOT_JAR_CMD) xf $(PLUG_IMPORT_JARFILE) @$1 $(BOOT_JAR_JFLAGS) )
|
||||
($(CD) $(CLASSDESTDIR) && $(java-vm-cleanup) )
|
||||
endef # import-binary-plug-classes
|
||||
|
||||
# Import specific area classes (the classes are always created)
|
||||
@ -275,7 +276,8 @@ $(PLUG_EXPORT_JARFILE): $(PLUG_TEMPDIR)/all.clist $(PLUG_TEMPDIR)/all.jargs
|
||||
@$(prep-target)
|
||||
@$(ECHO) "PLUG EXPORT: $(@F)"
|
||||
@$(CAT) $(PLUG_TEMPDIR)/all.clist | $(SED) -e 's/^/PLUG EXPORT: /'
|
||||
$(BOOT_JAR_CMD) cf $@ @$(PLUG_TEMPDIR)/all.jargs
|
||||
$(BOOT_JAR_CMD) cf $@ @$(PLUG_TEMPDIR)/all.jargs $(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
export-binary-plugs-jar: $(PLUG_EXPORT_JARFILE)
|
||||
|
||||
# Export native libraries
|
||||
|
@ -107,8 +107,9 @@ endef
|
||||
define Unjar
|
||||
( \
|
||||
$(MKDIR) -p $1; \
|
||||
$(ECHO) "( $(CD) $1 && $(BOOT_JAR_CMD) xfv $2 $3 )" ; \
|
||||
( $(CD) $1 && $(BOOT_JAR_CMD) xfv $2 $3 ) \
|
||||
$(ECHO) "( $(CD) $1 && $(BOOT_JAR_CMD) xfv $2 $3 $(BOOT_JAR_JFLAGS) )" ; \
|
||||
( $(CD) $1 && $(BOOT_JAR_CMD) xfv $2 $3 $(BOOT_JAR_JFLAGS) ) && \
|
||||
( $(CD) $1 && $(java-vm-cleanup) ) \
|
||||
)
|
||||
endef
|
||||
|
||||
|
@ -31,11 +31,8 @@ COMPILER_NAME=Sun Studio
|
||||
|
||||
# Sun Studio Compiler settings specific to Solaris
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
# FIXUP: Change to SS12 when validated
|
||||
#COMPILER_VERSION=SS12
|
||||
#REQUIRED_CC_VER=5.9
|
||||
COMPILER_VERSION=SS11
|
||||
REQUIRED_CC_VER=5.8
|
||||
COMPILER_VERSION=SS12
|
||||
REQUIRED_CC_VER=5.9
|
||||
CC = $(COMPILER_PATH)cc
|
||||
CPP = $(COMPILER_PATH)cc -E
|
||||
CXX = $(COMPILER_PATH)CC
|
||||
|
@ -190,6 +190,7 @@ ifeq ($(JAVAC_WARNINGS_FATAL), true)
|
||||
BOOT_JAVACFLAGS += -Werror
|
||||
endif
|
||||
BOOT_JAVACFLAGS += -encoding ascii
|
||||
BOOT_JAR_JFLAGS += $(JAR_JFLAGS)
|
||||
|
||||
BOOT_JAVA_CMD = $(BOOTDIR)/bin/java $(JAVA_TOOLS_FLAGS)
|
||||
BOOT_JAVAC_CMD = $(BOOTDIR)/bin/javac $(JAVAC_JVM_FLAGS) $(BOOT_JAVACFLAGS)
|
||||
|
@ -279,9 +279,6 @@ PROMOTED_BUILD_LATEST = latest
|
||||
PROMOTED_BUILD_BASEDIR = $(PROMOTED_RE_AREA)/$(PROMOTED_BUILD_LATEST)
|
||||
PROMOTED_BUILD_BINARIES = $(PROMOTED_BUILD_BASEDIR)/binaries
|
||||
|
||||
# OPT: Changes what the optimizations settings (in _OPT)
|
||||
POPT = $(_OPT$(ALT_OPT))$(ALT_OPT)
|
||||
|
||||
# PARALLEL_COMPILE_JOBS: is the number of compiles done in parallel.
|
||||
# If the user sets ALT_PARALLEL_COMPILE_JOBS, then COMPILE_APPROACH is set
|
||||
# to parallel.
|
||||
|
@ -370,7 +370,7 @@ ifeq ($(PLATFORM), windows)
|
||||
# ISHIELD_TEMP_MIN is the difference of an empty C:\TEMP vs. one after a
|
||||
# bundles build on windows.
|
||||
ISHIELD_TEMP_MIN=250000
|
||||
REQUIRED_DXSDK_VER = 0x0700
|
||||
REQUIRED_DXSDK_VER = 0x0900
|
||||
OS_VENDOR = Microsoft
|
||||
# How much RAM does this machine have:
|
||||
ifeq ($(JDK_HAS_MEM_INFO),)
|
||||
|
@ -92,7 +92,7 @@ ifeq ($(PLATFORM), windows)
|
||||
_WINDOWS_VERSION := Windows 2000 or Unknown (no systeminfo utility)
|
||||
endif
|
||||
WINDOWS_VERSION := $(strip $(_WINDOWS_VERSION))
|
||||
DXSDK_VER := $(shell $(EGREP) DIRECTDRAW_VERSION $(DXSDK_INCLUDE_PATH)/ddraw.h 2>&1 | \
|
||||
DXSDK_VER := $(shell $(EGREP) DIRECT3D_VERSION $(DXSDK_INCLUDE_PATH)/d3d9.h 2>&1 | \
|
||||
$(EGREP) "\#define" | $(NAWK) '{print $$3}')
|
||||
endif
|
||||
|
||||
@ -1258,7 +1258,7 @@ sane-unzip_version:
|
||||
######################################################
|
||||
sane-dxsdk:
|
||||
ifeq ($(PLATFORM), windows)
|
||||
@if [ ! -r $(DXSDK_INCLUDE_PATH)/ddraw.h ]; then \
|
||||
@if [ ! -r $(DXSDK_INCLUDE_PATH)/d3d9.h ]; then \
|
||||
$(ECHO) "ERROR: You do not have access to a valid DirectX SDK Include dir.\n" \
|
||||
" The value of DXSDK_INCLUDE_PATH must point a valid DX SDK dir.\n" \
|
||||
" Please check your access to \n" \
|
||||
@ -1287,7 +1287,7 @@ ifeq ($(PLATFORM), windows)
|
||||
" This may result in a build failure.\n" \
|
||||
" The DirectX SDK Include dir was obtained from the following location:\n" \
|
||||
" $(DXSDK_INCLUDE_PATH) \n" \
|
||||
" Please change your DirectX SDK to version 7 or 9 (Summer 2004 Update or newer).\n" \
|
||||
" Please change your DirectX SDK to version 9 (Summer 2004 Update or newer).\n" \
|
||||
" Microsoft DirectX 9 SDK can be downloaded from the following location:\n" \
|
||||
" http://msdn.microsoft.com/library/default.asp?url=/downloads/list/directx.asp\n" \
|
||||
" Or http://www.microsoft.com/directx\n" \
|
||||
|
@ -33,6 +33,7 @@
|
||||
BUILDDIR = ../..
|
||||
LIBRARY = fdlibm
|
||||
PRODUCT = java
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
@ -40,14 +41,23 @@ include $(BUILDDIR)/common/Defs.gmk
|
||||
#
|
||||
FDLIBM_SRC = $(SHARE_SRC)/native/java/lang/fdlibm
|
||||
|
||||
# windows compiler flags
|
||||
# Windows: compiler flags
|
||||
ifeq ($(PLATFORM),windows)
|
||||
# Turn all optimizations off
|
||||
_OPT = $(CC_NO_OPT)
|
||||
OPTIMIZATION_LEVEL = NONE
|
||||
OTHER_CFLAGS =
|
||||
CPPFLAGS_DBG += -DLOGGING
|
||||
endif
|
||||
|
||||
#
|
||||
# Linux: Disable optimization to get correctly reproducible
|
||||
# floating-point results.
|
||||
#
|
||||
ifeq ($(PLATFORM),linux)
|
||||
# Turn all optimizations off
|
||||
OPTIMIZATION_LEVEL = NONE
|
||||
endif
|
||||
|
||||
#
|
||||
# Include path.
|
||||
#
|
||||
@ -68,15 +78,6 @@ include FILES_c.gmk
|
||||
#
|
||||
include $(BUILDDIR)/common/Library.gmk
|
||||
|
||||
#
|
||||
# Disable optimization to get correctly reproducible
|
||||
# floating-point results.
|
||||
#
|
||||
ifeq ($(PLATFORM),linux)
|
||||
# Turn all optimizations off
|
||||
_OPT = $(CC_NO_OPT)
|
||||
endif
|
||||
|
||||
#
|
||||
# Find fdlibm source files.
|
||||
#
|
||||
|
@ -28,14 +28,14 @@ LIBRARY = hprof
|
||||
PRODUCT = sun
|
||||
LIBRARY_OUTPUT = hprof_jvmti
|
||||
|
||||
# Configure the CFLAGS for this library.
|
||||
# Use highest optimization
|
||||
OPTIMIZATION_LEVEL = HIGHEST
|
||||
|
||||
# Configure the CFLAGS for this library.
|
||||
FILES_m = mapfile-vers
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
_OPT=$(CC_HIGHEST_OPT)
|
||||
|
||||
SRCDIR=$(SHARE_SRC)/demo/jvmti/hprof
|
||||
PSRCDIR=$(PLATFORM_SRC)/demo/jvmti/hprof
|
||||
|
||||
|
@ -93,7 +93,8 @@ endif
|
||||
include $(BUILDDIR)/common/Library.gmk
|
||||
|
||||
$(AGENTJAR): $(LIBDIR) $(TEMPDIR)/manifest
|
||||
$(BOOT_JAR_CMD) -cfm $(AGENTJAR) $(TEMPDIR)/manifest
|
||||
$(BOOT_JAR_CMD) -cfm $(AGENTJAR) $(TEMPDIR)/manifest $(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
$(TEMPDIR)/manifest: $(MANIFEST)
|
||||
$(install-file)
|
||||
|
@ -165,8 +165,8 @@ include $(BUILDDIR)/common/Library.gmk
|
||||
# Generate source files
|
||||
#
|
||||
|
||||
SPP = spp.sh
|
||||
SPP_CMD = $(SH) $(SPP)
|
||||
SPP_JARFILE = $(BUILDTOOLJARDIR)/spp.jar
|
||||
SPP_CMD = $(BOOT_JAVA_CMD) -jar $(SPP_JARFILE)
|
||||
|
||||
FILES_genout = $(FILES_gen:%.java=$(GENSRCDIR)/%.java)
|
||||
|
||||
@ -182,7 +182,7 @@ CS_GEN=$(NIO_GEN)/charset
|
||||
SCH_GEN=$(SNIO_GEN)/ch
|
||||
SCS_GEN=$(SNIO_GEN)/cs
|
||||
|
||||
sources: $(SPP) $(FILES_genout)
|
||||
sources: $(SPP_JARFILE) $(FILES_genout)
|
||||
|
||||
#
|
||||
# Generated buffer classes
|
||||
|
@ -53,8 +53,8 @@ if [ x$what = xdecoder ]; then
|
||||
-Dcoding='decoding' \
|
||||
-DOtherCoder='Encoder' \
|
||||
-DreplTypeName='string' \
|
||||
-DdefaultRepl='"\\\\uFFFD"' \
|
||||
-DdefaultReplName='<tt>"\\\\uFFFD"<\/tt>' \
|
||||
-DdefaultRepl='"\\uFFFD"' \
|
||||
-DdefaultReplName='<tt>"\\uFFFD"<\/tt>' \
|
||||
-DreplType='String' \
|
||||
-DreplFQType='java.lang.String' \
|
||||
-DreplLength='length()' \
|
||||
@ -84,7 +84,7 @@ elif [ x$what = xencoder ]; then
|
||||
-DOtherCoder='Decoder' \
|
||||
-DreplTypeName='byte array' \
|
||||
-DdefaultRepl='new byte[] { (byte)'"'"\\?"'"' }' \
|
||||
-DdefaultReplName='<tt>{<\/tt>\\\ <tt>(byte)'"'"\\?"'"'<\/tt>\\\ <tt>}<\/tt>' \
|
||||
-DdefaultReplName='<tt>{<\/tt>\ <tt>(byte)'"'"\\?"'"'<\/tt>\ <tt>}<\/tt>' \
|
||||
-DreplType='byte[]' \
|
||||
-DreplFQType='byte[]' \
|
||||
-DreplLength='length' \
|
||||
|
@ -1,165 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
#
|
||||
# Copyright 2000-2001 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.
|
||||
#
|
||||
|
||||
# SPP: A simple/sed-based/stream preprocessor
|
||||
# Mark Reinhold / mr@sun.com
|
||||
#
|
||||
# Usage: spp [-be] [-Kkey] -Dvar=value ... <in >out
|
||||
#
|
||||
# Source-file constructs
|
||||
#
|
||||
# Meaningful only at beginning of line, works with any number of keys:
|
||||
#
|
||||
# #if[key] Includes text between #if/#end if -Kkey specified,
|
||||
# #else[key] otherwise changes text to blank lines; key test
|
||||
# #end[key] may be negated by prefixing !, e.g., #if[!key]
|
||||
#
|
||||
# #begin If -be is specified then lines up to and including
|
||||
# #end #begin, and from #end to EOF, are deleted
|
||||
#
|
||||
# #warn Changed into warning that file is generated
|
||||
#
|
||||
# // ## Changed into blank line
|
||||
#
|
||||
# Meaningful anywhere in line, works only for first two keys:
|
||||
#
|
||||
# {#if[key]?yes} Expands to yes if -Kkey specified
|
||||
# {#if[key]?yes:no} Expands to yes if -Kkey, otherwise no
|
||||
# {#if[!key]?yes} Expands to yes if -Kother
|
||||
# {#if[!key]?yes:no} Expands to yes if -Kother, otherwise no
|
||||
# $var$ Expands to value if -Dvar=value given
|
||||
#
|
||||
# yes, no must not contain whitespace
|
||||
#
|
||||
# If the environment variable SED is defined, uses that instead of sed
|
||||
# If the environment variable NAWK is defined, uses that instead of awk
|
||||
#
|
||||
|
||||
SED=${SED:-sed}
|
||||
NAWK=${NAWK:-awk}
|
||||
|
||||
# Map a string of the form -Dvar=value into an appropriate sed command
|
||||
#
|
||||
subst() {
|
||||
# The first two lines are to avoid the direct use of echo,
|
||||
# which does not treat backslashes consistently across platforms
|
||||
echo '' \
|
||||
| $SED -e "s.*$*" \
|
||||
| $SED -e 's-D\([a-zA-Z_][-a-zA-Z_]*\)=\(.*\)'"s\\\\\$\\1\\\\\$\2gg" \
|
||||
-e 's-D\([a-zA-Z_][-a-zA-Z_]*\)'"s\\\\\$\\1\\\\\$1gg" \
|
||||
-e 's/ //g'
|
||||
}
|
||||
|
||||
es=
|
||||
be=
|
||||
keys=
|
||||
key1=_1_
|
||||
key2=_2_
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-be)
|
||||
be='-e 1,/^#begin$/d -e /^#end$/,$d'
|
||||
;;
|
||||
-D*)
|
||||
es="$es -e `subst $1`"
|
||||
;;
|
||||
-K*)
|
||||
nk=`echo $1 | $SED -e 's/-K//'`
|
||||
if [ "x$keys" = x ]; then keys="$nk"; else keys="$keys $nk"; fi
|
||||
if [ "x$key1" = x_1_ ]; then key1="$nk";
|
||||
elif [ "x$key2" = x_2_ ]; then key2="$nk"; fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 [-be] [-Kkey] -Dvar=value ... <in >out"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
text='[-a-zA-Z0-9&;,.<>/#() ]'
|
||||
|
||||
$SED $es \
|
||||
-e 's// /g' \
|
||||
-e "s@^#warn .*@// -- This file was mechanically generated: Do not edit! -- //@" \
|
||||
-e 's-// ##.*$--' $be \
|
||||
-e "s/{#if\[$key1\]?\($text*\):\($text*\)}/\1/g" \
|
||||
-e "s/{#if\[!$key1\]?\($text*\):\($text*\)}/\2/g" \
|
||||
-e "s/{#if\[$key1\]?\($text*\)}/\1/g" \
|
||||
-e "s/{#if\[!$key1\]?\($text*\)}//g" \
|
||||
-e "s/{#if\[$key2\]?\($text*\):\($text*\)}/\1/g" \
|
||||
-e "s/{#if\[!$key2\]?\($text*\):\($text*\)}/\2/g" \
|
||||
-e "s/{#if\[$key2\]?\($text*\)}/\1/g" \
|
||||
-e "s/{#if\[!$key2\]?\($text*\)}//g" \
|
||||
-e "s/{#if\[[a-z]*\]?\($text*\):\($text*\)}/\2/g" \
|
||||
-e "s/{#if\[![a-z]*\]?\($text*\):\($text*\)}/\1/g" \
|
||||
-e "s/{#if\[[a-z]*\]?\($text*\)}//g" \
|
||||
-e "s/{#if\[![a-z]*\]?\($text*\)}/\1/g" \
|
||||
| $NAWK \
|
||||
'function key(s) {
|
||||
i = match(s, "[a-zA-Z][a-zA-Z]*\\]");
|
||||
if (i > 0) return substr(s, i, RLENGTH - 1);
|
||||
return "XYZZY"; }
|
||||
function neg(s) { return match(s, "!") > 0; }
|
||||
BEGIN {
|
||||
KEYS = "'"$keys"'"
|
||||
n = split(KEYS, ks, " *");
|
||||
for (i = 1; i <= n; i++) keys[ks[i]] = 1;
|
||||
top = 1; copy[top] = 1 }
|
||||
/^#if\[!?[a-zA-Z][a-zA-Z]*\]/ \
|
||||
{ k = key($0);
|
||||
n = neg($0);
|
||||
stack[++top] = k;
|
||||
if ((k in keys) == !n) {
|
||||
copy[top] = copy[top - 1];
|
||||
} else {
|
||||
copy[top] = 0;
|
||||
}
|
||||
print ""; next }
|
||||
/^#else\[!?[a-zA-Z][a-zA-Z]*\]/ \
|
||||
{ k = key($0);
|
||||
if (stack[top] == k) {
|
||||
copy[top] = copy[top - 1] && !copy[top];
|
||||
} else {
|
||||
printf "%d: Mismatched #else key\n", NR | "cat 1>&2";
|
||||
exit 11
|
||||
}
|
||||
print ""; next }
|
||||
/^#end\[!?[a-zA-Z][a-zA-Z]*\]/ \
|
||||
{ k = key($0);
|
||||
if (stack[top] == k) {
|
||||
top--;
|
||||
} else {
|
||||
printf "%d: Mismatched #end key\n", NR | "cat 1>&2"
|
||||
exit 11
|
||||
}
|
||||
print ""; next }
|
||||
/^#/ {
|
||||
printf "%d: Malformed #directive\n", NR | "cat 1>&2"
|
||||
exit 11
|
||||
}
|
||||
{ if (copy[top]) print; else print "" }'
|
@ -230,7 +230,7 @@ build-jar: $(UNSIGNED_DIR)/jce.jar
|
||||
$(UNSIGNED_DIR)/jce.jar: prebuild build $(JCE_MANIFEST_FILE)
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
$(CP) -r $(CLASSDESTDIR)/* $(CLASSBINDIR)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
@ -268,7 +268,7 @@ $(UNSIGNED_POLICY_BUILDDIR)/unlimited/US_export_policy.jar: \
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) cmf policy/unlimited/UNLIMITED $@ \
|
||||
-C policy/unlimited default_US_export.policy \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
$(UNSIGNED_POLICY_BUILDDIR)/unlimited/local_policy.jar: \
|
||||
@ -277,7 +277,7 @@ $(UNSIGNED_POLICY_BUILDDIR)/unlimited/local_policy.jar: \
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) cmf policy/unlimited/UNLIMITED $@ \
|
||||
-C policy/unlimited default_local.policy \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
#
|
||||
@ -302,7 +302,7 @@ $(UNSIGNED_POLICY_BUILDDIR)/limited/local_policy.jar: \
|
||||
$(BOOT_JAR_CMD) cmf policy/limited/LIMITED $@ \
|
||||
-C policy/limited default_local.policy \
|
||||
-C policy/limited exempt_local.policy \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
UNSIGNED_POLICY_FILES = \
|
||||
@ -402,7 +402,7 @@ endif
|
||||
$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ \
|
||||
-C $(OBFUS_DIR)/build javax \
|
||||
-C $(OBFUS_DIR)/build sun \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
$(sign-target)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
|
@ -170,7 +170,7 @@ mkpackaging:
|
||||
$(BOOT_JAR_CMD) cf $(TEMPDIR)/tmp.jar \
|
||||
-C $(BEANCLASSDIR) javax \
|
||||
-C $(BEANCLASSDIR) sun \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
$(MV) $(TEMPDIR)/tmp.jar $(JDK_IMAGE_DIR)/lib/dt.jar
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
|
@ -137,9 +137,7 @@ if [ "${osname}" = SunOS ] ; then
|
||||
if [ "${JPRT_SOLARIS_COMPILER_NAME}" != "" ] ; then
|
||||
compiler_name=${JPRT_SOLARIS_COMPILER_NAME}
|
||||
else
|
||||
# FIXUP: Change to SS12 when validated
|
||||
#compiler_name=SS12
|
||||
compiler_name=SS11
|
||||
compiler_name=SS12
|
||||
fi
|
||||
compiler_path=${jdk_devtools}/${solaris_arch}/SUNWspro/${compiler_name}/bin
|
||||
ALT_COMPILER_PATH="${compiler_path}"
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 1997-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
|
||||
@ -112,29 +112,11 @@ FILES_cpp = \
|
||||
GDIHashtable.cpp \
|
||||
Devices.cpp \
|
||||
ObjectList.cpp \
|
||||
DDBlitLoops.cpp \
|
||||
DDRenderer.cpp \
|
||||
GDIBlitLoops.cpp \
|
||||
GDIRenderer.cpp \
|
||||
Win32OffScreenSurfaceData.cpp \
|
||||
Win32SurfaceData.cpp \
|
||||
WinBackBufferSurfaceData.cpp \
|
||||
GDIWindowSurfaceData.cpp \
|
||||
WindowsFlags.cpp \
|
||||
WBufferStrategy.cpp \
|
||||
WPrinterJob.cpp \
|
||||
ddrawUtils.cpp \
|
||||
dxCapabilities.cpp \
|
||||
dxInit.cpp \
|
||||
RegistryKey.cpp \
|
||||
D3DBlitLoops.cpp \
|
||||
D3DContext.cpp \
|
||||
D3DMaskFill.cpp \
|
||||
D3DRenderer.cpp \
|
||||
D3DRuntimeTest.cpp \
|
||||
D3DSurfaceData.cpp \
|
||||
D3DTextRenderer_md.cpp \
|
||||
D3DUtils.cpp \
|
||||
ddrawObject.cpp \
|
||||
awt_AWTEvent.cpp \
|
||||
awt_BitmapUtil.cpp \
|
||||
awt_Brush.cpp \
|
||||
@ -199,6 +181,23 @@ FILES_cpp = \
|
||||
awt_Mlib.cpp \
|
||||
awt_new.cpp \
|
||||
awt_TrayIcon.cpp \
|
||||
ShaderList.cpp \
|
||||
D3DBlitLoops.cpp \
|
||||
D3DBufImgOps.cpp \
|
||||
D3DContext.cpp \
|
||||
D3DGlyphCache.cpp \
|
||||
D3DGraphicsDevice.cpp \
|
||||
D3DMaskBlit.cpp \
|
||||
D3DMaskCache.cpp \
|
||||
D3DMaskFill.cpp \
|
||||
D3DPipelineManager.cpp \
|
||||
D3DPaints.cpp \
|
||||
D3DRenderer.cpp \
|
||||
D3DRenderQueue.cpp \
|
||||
D3DResourceManager.cpp \
|
||||
D3DSurfaceData.cpp \
|
||||
D3DTextRenderer.cpp \
|
||||
D3DVertexCacher.cpp \
|
||||
ShellFolder2.cpp \
|
||||
ThemeReader.cpp \
|
||||
ComCtl32Util.cpp \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2000-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
|
||||
@ -49,6 +49,9 @@ FILES_export = \
|
||||
sun/java2d/loops/TransformHelper.java \
|
||||
sun/java2d/loops/GraphicsPrimitiveMgr.java \
|
||||
sun/java2d/loops/GraphicsPrimitive.java \
|
||||
sun/java2d/pipe/hw/AccelSurface.java \
|
||||
sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
|
||||
sun/java2d/pipe/hw/ContextCapabilities.java \
|
||||
sun/awt/image/ImagingLib.java \
|
||||
sun/java2d/SurfaceData.java \
|
||||
sun/java2d/SunGraphics2D.java \
|
||||
@ -107,6 +110,7 @@ FILES_export = \
|
||||
sun/java2d/pipe/BufferedContext.java \
|
||||
sun/java2d/pipe/BufferedMaskBlit.java \
|
||||
sun/java2d/pipe/BufferedOpCodes.java \
|
||||
sun/java2d/pipe/BufferedMaskBlit.java \
|
||||
sun/java2d/pipe/BufferedPaints.java \
|
||||
sun/java2d/pipe/BufferedRenderPipe.java \
|
||||
sun/java2d/pipe/BufferedTextPipe.java \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2000-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
|
||||
@ -125,14 +125,9 @@ FILES_export2 = \
|
||||
sun/awt/image/BufImgSurfaceData.java \
|
||||
sun/awt/image/DataBufferNative.java \
|
||||
sun/awt/shell/Win32ShellFolder2.java \
|
||||
sun/java2d/windows/DDBlitLoops.java \
|
||||
sun/java2d/windows/DDRenderer.java \
|
||||
sun/java2d/windows/DDScaleLoops.java \
|
||||
sun/java2d/windows/GDIBlitLoops.java \
|
||||
sun/java2d/windows/GDIRenderer.java \
|
||||
sun/java2d/windows/Win32OffScreenSurfaceData.java \
|
||||
sun/java2d/windows/Win32SurfaceData.java \
|
||||
sun/java2d/windows/WinBackBufferSurfaceData.java \
|
||||
sun/java2d/windows/GDIWindowSurfaceData.java \
|
||||
sun/java2d/windows/WindowsFlags.java \
|
||||
sun/java2d/loops/Blit.java \
|
||||
sun/java2d/loops/BlitBg.java \
|
||||
@ -219,6 +214,9 @@ FILES_export3 = \
|
||||
sun/awt/windows/WBufferStrategy.java \
|
||||
sun/awt/windows/WTrayIconPeer.java \
|
||||
sun/awt/image/ImagingLib.java \
|
||||
sun/java2d/pipe/hw/AccelSurface.java \
|
||||
sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
|
||||
sun/java2d/pipe/hw/ContextCapabilities.java \
|
||||
sun/java2d/pipe/BufferedContext.java \
|
||||
sun/java2d/pipe/BufferedMaskBlit.java \
|
||||
sun/java2d/pipe/BufferedOpCodes.java \
|
||||
@ -229,13 +227,6 @@ FILES_export3 = \
|
||||
sun/java2d/pipe/ShapeSpanIterator.java \
|
||||
sun/java2d/pipe/SpanClipRenderer.java \
|
||||
sun/java2d/pipe/RegionIterator.java \
|
||||
sun/java2d/d3d/D3DBlitLoops.java \
|
||||
sun/java2d/d3d/D3DMaskFill.java \
|
||||
sun/java2d/d3d/D3DRenderer.java \
|
||||
sun/java2d/d3d/D3DContext.java \
|
||||
sun/java2d/d3d/D3DSurfaceData.java \
|
||||
sun/java2d/d3d/D3DBackBufferSurfaceData.java \
|
||||
sun/java2d/d3d/D3DTextRenderer.java \
|
||||
sun/java2d/opengl/OGLBlitLoops.java \
|
||||
sun/java2d/opengl/OGLContext.java \
|
||||
sun/java2d/opengl/OGLMaskFill.java \
|
||||
@ -245,4 +236,13 @@ FILES_export3 = \
|
||||
sun/java2d/opengl/OGLSurfaceData.java \
|
||||
sun/java2d/opengl/OGLTextRenderer.java \
|
||||
sun/java2d/opengl/WGLGraphicsConfig.java \
|
||||
sun/java2d/opengl/WGLSurfaceData.java
|
||||
sun/java2d/opengl/WGLSurfaceData.java \
|
||||
sun/java2d/d3d/D3DBlitLoops.java \
|
||||
sun/java2d/d3d/D3DGraphicsDevice.java \
|
||||
sun/java2d/d3d/D3DSurfaceData.java \
|
||||
sun/java2d/d3d/D3DMaskFill.java \
|
||||
sun/java2d/d3d/D3DPaints.java \
|
||||
sun/java2d/d3d/D3DRenderQueue.java \
|
||||
sun/java2d/d3d/D3DRenderer.java \
|
||||
sun/java2d/d3d/D3DTextRenderer.java \
|
||||
sun/java2d/d3d/D3DContext.java
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 1995-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
|
||||
@ -28,17 +28,13 @@ PACKAGE = sun.awt
|
||||
LIBRARY = awt
|
||||
PRODUCT = sun
|
||||
|
||||
#
|
||||
# Tell Defs.gmk that VIS is needed
|
||||
#
|
||||
VIS_NEEDED=true
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Use highest optimization level
|
||||
#
|
||||
_OPT = $(CC_HIGHEST_OPT)
|
||||
OPTMIZATION_LEVEL = HIGHEST
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
OTHER_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES
|
||||
|
||||
@ -69,7 +65,6 @@ include FILES_export_windows.gmk
|
||||
#
|
||||
AUTO_JAVA_PRUNE += RemoteOffScreenImage.java
|
||||
|
||||
OTHER_CXXFLAGS += -DD3D_OVERLOADS
|
||||
OTHER_CFLAGS += $(GX_OPTION) -DMLIB_NO_LIBSUNMATH -DUNICODE -D_UNICODE
|
||||
OTHER_CXXFLAGS += $(GX_OPTION) -DUNICODE -D_UNICODE
|
||||
|
||||
@ -448,7 +443,7 @@ OTHER_INCLUDES += -I$(CLASSHDRDIR)/../../java/jvm \
|
||||
-I$(SHARE_SRC)/native/sun/dc/path \
|
||||
-I$(SHARE_SRC)/native/sun/dc/doe \
|
||||
-I$(SHARE_SRC)/native/sun/awt/debug \
|
||||
-I$(PLATFORM_SRC)/native/sun/awt \
|
||||
-I$(PLATFORM_SRC)/native/sun/awt
|
||||
# -I$(WINAWT_COMMON_native)
|
||||
|
||||
# this is only required for compiling )/native/sun/awt/medialib/*.c files
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2001-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
|
||||
@ -417,12 +417,14 @@ SUNWprivate_1.1 {
|
||||
Java_sun_java2d_x11_X11SurfaceData_XSetForeground;
|
||||
Java_sun_java2d_x11_X11SurfaceData_XSetGraphicsExposures;
|
||||
|
||||
Java_sun_java2d_opengl_OGLContext_getOGLIdString;
|
||||
Java_sun_java2d_opengl_OGLMaskFill_maskFill;
|
||||
Java_sun_java2d_opengl_OGLRenderer_drawPoly;
|
||||
Java_sun_java2d_opengl_OGLRenderQueue_flushBuffer;
|
||||
Java_sun_java2d_opengl_OGLSurfaceData_initTexture;
|
||||
Java_sun_java2d_opengl_OGLSurfaceData_initFBObject;
|
||||
Java_sun_java2d_opengl_OGLSurfaceData_initFlipBackbuffer;
|
||||
Java_sun_java2d_opengl_OGLSurfaceData_getTextureID;
|
||||
Java_sun_java2d_opengl_OGLSurfaceData_getTextureTarget;
|
||||
Java_sun_java2d_opengl_OGLTextRenderer_drawGlyphList;
|
||||
Java_sun_java2d_opengl_GLXGraphicsConfig_getGLXConfigInfo;
|
||||
@ -511,6 +513,7 @@ SUNWprivate_1.1 {
|
||||
AWTCharAscent;
|
||||
AWTCharDescent;
|
||||
AWTDrawGlyphList;
|
||||
AccelGlyphCache_RemoveAllCellInfos;
|
||||
|
||||
local:
|
||||
*;
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 1997-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
|
||||
@ -137,7 +137,6 @@ SUNWprivate_1.1 {
|
||||
RegionToYXBandedRectangles;
|
||||
GrPrim_CompGetXorInfo;
|
||||
GrPrim_CompGetAlphaInfo;
|
||||
GrPrim_ColorGetRGB;
|
||||
J2dTraceImpl;
|
||||
J2dTraceInit;
|
||||
img_makePalette;
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2002-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
|
||||
@ -568,6 +568,7 @@ SUNWprivate_1.1 {
|
||||
AWTCharAscent;
|
||||
AWTCharDescent;
|
||||
AWTDrawGlyphList;
|
||||
AccelGlyphCache_RemoveAllCellInfos;
|
||||
|
||||
local:
|
||||
*;
|
||||
|
@ -116,7 +116,7 @@ ifeq ($(PLATFORM),windows)
|
||||
FILES_c_platform = fontpath.c \
|
||||
lcdglyph.c
|
||||
|
||||
FILES_cpp_platform = D3DTextRenderer.cpp
|
||||
FILES_cpp_platform =
|
||||
else
|
||||
FILES_c_platform = X11FontScaler.c \
|
||||
X11TextRenderer.c
|
||||
|
@ -35,6 +35,9 @@ PRODUCT = sun
|
||||
# Indicate we want the C++ compiler to do the linking.
|
||||
CPLUSPLUSLIBRARY=true
|
||||
|
||||
# Use higher optimization level
|
||||
OPTIMIZATION_LEVEL = HIGHER
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
@ -48,11 +51,6 @@ endif
|
||||
# Files
|
||||
#
|
||||
|
||||
#
|
||||
# Use higher optimization level
|
||||
#
|
||||
_OPT = $(CC_HIGHER_OPT)
|
||||
|
||||
include FILES_c.gmk
|
||||
|
||||
AUTO_FILES_JAVA_DIRS = sun/font
|
||||
@ -82,8 +80,6 @@ ifeq ($(PLATFORM), windows)
|
||||
OTHER_CFLAGS += -DCC_NOEX
|
||||
OTHER_CXXFLAGS += -DCC_NOEX
|
||||
|
||||
FILES_export += sun/java2d/d3d/D3DTextRenderer.java
|
||||
|
||||
else # PLATFORM unix
|
||||
|
||||
FILES_export += \
|
||||
@ -168,7 +164,6 @@ endif
|
||||
|
||||
ifeq ($(PLATFORM), windows)
|
||||
vpath %.cpp $(PLATFORM_SRC)/native/sun/windows
|
||||
vpath %.cpp $(PLATFORM_SRC)/native/sun/java2d/d3d
|
||||
else # PLATFORM
|
||||
|
||||
#
|
||||
@ -203,7 +198,6 @@ CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR) \
|
||||
-I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders
|
||||
|
||||
ifeq ($(PLATFORM), windows)
|
||||
CPPFLAGS += -I$(PLATFORM_SRC)/native/sun/windows \
|
||||
-I$(PLATFORM_SRC)/native/sun/java2d/d3d
|
||||
CPPFLAGS += -I$(PLATFORM_SRC)/native/sun/windows
|
||||
endif
|
||||
|
||||
|
@ -41,12 +41,10 @@ CPLUSPLUSLIBRARY=true
|
||||
# for a few ones with native methods) so shouldn't clobber them.
|
||||
DONT_CLOBBER_CLASSES=true
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Use higher optimization level
|
||||
#
|
||||
_OPT = $(CC_HIGHER_OPT)
|
||||
OPTIMIZATION_LEVEL = HIGHER
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Files
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2001-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
|
||||
@ -60,6 +60,7 @@ SUNWprivate_1.1 {
|
||||
X11SurfaceData_GetOps;
|
||||
Java_java_awt_Font_initIDs;
|
||||
Java_sun_font_FontManager_getFontConfig;
|
||||
Java_sun_font_FontManager_getFontConfigVersion;
|
||||
Java_sun_font_FontManager_getFontConfigAASettings;
|
||||
Java_sun_font_FontManager_getFontPath;
|
||||
Java_sun_font_FontManager_setNativeFontPath;
|
||||
@ -98,6 +99,7 @@ SUNWprivate_1.1 {
|
||||
AWTCharAscent;
|
||||
AWTCharDescent;
|
||||
AWTDrawGlyphList;
|
||||
AccelGlyphCache_RemoveAllCellInfos;
|
||||
|
||||
|
||||
local:
|
||||
|
@ -31,12 +31,11 @@ BUILDDIR = ../../..
|
||||
PACKAGE = sun.awt.medialib
|
||||
LIBRARY = mlib_image
|
||||
PRODUCT = sun
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Use highest level of optimization on this library
|
||||
#
|
||||
_OPT = $(CC_HIGHEST_OPT)
|
||||
OPTIMIZATION_LEVEL = HIGHEST
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Use mapfile
|
||||
|
@ -31,17 +31,13 @@ PACKAGE = sun.awt.medialib
|
||||
LIBRARY = mlib_image_v
|
||||
PRODUCT = sun
|
||||
|
||||
#
|
||||
# Tell Defs.gmk we need VIS instructions
|
||||
#
|
||||
VIS_NEEDED=true
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Select highest level of optimization for this library
|
||||
#
|
||||
_OPT = $(CC_HIGHEST_OPT)
|
||||
OPTIMIZATION_LEVEL = HIGHEST
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Use generic mapfile
|
||||
|
@ -1 +1 @@
|
||||
$(OBJDIR)/jawt.obj:: $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_AlphaComposite.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_AWTEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Component.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Dimension.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Event.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Font.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_PlatformFont.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/ddrawObject.h ../../../src/windows/native/sun/java2d/windows/dxCapabilities.h ../../../src/windows/native/sun/java2d/windows/RegistryKey.h ../../../src/windows/native/sun/java2d/windows/Win32SurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
|
||||
$(OBJDIR)/jawt.obj:: $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_AWTEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Component.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Dimension.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Event.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Font.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_PlatformFont.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/UnicowsLoader.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/stdhdrs.h
|
||||
|
@ -82,7 +82,7 @@ $(JARFILE): $(LIBDIR) $(FILES_class) $(FILES_png) $(FILES_gif) $(TEMPDIR)/manife
|
||||
$(BOOT_JAR_CMD) -cfm $(JARFILE) $(TEMPDIR)/manifest \
|
||||
-C $(CLASSBINDIR) sun/tools/jconsole \
|
||||
-C $(CLASSBINDIR) com/sun/tools/jconsole \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
clean clobber::
|
||||
|
@ -27,12 +27,11 @@ BUILDDIR = ../..
|
||||
PACKAGE = sun.awt
|
||||
LIBRARY = jpeg
|
||||
PRODUCT = sun
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Use highest optimization level
|
||||
#
|
||||
_OPT = $(CC_HIGHEST_OPT)
|
||||
OPTIMIZATION_LEVEL = HIGHEST
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Files
|
||||
|
@ -67,7 +67,7 @@ $(JARFILE): $(CLASSDESTDIR)/META-INF/services/$(SERVICE_DESCRIPTION) \
|
||||
$(BOOT_JAR_CMD) -cf $(JARFILE) \
|
||||
-C $(CLASSDESTDIR) sun \
|
||||
-C $(CLASSDESTDIR) META-INF \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
include $(BUILDDIR)/common/Classes.gmk
|
||||
|
@ -91,7 +91,7 @@ $(CHARSETS_JAR): $(FILES_class) $(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH) $(FI
|
||||
$(BOOT_JAR_CMD) cf $(CHARSETS_JAR) \
|
||||
-C $(CLASSDESTDIR) sun \
|
||||
-C $(CLASSDESTDIR) $(SERVICE_DESCRIPTION_PATH) \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
clean::
|
||||
|
@ -210,7 +210,7 @@ build-jar: $(UNSIGNED_DIR)/sunmscapi.jar
|
||||
$(UNSIGNED_DIR)/sunmscapi.jar: build
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
|
||||
|
@ -210,7 +210,7 @@ build-jar: $(UNSIGNED_DIR)/sunpkcs11.jar
|
||||
$(UNSIGNED_DIR)/sunpkcs11.jar: build
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
|
||||
|
@ -112,7 +112,7 @@ $(CLASSDESTDIR)/sun/text/resources/% : $(TEXT_SRCDIR)/%
|
||||
$(LOCALEDATA_JAR): $(EXTDIR) $(FILES_class) $(BIFILES) $(SPECIALFILES)
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) -cf $@ -C $(CLASSDESTDIR) sun \
|
||||
$(JAR_JFLAGS)
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
build: $(LOCALEDATA_JAR)
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2002-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
|
||||
@ -177,6 +177,7 @@ SUNWprivate_1.1 {
|
||||
Java_java_awt_TextField_initIDs;
|
||||
Java_java_awt_TrayIcon_initIDs;
|
||||
Java_sun_font_FontManager_getFontConfig;
|
||||
Java_sun_font_FontManager_getFontConfigVersion;
|
||||
Java_sun_font_FontManager_getFontConfigAASettings;
|
||||
Java_sun_font_FontManager_getFontPath;
|
||||
Java_sun_font_FontManager_setNativeFontPath;
|
||||
@ -241,6 +242,7 @@ SUNWprivate_1.1 {
|
||||
AWTCharAscent;
|
||||
AWTCharDescent;
|
||||
AWTDrawGlyphList;
|
||||
AccelGlyphCache_RemoveAllCellInfos;
|
||||
|
||||
Java_sun_awt_X11_XToolkit_waitForEvents;
|
||||
Java_java_awt_Event_initIDs;
|
||||
|
@ -51,6 +51,7 @@ SUBDIRS = \
|
||||
jdwpgen \
|
||||
makeclasslist \
|
||||
strip_properties \
|
||||
spp \
|
||||
CharsetMapping
|
||||
|
||||
all build clean clobber::
|
||||
|
45
jdk/make/tools/spp/Makefile
Normal file
45
jdk/make/tools/spp/Makefile
Normal file
@ -0,0 +1,45 @@
|
||||
#
|
||||
# Copyright 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.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for build spp tool
|
||||
#
|
||||
|
||||
BUILDDIR = ../..
|
||||
PACKAGE = build.tools.spp
|
||||
PRODUCT = tools
|
||||
PROGRAM = spp
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
|
||||
BUILDTOOL_SOURCE_ROOT = $(BUILDDIR)/tools/src
|
||||
BUILDTOOL_MAIN = $(PKGDIR)/Spp.java
|
||||
|
||||
#
|
||||
# Build tool jar rules.
|
||||
#
|
||||
include $(BUILDDIR)/common/BuildToolJar.gmk
|
||||
|
||||
|
189
jdk/make/tools/src/build/tools/spp/Spp.java
Normal file
189
jdk/make/tools/src/build/tools/spp/Spp.java
Normal file
@ -0,0 +1,189 @@
|
||||
/*
|
||||
* Copyright 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.
|
||||
*/
|
||||
|
||||
package build.tools.spp;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.regex.*;
|
||||
|
||||
/*
|
||||
* Spp: A simple regex-based stream preprocessor based on Mark Reinhold's
|
||||
* sed-based spp.sh
|
||||
*
|
||||
* Usage: java build.tools.spp.Spp [-be] [-Kkey] -Dvar=value ... <in >out
|
||||
*
|
||||
* Source-file constructs
|
||||
*
|
||||
* Meaningful only at beginning of line, works with any number of keys:
|
||||
*
|
||||
* #if[key] Includes text between #if/#end if -Kkey specified,
|
||||
* #else[key] otherwise changes text to blank lines; key test
|
||||
* #end[key] may be negated by prefixing !, e.g., #if[!key]
|
||||
*
|
||||
* #begin If -be is specified then lines up to and including
|
||||
* #end #begin, and from #end to EOF, are deleted
|
||||
*
|
||||
* #warn Changed into warning that file is generated
|
||||
*
|
||||
* // ## Changed into blank line
|
||||
*
|
||||
* Meaningful anywhere in line
|
||||
*
|
||||
* {#if[key]?yes} Expands to yes if -Kkey specified
|
||||
* {#if[key]?yes:no} Expands to yes if -Kkey, otherwise no
|
||||
* {#if[!key]?yes} Expands to yes if -Kother
|
||||
* {#if[!key]?yes:no} Expands to yes if -Kother, otherwise no
|
||||
* $var$ Expands to value if -Dvar=value given
|
||||
*
|
||||
* yes, no must not contain whitespace
|
||||
*
|
||||
* @author Xueming Shen
|
||||
*/
|
||||
|
||||
public class Spp {
|
||||
public static void main(String args[]) throws Exception {
|
||||
Map<String, String> vars = new HashMap<String, String>();
|
||||
Set<String> keys = new HashSet<String>();
|
||||
boolean be = false;
|
||||
|
||||
for (String arg:args) {
|
||||
if (arg.startsWith("-D")) {
|
||||
int i = arg.indexOf('=');
|
||||
vars.put(arg.substring(2, i),arg.substring(i+1));
|
||||
} else if (arg.startsWith("-K")) {
|
||||
keys.add(arg.substring(2));
|
||||
} else if ("-be".equals(arg)) {
|
||||
be = true;
|
||||
} else {
|
||||
System.err.println("Usage: java build.tools.spp.Spp [-be] [-Kkey] -Dvar=value ... <in >out");
|
||||
System.exit(-1);
|
||||
}
|
||||
}
|
||||
|
||||
StringBuffer out = new StringBuffer();
|
||||
new Spp().spp(new Scanner(System.in),
|
||||
out, "",
|
||||
keys, vars, be,
|
||||
false);
|
||||
System.out.print(out.toString());
|
||||
}
|
||||
|
||||
static final String LNSEP = System.getProperty("line.separator");
|
||||
static final String KEY = "([a-zA-Z0-9]+)";
|
||||
static final String VAR = "([a-zA-Z0-9_\\-]+)";
|
||||
static final String TEXT = "([a-zA-Z0-9&;,.<>/#() \\$]+)"; // $ -- hack embedded $var$
|
||||
|
||||
static final int GN_NOT = 1;
|
||||
static final int GN_KEY = 2;
|
||||
static final int GN_YES = 3;
|
||||
static final int GN_NO = 5;
|
||||
static final int GN_VAR = 6;
|
||||
|
||||
Matcher ifkey = Pattern.compile("^#if\\[(!)?" + KEY + "\\]").matcher("");
|
||||
Matcher elsekey = Pattern.compile("^#else\\[(!)?" + KEY + "\\]").matcher("");
|
||||
Matcher endkey = Pattern.compile("^#end\\[(!)?" + KEY + "\\]").matcher("");
|
||||
Matcher vardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$").matcher("");
|
||||
Matcher vardef2 = Pattern.compile("\\$" + VAR + "\\$").matcher("");
|
||||
|
||||
void append(StringBuffer buf, String ln,
|
||||
Set<String> keys, Map<String, String> vars) {
|
||||
vardef.reset(ln);
|
||||
while (vardef.find()) {
|
||||
String repl = "";
|
||||
if (vardef.group(GN_VAR) != null)
|
||||
repl = vars.get(vardef.group(GN_VAR));
|
||||
else {
|
||||
boolean test = keys.contains(vardef.group(GN_KEY));
|
||||
if (vardef.group(GN_NOT) != null)
|
||||
test = !test;
|
||||
repl = test?vardef.group(GN_YES):vardef.group(GN_NO);
|
||||
if (repl == null)
|
||||
repl = "";
|
||||
else { // embedded $var$
|
||||
while (vardef2.reset(repl).find()) {
|
||||
repl = vardef2.replaceFirst(vars.get(vardef2.group(1)));
|
||||
}
|
||||
}
|
||||
}
|
||||
vardef.appendReplacement(buf, repl);
|
||||
}
|
||||
vardef.appendTail(buf);
|
||||
}
|
||||
|
||||
// return true if #end[key], #end or EOF reached
|
||||
boolean spp(Scanner in, StringBuffer buf, String key,
|
||||
Set<String> keys, Map<String, String> vars,
|
||||
boolean be, boolean skip) {
|
||||
while (in.hasNextLine()) {
|
||||
String ln = in.nextLine();
|
||||
if (be) {
|
||||
if (ln.startsWith("#begin")) {
|
||||
buf.setLength(0); //clean up to this line
|
||||
continue;
|
||||
}
|
||||
if (ln.equals("#end")) {
|
||||
while (in.hasNextLine())
|
||||
in.nextLine();
|
||||
return true; //discard the rest to EOF
|
||||
}
|
||||
}
|
||||
if (ifkey.reset(ln).find()) {
|
||||
String k = ifkey.group(GN_KEY);
|
||||
boolean test = keys.contains(k);
|
||||
if (ifkey.group(GN_NOT) != null)
|
||||
test = !test;
|
||||
buf.append(LNSEP);
|
||||
if (!spp(in, buf, k, keys, vars, be, skip || !test)) {
|
||||
spp(in, buf, k, keys, vars, be, skip || test);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (elsekey.reset(ln).find()) {
|
||||
if (!key.equals(elsekey.group(GN_KEY))) {
|
||||
throw new Error("Mis-matched #if-else-end at line <" + ln + ">");
|
||||
}
|
||||
buf.append(LNSEP);
|
||||
return false;
|
||||
}
|
||||
if (endkey.reset(ln).find()) {
|
||||
if (!key.equals(endkey.group(GN_KEY))) {
|
||||
throw new Error("Mis-matched #if-else-end at line <" + ln + ">");
|
||||
}
|
||||
buf.append(LNSEP);
|
||||
return true;
|
||||
}
|
||||
if (ln.startsWith("#warn")) {
|
||||
ln = "// -- This file was mechanically generated: Do not edit! -- //";
|
||||
} else if (ln.trim().startsWith("// ##")) {
|
||||
ln = "";
|
||||
}
|
||||
if (!skip) {
|
||||
append(buf, ln, keys, vars);
|
||||
}
|
||||
buf.append(LNSEP);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
@ -540,7 +540,6 @@ ownedMonitorsWithStackDepth(PacketInputStream *in, PacketOutputStream *out)
|
||||
|
||||
jvmtiError error = JVMTI_ERROR_NONE;
|
||||
jint count = 0;
|
||||
jint depth;
|
||||
jvmtiMonitorStackDepthInfo *monitors=NULL;
|
||||
|
||||
error = JVMTI_FUNC_PTR(gdata->jvmti,GetOwnedMonitorStackDepthInfo)
|
||||
|
@ -473,7 +473,7 @@ transport_startTransport(jboolean isServer, char *name, char *address,
|
||||
/*
|
||||
* Record listener address in a system property
|
||||
*/
|
||||
len = strlen(name) + strlen(retAddress) + 2; /* ':' and '\0' */
|
||||
len = (int)strlen(name) + (int)strlen(retAddress) + 2; /* ':' and '\0' */
|
||||
prop_value = (char*)jvmtiAllocate(len);
|
||||
strcpy(prop_value, name);
|
||||
strcat(prop_value, ":");
|
||||
|
@ -26,6 +26,7 @@
|
||||
package com.sun.jmx.mbeanserver;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
@ -113,4 +114,32 @@ public class Util {
|
||||
public static <T> T cast(Object x) {
|
||||
return (T) x;
|
||||
}
|
||||
|
||||
/**
|
||||
* Computes a descriptor hashcode from its names and values.
|
||||
* @param names the sorted array of descriptor names.
|
||||
* @param values the array of descriptor values.
|
||||
* @return a hash code value, as described in {@link #hashCode(Descriptor)}
|
||||
*/
|
||||
public static int hashCode(String[] names, Object[] values) {
|
||||
int hash = 0;
|
||||
for (int i = 0; i < names.length; i++) {
|
||||
Object v = values[i];
|
||||
int h;
|
||||
if (v == null) {
|
||||
h = 0;
|
||||
} else if (v instanceof Object[]) {
|
||||
h = Arrays.deepHashCode((Object[]) v);
|
||||
} else if (v.getClass().isArray()) {
|
||||
h = Arrays.deepHashCode(new Object[]{v}) - 31;
|
||||
// hashcode of a list containing just v is
|
||||
// v.hashCode() + 31, see List.hashCode()
|
||||
} else {
|
||||
h = v.hashCode();
|
||||
}
|
||||
hash += names[i].toLowerCase().hashCode() ^ h;
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -74,7 +74,11 @@ import sun.awt.dnd.SunDropTargetEvent;
|
||||
import sun.awt.im.CompositionArea;
|
||||
import sun.java2d.SunGraphics2D;
|
||||
import sun.java2d.pipe.Region;
|
||||
import sun.awt.image.VSyncedBSManager;
|
||||
import sun.java2d.pipe.hw.ExtendedBufferCapabilities;
|
||||
import static sun.java2d.pipe.hw.ExtendedBufferCapabilities.VSyncType.*;
|
||||
import sun.awt.RequestFocusController;
|
||||
import sun.java2d.SunGraphicsEnvironment;
|
||||
|
||||
/**
|
||||
* A <em>component</em> is an object having a graphical representation
|
||||
@ -3522,6 +3526,11 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
if (numBuffers == 1) {
|
||||
bufferStrategy = new SingleBufferStrategy(caps);
|
||||
} else {
|
||||
SunGraphicsEnvironment sge = (SunGraphicsEnvironment)
|
||||
GraphicsEnvironment.getLocalGraphicsEnvironment();
|
||||
if (!caps.isPageFlipping() && sge.isFlipStrategyPreferred(peer)) {
|
||||
caps = new ProxyCapabilities(caps);
|
||||
}
|
||||
// assert numBuffers > 1;
|
||||
if (caps.isPageFlipping()) {
|
||||
bufferStrategy = new FlipSubRegionBufferStrategy(numBuffers, caps);
|
||||
@ -3531,6 +3540,25 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a proxy capabilities class used when a FlipBufferStrategy
|
||||
* is created instead of the requested Blit strategy.
|
||||
*
|
||||
* @see sun.awt.SunGraphicsEnvironment#isFlipStrategyPreferred(ComponentPeer)
|
||||
*/
|
||||
private class ProxyCapabilities extends ExtendedBufferCapabilities {
|
||||
private BufferCapabilities orig;
|
||||
private ProxyCapabilities(BufferCapabilities orig) {
|
||||
super(orig.getFrontBufferCapabilities(),
|
||||
orig.getBackBufferCapabilities(),
|
||||
orig.getFlipContents() ==
|
||||
BufferCapabilities.FlipContents.BACKGROUND ?
|
||||
BufferCapabilities.FlipContents.BACKGROUND :
|
||||
BufferCapabilities.FlipContents.COPIED);
|
||||
this.orig = orig;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the buffer strategy used by this component
|
||||
* @see Window#createBufferStrategy
|
||||
@ -3660,16 +3688,30 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
width = getWidth();
|
||||
height = getHeight();
|
||||
|
||||
if (drawBuffer == null) {
|
||||
peer.createBuffers(numBuffers, caps);
|
||||
} else {
|
||||
if (drawBuffer != null) {
|
||||
// dispose the existing backbuffers
|
||||
drawBuffer = null;
|
||||
drawVBuffer = null;
|
||||
destroyBuffers();
|
||||
// ... then recreate the backbuffers
|
||||
peer.createBuffers(numBuffers, caps);
|
||||
}
|
||||
|
||||
if (caps instanceof ExtendedBufferCapabilities) {
|
||||
ExtendedBufferCapabilities ebc =
|
||||
(ExtendedBufferCapabilities)caps;
|
||||
if (ebc.getVSync() == VSYNC_ON) {
|
||||
// if this buffer strategy is not allowed to be v-synced,
|
||||
// change the caps that we pass to the peer but keep on
|
||||
// trying to create v-synced buffers;
|
||||
// do not throw IAE here in case it is disallowed, see
|
||||
// ExtendedBufferCapabilities for more info
|
||||
if (!VSyncedBSManager.vsyncAllowed(this)) {
|
||||
caps = ebc.derive(VSYNC_DEFAULT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
peer.createBuffers(numBuffers, caps);
|
||||
updateInternalBuffers();
|
||||
}
|
||||
|
||||
@ -3714,7 +3756,23 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
*/
|
||||
protected void flip(BufferCapabilities.FlipContents flipAction) {
|
||||
if (peer != null) {
|
||||
peer.flip(flipAction);
|
||||
Image backBuffer = getBackBuffer();
|
||||
if (backBuffer != null) {
|
||||
peer.flip(0, 0,
|
||||
backBuffer.getWidth(null),
|
||||
backBuffer.getHeight(null), flipAction);
|
||||
}
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Component must have a valid peer");
|
||||
}
|
||||
}
|
||||
|
||||
void flipSubRegion(int x1, int y1, int x2, int y2,
|
||||
BufferCapabilities.FlipContents flipAction)
|
||||
{
|
||||
if (peer != null) {
|
||||
peer.flip(x1, y1, x2, y2, flipAction);
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Component must have a valid peer");
|
||||
@ -3725,6 +3783,7 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
* Destroys the buffers created through this object
|
||||
*/
|
||||
protected void destroyBuffers() {
|
||||
VSyncedBSManager.releaseVsync(this);
|
||||
if (peer != null) {
|
||||
peer.destroyBuffers();
|
||||
} else {
|
||||
@ -3737,7 +3796,11 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
* @return the buffering capabilities of this strategy
|
||||
*/
|
||||
public BufferCapabilities getCapabilities() {
|
||||
return caps;
|
||||
if (caps instanceof ProxyCapabilities) {
|
||||
return ((ProxyCapabilities)caps).orig;
|
||||
} else {
|
||||
return caps;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -3824,6 +3887,14 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
flip(caps.getFlipContents());
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes specified region of the the next available buffer visible
|
||||
* by either blitting or flipping.
|
||||
*/
|
||||
void showSubRegion(int x1, int y1, int x2, int y2) {
|
||||
flipSubRegion(x1, y1, x2, y2, caps.getFlipContents());
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* @since 1.6
|
||||
@ -4094,8 +4165,6 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
|
||||
/**
|
||||
* Private class to perform sub-region flipping.
|
||||
* REMIND: this subclass currently punts on subregions and
|
||||
* flips the entire buffer.
|
||||
*/
|
||||
private class FlipSubRegionBufferStrategy extends FlipBufferStrategy
|
||||
implements SubRegionShowable
|
||||
@ -4109,14 +4178,13 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
}
|
||||
|
||||
public void show(int x1, int y1, int x2, int y2) {
|
||||
show();
|
||||
showSubRegion(x1, y1, x2, y2);
|
||||
}
|
||||
|
||||
// This is invoked by Swing on the toolkit thread.
|
||||
public boolean validateAndShow(int x1, int y1, int x2, int y2) {
|
||||
revalidate(false);
|
||||
if (!contentsRestored() && !contentsLost()) {
|
||||
show();
|
||||
public boolean showIfNotLost(int x1, int y1, int x2, int y2) {
|
||||
if (!contentsLost()) {
|
||||
showSubRegion(x1, y1, x2, y2);
|
||||
return !contentsLost();
|
||||
}
|
||||
return false;
|
||||
@ -4144,9 +4212,8 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
}
|
||||
|
||||
// This method is called by Swing on the toolkit thread.
|
||||
public boolean validateAndShow(int x1, int y1, int x2, int y2) {
|
||||
revalidate(false);
|
||||
if (!contentsRestored() && !contentsLost()) {
|
||||
public boolean showIfNotLost(int x1, int y1, int x2, int y2) {
|
||||
if (!contentsLost()) {
|
||||
showSubRegion(x1, y1, x2, y2);
|
||||
return !contentsLost();
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 1997-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
|
||||
@ -236,6 +236,10 @@ public abstract class GraphicsDevice {
|
||||
*/
|
||||
public void setFullScreenWindow(Window w) {
|
||||
if (fullScreenWindow != null && windowedModeBounds != null) {
|
||||
// if the window went into fs mode before it was realized it may
|
||||
// have (0,0) dimensions
|
||||
if (windowedModeBounds.width == 0) windowedModeBounds.width = 1;
|
||||
if (windowedModeBounds.height == 0) windowedModeBounds.height = 1;
|
||||
fullScreenWindow.setBounds(windowedModeBounds);
|
||||
}
|
||||
// Set the full screen window
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 1999-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
|
||||
@ -25,12 +25,18 @@
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.peer.*;
|
||||
import java.awt.image.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.DataBufferInt;
|
||||
import java.awt.image.DirectColorModel;
|
||||
import java.awt.image.Raster;
|
||||
import java.awt.image.WritableRaster;
|
||||
import java.awt.peer.RobotPeer;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import sun.awt.ComponentFactory;
|
||||
import sun.awt.SunToolkit;
|
||||
import sun.awt.image.SunWritableRaster;
|
||||
import sun.security.util.SecurityConstants;
|
||||
|
||||
/**
|
||||
@ -335,6 +341,10 @@ public class Robot {
|
||||
/* blue mask */ 0x000000FF);
|
||||
}
|
||||
|
||||
// need to sync the toolkit prior to grabbing the pixels since in some
|
||||
// cases rendering to the screen may be delayed
|
||||
Toolkit.getDefaultToolkit().sync();
|
||||
|
||||
int pixels[];
|
||||
int[] bandmasks = new int[3];
|
||||
|
||||
@ -346,6 +356,7 @@ public class Robot {
|
||||
bandmasks[2] = screenCapCM.getBlueMask();
|
||||
|
||||
raster = Raster.createPackedRaster(buffer, translatedRect.width, translatedRect.height, translatedRect.width, bandmasks, null);
|
||||
SunWritableRaster.makeTrackable(buffer);
|
||||
|
||||
image = new BufferedImage(screenCapCM, raster, false, null);
|
||||
|
||||
|
@ -530,6 +530,12 @@ public abstract class DataBuffer {
|
||||
public StateTrackableDelegate getTrackable(DataBuffer db) {
|
||||
return db.theTrackable;
|
||||
}
|
||||
|
||||
public void setTrackable(DataBuffer db,
|
||||
StateTrackableDelegate trackable)
|
||||
{
|
||||
db.theTrackable = trackable;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 1995-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
|
||||
@ -88,7 +88,7 @@ public interface ComponentPeer {
|
||||
boolean handlesWheelScrolling();
|
||||
void createBuffers(int numBuffers, BufferCapabilities caps) throws AWTException;
|
||||
Image getBackBuffer();
|
||||
void flip(BufferCapabilities.FlipContents flipAction);
|
||||
void flip(int x1, int y1, int x2, int y2, BufferCapabilities.FlipContents flipAction);
|
||||
void destroyBuffers();
|
||||
|
||||
/**
|
||||
|
@ -25,12 +25,9 @@
|
||||
|
||||
package java.net;
|
||||
|
||||
import java.security.AccessController;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectStreamException;
|
||||
import java.io.InvalidObjectException;
|
||||
import sun.security.action.*;
|
||||
import java.util.Enumeration;
|
||||
|
||||
/**
|
||||
@ -358,13 +355,13 @@ class Inet6Address extends InetAddress {
|
||||
}
|
||||
|
||||
private int deriveNumericScope (NetworkInterface ifc) throws UnknownHostException {
|
||||
Enumeration addresses = ifc.getInetAddresses();
|
||||
Enumeration<InetAddress> addresses = ifc.getInetAddresses();
|
||||
while (addresses.hasMoreElements()) {
|
||||
InetAddress address = (InetAddress)addresses.nextElement();
|
||||
if (!(address instanceof Inet6Address)) {
|
||||
InetAddress addr = addresses.nextElement();
|
||||
if (!(addr instanceof Inet6Address)) {
|
||||
continue;
|
||||
}
|
||||
Inet6Address ia6_addr = (Inet6Address)address;
|
||||
Inet6Address ia6_addr = (Inet6Address)addr;
|
||||
/* check if site or link local prefixes match */
|
||||
if (!differentLocalAddressTypes(ia6_addr)){
|
||||
/* type not the same, so carry on searching */
|
||||
@ -377,22 +374,22 @@ class Inet6Address extends InetAddress {
|
||||
}
|
||||
|
||||
private int deriveNumericScope (String ifname) throws UnknownHostException {
|
||||
Enumeration en;
|
||||
Enumeration<NetworkInterface> en;
|
||||
try {
|
||||
en = NetworkInterface.getNetworkInterfaces();
|
||||
} catch (SocketException e) {
|
||||
throw new UnknownHostException ("could not enumerate local network interfaces");
|
||||
}
|
||||
while (en.hasMoreElements()) {
|
||||
NetworkInterface ifc = (NetworkInterface)en.nextElement();
|
||||
NetworkInterface ifc = en.nextElement();
|
||||
if (ifc.getName().equals (ifname)) {
|
||||
Enumeration addresses = ifc.getInetAddresses();
|
||||
while (addresses.hasMoreElements()) {
|
||||
InetAddress address = (InetAddress)addresses.nextElement();
|
||||
if (!(address instanceof Inet6Address)) {
|
||||
InetAddress addr = (InetAddress)addresses.nextElement();
|
||||
if (!(addr instanceof Inet6Address)) {
|
||||
continue;
|
||||
}
|
||||
Inet6Address ia6_addr = (Inet6Address)address;
|
||||
Inet6Address ia6_addr = (Inet6Address)addr;
|
||||
/* check if site or link local prefixes match */
|
||||
if (!differentLocalAddressTypes(ia6_addr)){
|
||||
/* type not the same, so carry on searching */
|
||||
@ -420,21 +417,22 @@ class Inet6Address extends InetAddress {
|
||||
if (ifname != null && !"".equals (ifname)) {
|
||||
try {
|
||||
scope_ifname = NetworkInterface.getByName(ifname);
|
||||
try {
|
||||
scope_id = deriveNumericScope (scope_ifname);
|
||||
} catch (UnknownHostException e) {
|
||||
// should not happen
|
||||
assert false;
|
||||
if (scope_ifname == null) {
|
||||
/* the interface does not exist on this system, so we clear
|
||||
* the scope information completely */
|
||||
scope_id_set = false;
|
||||
scope_ifname_set = false;
|
||||
scope_id = 0;
|
||||
} else {
|
||||
try {
|
||||
scope_id = deriveNumericScope (scope_ifname);
|
||||
} catch (UnknownHostException e) {
|
||||
// should not happen
|
||||
assert false;
|
||||
}
|
||||
}
|
||||
} catch (SocketException e) {}
|
||||
|
||||
if (scope_ifname == null) {
|
||||
/* the interface does not exist on this system, so we clear
|
||||
* the scope information completely */
|
||||
scope_id_set = false;
|
||||
scope_ifname_set = false;
|
||||
scope_id = 0;
|
||||
}
|
||||
}
|
||||
/* if ifname was not supplied, then the numeric info is used */
|
||||
|
||||
@ -460,6 +458,7 @@ class Inet6Address extends InetAddress {
|
||||
* an IP multicast address
|
||||
* @since JDK1.1
|
||||
*/
|
||||
@Override
|
||||
public boolean isMulticastAddress() {
|
||||
return ((ipaddress[0] & 0xff) == 0xff);
|
||||
}
|
||||
@ -470,6 +469,7 @@ class Inet6Address extends InetAddress {
|
||||
* a wildcard address.
|
||||
* @since 1.4
|
||||
*/
|
||||
@Override
|
||||
public boolean isAnyLocalAddress() {
|
||||
byte test = 0x00;
|
||||
for (int i = 0; i < INADDRSZ; i++) {
|
||||
@ -485,6 +485,7 @@ class Inet6Address extends InetAddress {
|
||||
* a loopback address; or false otherwise.
|
||||
* @since 1.4
|
||||
*/
|
||||
@Override
|
||||
public boolean isLoopbackAddress() {
|
||||
byte test = 0x00;
|
||||
for (int i = 0; i < 15; i++) {
|
||||
@ -500,6 +501,7 @@ class Inet6Address extends InetAddress {
|
||||
* a link local address; or false if address is not a link local unicast address.
|
||||
* @since 1.4
|
||||
*/
|
||||
@Override
|
||||
public boolean isLinkLocalAddress() {
|
||||
return ((ipaddress[0] & 0xff) == 0xfe
|
||||
&& (ipaddress[1] & 0xc0) == 0x80);
|
||||
@ -512,6 +514,7 @@ class Inet6Address extends InetAddress {
|
||||
* a site local address; or false if address is not a site local unicast address.
|
||||
* @since 1.4
|
||||
*/
|
||||
@Override
|
||||
public boolean isSiteLocalAddress() {
|
||||
return ((ipaddress[0] & 0xff) == 0xfe
|
||||
&& (ipaddress[1] & 0xc0) == 0xc0);
|
||||
@ -525,6 +528,7 @@ class Inet6Address extends InetAddress {
|
||||
* of global scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
*/
|
||||
@Override
|
||||
public boolean isMCGlobal() {
|
||||
return ((ipaddress[0] & 0xff) == 0xff
|
||||
&& (ipaddress[1] & 0x0f) == 0x0e);
|
||||
@ -538,6 +542,7 @@ class Inet6Address extends InetAddress {
|
||||
* of node-local scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
*/
|
||||
@Override
|
||||
public boolean isMCNodeLocal() {
|
||||
return ((ipaddress[0] & 0xff) == 0xff
|
||||
&& (ipaddress[1] & 0x0f) == 0x01);
|
||||
@ -551,6 +556,7 @@ class Inet6Address extends InetAddress {
|
||||
* of link-local scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
*/
|
||||
@Override
|
||||
public boolean isMCLinkLocal() {
|
||||
return ((ipaddress[0] & 0xff) == 0xff
|
||||
&& (ipaddress[1] & 0x0f) == 0x02);
|
||||
@ -564,6 +570,7 @@ class Inet6Address extends InetAddress {
|
||||
* of site-local scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
*/
|
||||
@Override
|
||||
public boolean isMCSiteLocal() {
|
||||
return ((ipaddress[0] & 0xff) == 0xff
|
||||
&& (ipaddress[1] & 0x0f) == 0x05);
|
||||
@ -578,6 +585,7 @@ class Inet6Address extends InetAddress {
|
||||
* or it is not a multicast address
|
||||
* @since 1.4
|
||||
*/
|
||||
@Override
|
||||
public boolean isMCOrgLocal() {
|
||||
return ((ipaddress[0] & 0xff) == 0xff
|
||||
&& (ipaddress[1] & 0x0f) == 0x08);
|
||||
@ -590,6 +598,7 @@ class Inet6Address extends InetAddress {
|
||||
*
|
||||
* @return the raw IP address of this object.
|
||||
*/
|
||||
@Override
|
||||
public byte[] getAddress() {
|
||||
return ipaddress.clone();
|
||||
}
|
||||
@ -624,6 +633,7 @@ class Inet6Address extends InetAddress {
|
||||
*
|
||||
* @return the raw IP address in a string format.
|
||||
*/
|
||||
@Override
|
||||
public String getHostAddress() {
|
||||
String s = numericToTextFormat(ipaddress);
|
||||
if (scope_ifname_set) { /* must check this first */
|
||||
@ -639,6 +649,7 @@ class Inet6Address extends InetAddress {
|
||||
*
|
||||
* @return a hash code value for this IP address.
|
||||
*/
|
||||
@Override
|
||||
public int hashCode() {
|
||||
if (ipaddress != null) {
|
||||
|
||||
@ -677,6 +688,7 @@ class Inet6Address extends InetAddress {
|
||||
* <code>false</code> otherwise.
|
||||
* @see java.net.InetAddress#getAddress()
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == null ||
|
||||
!(obj instanceof Inet6Address))
|
||||
|
@ -82,7 +82,7 @@ public abstract class AbstractSelector
|
||||
this.provider = provider;
|
||||
}
|
||||
|
||||
private final Set cancelledKeys = new HashSet();
|
||||
private final Set<SelectionKey> cancelledKeys = new HashSet<SelectionKey>();
|
||||
|
||||
void cancel(SelectionKey k) { // package-private
|
||||
synchronized (cancelledKeys) {
|
||||
|
@ -303,7 +303,7 @@ public abstract class Charset$Coder$ {
|
||||
|
||||
#if[encoder]
|
||||
|
||||
private WeakReference cachedDecoder = null;
|
||||
private WeakReference<CharsetDecoder> cachedDecoder = null;
|
||||
|
||||
/**
|
||||
* Tells whether or not the given byte array is a legal replacement value
|
||||
@ -322,13 +322,13 @@ public abstract class Charset$Coder$ {
|
||||
* is a legal replacement value for this encoder
|
||||
*/
|
||||
public boolean isLegalReplacement(byte[] repl) {
|
||||
WeakReference wr = cachedDecoder;
|
||||
WeakReference<CharsetDecoder> wr = cachedDecoder;
|
||||
CharsetDecoder dec = null;
|
||||
if ((wr == null) || ((dec = (CharsetDecoder)wr.get()) == null)) {
|
||||
if ((wr == null) || ((dec = wr.get()) == null)) {
|
||||
dec = charset().newDecoder();
|
||||
dec.onMalformedInput(CodingErrorAction.REPORT);
|
||||
dec.onUnmappableCharacter(CodingErrorAction.REPORT);
|
||||
cachedDecoder = new WeakReference(dec);
|
||||
cachedDecoder = new WeakReference<CharsetDecoder>(dec);
|
||||
} else {
|
||||
dec.reset();
|
||||
}
|
||||
|
@ -379,7 +379,7 @@ public abstract class Charset
|
||||
}
|
||||
|
||||
// Thread-local gate to prevent recursive provider lookups
|
||||
private static ThreadLocal gate = new ThreadLocal();
|
||||
private static ThreadLocal<ThreadLocal> gate = new ThreadLocal<ThreadLocal>();
|
||||
|
||||
private static Charset lookupViaProviders(final String charsetName) {
|
||||
|
||||
@ -539,9 +539,9 @@ public abstract class Charset
|
||||
// Fold charsets from the given iterator into the given map, ignoring
|
||||
// charsets whose names already have entries in the map.
|
||||
//
|
||||
private static void put(Iterator i, Map m) {
|
||||
private static void put(Iterator<Charset> i, Map<String,Charset> m) {
|
||||
while (i.hasNext()) {
|
||||
Charset cs = (Charset)i.next();
|
||||
Charset cs = i.next();
|
||||
if (!m.containsKey(cs.name()))
|
||||
m.put(cs.name(), cs);
|
||||
}
|
||||
@ -623,7 +623,7 @@ public abstract class Charset
|
||||
|
||||
private final String name; // tickles a bug in oldjavac
|
||||
private final String[] aliases; // tickles a bug in oldjavac
|
||||
private Set aliasSet = null;
|
||||
private Set<String> aliasSet = null;
|
||||
|
||||
/**
|
||||
* Initializes a new charset with the given canonical name and alias
|
||||
@ -665,7 +665,7 @@ public abstract class Charset
|
||||
if (aliasSet != null)
|
||||
return aliasSet;
|
||||
int n = aliases.length;
|
||||
HashSet hs = new HashSet(n);
|
||||
HashSet<String> hs = new HashSet<String>(n);
|
||||
for (int i = 0; i < n; i++)
|
||||
hs.add(aliases[i]);
|
||||
aliasSet = Collections.unmodifiableSet(hs);
|
||||
|
@ -194,7 +194,7 @@ public class CoderResult {
|
||||
|
||||
private static abstract class Cache {
|
||||
|
||||
private Map cache = null;
|
||||
private Map<Integer,WeakReference<CoderResult>> cache = null;
|
||||
|
||||
protected abstract CoderResult create(int len);
|
||||
|
||||
@ -202,16 +202,16 @@ public class CoderResult {
|
||||
if (len <= 0)
|
||||
throw new IllegalArgumentException("Non-positive length");
|
||||
Integer k = new Integer(len);
|
||||
WeakReference w;
|
||||
WeakReference<CoderResult> w;
|
||||
CoderResult e = null;
|
||||
if (cache == null) {
|
||||
cache = new HashMap();
|
||||
} else if ((w = (WeakReference)cache.get(k)) != null) {
|
||||
e = (CoderResult)w.get();
|
||||
cache = new HashMap<Integer,WeakReference<CoderResult>>();
|
||||
} else if ((w = cache.get(k)) != null) {
|
||||
e = w.get();
|
||||
}
|
||||
if (e == null) {
|
||||
e = create(len);
|
||||
cache.put(k, new WeakReference(e));
|
||||
cache.put(k, new WeakReference<CoderResult>(e));
|
||||
}
|
||||
return e;
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ formatVersion=1
|
||||
# It is a serial number that accompanies with each amendment, such as
|
||||
# 'MAxxx.doc'
|
||||
|
||||
dataVersion=139
|
||||
dataVersion=140
|
||||
|
||||
# List of all valid ISO 4217 currency codes.
|
||||
# To ensure compatibility, do not remove codes.
|
||||
@ -187,7 +187,7 @@ HR=HRK
|
||||
# CUBA
|
||||
CU=CUP
|
||||
# CYPRUS
|
||||
CY=CYP
|
||||
CY=EUR
|
||||
# CZECH REPUBLIC
|
||||
CZ=CZK
|
||||
# DENMARK
|
||||
@ -346,7 +346,7 @@ MV=MVR
|
||||
# MALI
|
||||
ML=XOF
|
||||
# MALTA
|
||||
MT=MTL
|
||||
MT=EUR
|
||||
# MARSHALL ISLANDS
|
||||
MH=USD
|
||||
# MARTINIQUE
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2004-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
|
||||
@ -25,6 +25,7 @@
|
||||
|
||||
package javax.management;
|
||||
|
||||
import com.sun.jmx.mbeanserver.Util;
|
||||
import java.io.InvalidObjectException;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.Arrays;
|
||||
@ -362,6 +363,7 @@ public class ImmutableDescriptor implements Descriptor {
|
||||
*/
|
||||
// Note: this Javadoc is copied from javax.management.Descriptor
|
||||
// due to 6369229.
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (o == this)
|
||||
return true;
|
||||
@ -410,29 +412,15 @@ public class ImmutableDescriptor implements Descriptor {
|
||||
*/
|
||||
// Note: this Javadoc is copied from javax.management.Descriptor
|
||||
// due to 6369229.
|
||||
@Override
|
||||
public int hashCode() {
|
||||
if (hashCode == -1) {
|
||||
int hash = 0;
|
||||
for (int i = 0; i < names.length; i++) {
|
||||
Object v = values[i];
|
||||
int h;
|
||||
if (v == null)
|
||||
h = 0;
|
||||
else if (v instanceof Object[])
|
||||
h = Arrays.deepHashCode((Object[]) v);
|
||||
else if (v.getClass().isArray()) {
|
||||
h = Arrays.deepHashCode(new Object[] {v}) - 31;
|
||||
// hashcode of a list containing just v is
|
||||
// v.hashCode() + 31, see List.hashCode()
|
||||
} else
|
||||
h = v.hashCode();
|
||||
hash += names[i].toLowerCase().hashCode() ^ h;
|
||||
}
|
||||
hashCode = hash;
|
||||
hashCode = Util.hashCode(names, values);
|
||||
}
|
||||
return hashCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("{");
|
||||
for (int i = 0; i < names.length; i++) {
|
||||
@ -479,6 +467,7 @@ public class ImmutableDescriptor implements Descriptor {
|
||||
* If the descriptor construction fails for any reason, this exception will
|
||||
* be thrown.
|
||||
*/
|
||||
@Override
|
||||
public Descriptor clone() {
|
||||
return this;
|
||||
}
|
||||
|
@ -33,6 +33,7 @@ package javax.management.modelmbean;
|
||||
import static com.sun.jmx.defaults.JmxProperties.MODELMBEAN_LOGGER;
|
||||
import static com.sun.jmx.mbeanserver.Util.cast;
|
||||
import com.sun.jmx.mbeanserver.GetPropertyAction;
|
||||
import com.sun.jmx.mbeanserver.Util;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
@ -774,6 +775,7 @@ public class DescriptorSupport
|
||||
* fails for any reason, this exception will be thrown.
|
||||
*/
|
||||
|
||||
@Override
|
||||
public synchronized Object clone() throws RuntimeOperationsException {
|
||||
if (MODELMBEAN_LOGGER.isLoggable(Level.FINEST)) {
|
||||
MODELMBEAN_LOGGER.logp(Level.FINEST,
|
||||
@ -814,13 +816,16 @@ public class DescriptorSupport
|
||||
* otherwise.
|
||||
*
|
||||
*/
|
||||
// XXXX TODO: This is not very efficient!
|
||||
// Note: this Javadoc is copied from javax.management.Descriptor
|
||||
// due to 6369229.
|
||||
@Override
|
||||
public synchronized boolean equals(Object o) {
|
||||
if (o == this)
|
||||
return true;
|
||||
|
||||
if (! (o instanceof Descriptor))
|
||||
return false;
|
||||
if (o instanceof ImmutableDescriptor)
|
||||
return o.equals(this);
|
||||
return new ImmutableDescriptor(descriptorMap).equals(o);
|
||||
}
|
||||
|
||||
@ -844,11 +849,16 @@ public class DescriptorSupport
|
||||
* @return A hash code value for this object.
|
||||
*
|
||||
*/
|
||||
// XXXX TODO: This is not very efficient!
|
||||
// Note: this Javadoc is copied from javax.management.Descriptor
|
||||
// due to 6369229.
|
||||
@Override
|
||||
public synchronized int hashCode() {
|
||||
return new ImmutableDescriptor(descriptorMap).hashCode();
|
||||
final int size = descriptorMap.size();
|
||||
// descriptorMap is sorted with a comparator that ignores cases.
|
||||
//
|
||||
return Util.hashCode(
|
||||
descriptorMap.keySet().toArray(new String[size]),
|
||||
descriptorMap.values().toArray(new Object[size]));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1278,6 +1288,7 @@ public class DescriptorSupport
|
||||
* field Names or field Values. If the descriptor string fails
|
||||
* for any reason, this exception will be thrown.
|
||||
*/
|
||||
@Override
|
||||
public synchronized String toString() {
|
||||
if (MODELMBEAN_LOGGER.isLoggable(Level.FINEST)) {
|
||||
MODELMBEAN_LOGGER.logp(Level.FINEST,
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2005-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
|
||||
@ -263,7 +263,7 @@ class BufferStrategyPaintManager extends RepaintManager.PaintManager {
|
||||
(SubRegionShowable)bufferStrategy;
|
||||
boolean paintAllOnExpose = info.getPaintAllOnExpose();
|
||||
info.setPaintAllOnExpose(false);
|
||||
if (bsSubRegion.validateAndShow(x, y, (x + w), (y + h))) {
|
||||
if (bsSubRegion.showIfNotLost(x, y, (x + w), (y + h))) {
|
||||
return !paintAllOnExpose;
|
||||
}
|
||||
// Mark the buffer as needing to be repainted. We don't
|
||||
|
@ -72,6 +72,11 @@ public abstract class FontConfiguration {
|
||||
protected boolean preferLocaleFonts;
|
||||
protected boolean preferPropFonts;
|
||||
|
||||
private File fontConfigFile;
|
||||
private boolean foundOsSpecificFile;
|
||||
private boolean inited;
|
||||
private String javaLib;
|
||||
|
||||
/* A default FontConfiguration must be created before an alternate
|
||||
* one to ensure proper static initialisation takes place.
|
||||
*/
|
||||
@ -80,14 +85,25 @@ public abstract class FontConfiguration {
|
||||
logger = Logger.getLogger("sun.awt.FontConfiguration");
|
||||
}
|
||||
this.environment = environment;
|
||||
this.preferLocaleFonts = false;
|
||||
this.preferPropFonts = false;
|
||||
setOsNameAndVersion(); /* static initialization */
|
||||
setEncoding(); /* static initialization */
|
||||
fontConfig = this; /* static initialization */
|
||||
/* Separating out the file location from the rest of the
|
||||
* initialisation, so the caller has the option of doing
|
||||
* something else if a suitable file isn't found.
|
||||
*/
|
||||
findFontConfigFile();
|
||||
}
|
||||
|
||||
readFontConfigFile();
|
||||
initFontConfig();
|
||||
public synchronized boolean init() {
|
||||
if (!inited) {
|
||||
this.preferLocaleFonts = false;
|
||||
this.preferPropFonts = false;
|
||||
fontConfig = this; /* static initialization */
|
||||
readFontConfigFile(fontConfigFile);
|
||||
initFontConfig();
|
||||
inited = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public FontConfiguration(SunGraphicsEnvironment environment,
|
||||
@ -121,21 +137,51 @@ public abstract class FontConfiguration {
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
// methods for loading the FontConfig file //
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
private void readFontConfigFile() {
|
||||
// Find fontconfig file
|
||||
File f = null;
|
||||
|
||||
public boolean foundOsSpecificFile() {
|
||||
return foundOsSpecificFile;
|
||||
}
|
||||
|
||||
/* Smoke test to see if we can trust this configuration by testing if
|
||||
* the first slot of a composite font maps to an installed file.
|
||||
*/
|
||||
public boolean fontFilesArePresent() {
|
||||
init();
|
||||
short fontNameID = compFontNameIDs[0][0][0];
|
||||
short fileNameID = getComponentFileID(fontNameID);
|
||||
final String fileName = mapFileName(getComponentFileName(fileNameID));
|
||||
Boolean exists = (Boolean)java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
public Object run() {
|
||||
try {
|
||||
File f = new File(fileName);
|
||||
return Boolean.valueOf(f.exists());
|
||||
}
|
||||
catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
return exists.booleanValue();
|
||||
}
|
||||
|
||||
private void findFontConfigFile() {
|
||||
|
||||
foundOsSpecificFile = true; // default assumption.
|
||||
String javaHome = System.getProperty("java.home");
|
||||
if (javaHome == null) {
|
||||
throw new Error("java.home property not set");
|
||||
}
|
||||
String javaLib = javaHome + File.separator + "lib";
|
||||
javaLib = javaHome + File.separator + "lib";
|
||||
String userConfigFile = System.getProperty("sun.awt.fontconfig");
|
||||
if (userConfigFile != null) {
|
||||
f = new File(userConfigFile);
|
||||
fontConfigFile = new File(userConfigFile);
|
||||
} else {
|
||||
f = findFontConfigFile(javaLib);
|
||||
fontConfigFile = findFontConfigFile(javaLib);
|
||||
}
|
||||
}
|
||||
|
||||
private void readFontConfigFile(File f) {
|
||||
/* This is invoked here as readFontConfigFile is only invoked
|
||||
* once per VM, and always in a privileged context, thus the
|
||||
* directory containing installed fall back fonts is accessed
|
||||
@ -167,7 +213,7 @@ public abstract class FontConfiguration {
|
||||
}
|
||||
}
|
||||
|
||||
private void getInstalledFallbackFonts(String javaLib) {
|
||||
protected void getInstalledFallbackFonts(String javaLib) {
|
||||
String fallbackDirName = javaLib + File.separator +
|
||||
"fonts" + File.separator + "fallback";
|
||||
|
||||
@ -229,6 +275,8 @@ public abstract class FontConfiguration {
|
||||
return configFile;
|
||||
}
|
||||
}
|
||||
foundOsSpecificFile = false;
|
||||
|
||||
configFile = findImpl(baseName);
|
||||
if (configFile != null) {
|
||||
return configFile;
|
||||
@ -506,12 +554,12 @@ public abstract class FontConfiguration {
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
protected static final int NUM_FONTS = 5;
|
||||
protected static final int NUM_STYLES = 4;
|
||||
private static final String[] fontNames
|
||||
protected static final String[] fontNames
|
||||
= {"serif", "sansserif", "monospaced", "dialog", "dialoginput"};
|
||||
private static final String[] publicFontNames
|
||||
protected static final String[] publicFontNames
|
||||
= {Font.SERIF, Font.SANS_SERIF, Font.MONOSPACED, Font.DIALOG,
|
||||
Font.DIALOG_INPUT};
|
||||
private static final String[] styleNames
|
||||
protected static final String[] styleNames
|
||||
= {"plain", "bold", "italic", "bolditalic"};
|
||||
|
||||
/**
|
||||
@ -656,7 +704,7 @@ public abstract class FontConfiguration {
|
||||
return null;
|
||||
}
|
||||
|
||||
private static String[] installedFallbackFontFiles = null;
|
||||
protected static String[] installedFallbackFontFiles = null;
|
||||
|
||||
/**
|
||||
* Maps a file name given in the font configuration file
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2000-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
|
||||
@ -255,7 +255,9 @@ public class NullComponentPeer implements LightweightPeer,
|
||||
throw new IllegalStateException(
|
||||
"Page-flipping is not allowed on a lightweight component");
|
||||
}
|
||||
public void flip(BufferCapabilities.FlipContents flipAction) {
|
||||
public void flip(int x1, int y1, int x2, int y2,
|
||||
BufferCapabilities.FlipContents flipAction)
|
||||
{
|
||||
throw new IllegalStateException(
|
||||
"Page-flipping is not allowed on a lightweight component");
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2005-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
|
||||
@ -39,10 +39,11 @@ public interface SubRegionShowable {
|
||||
public void show(int x1, int y1, int x2, int y2);
|
||||
|
||||
/**
|
||||
* Validates the buffer and if successful shows the specified region.
|
||||
* Shows the specified region if the buffer is not lost and the dimensions
|
||||
* of the back-buffer match those of the component.
|
||||
*
|
||||
* @return true if successful
|
||||
*/
|
||||
// NOTE: this is invoked by swing on the toolkit thread!
|
||||
public boolean validateAndShow(int x1, int y1, int x2, int y2);
|
||||
public boolean showIfNotLost(int x1, int y1, int x2, int y2);
|
||||
}
|
||||
|
@ -29,19 +29,18 @@ import java.awt.AlphaComposite;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.ImageCapabilities;
|
||||
import java.awt.Transparency;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.ColorModel;
|
||||
import java.awt.image.ImageObserver;
|
||||
import java.awt.image.VolatileImage;
|
||||
import java.awt.image.WritableRaster;
|
||||
import sun.java2d.SunGraphics2D;
|
||||
import sun.java2d.SurfaceData;
|
||||
import sun.java2d.SurfaceManagerFactory;
|
||||
import sun.java2d.DestSurfaceProvider;
|
||||
import sun.java2d.Surface;
|
||||
import static sun.java2d.pipe.hw.AccelSurface.*;
|
||||
|
||||
/**
|
||||
* This class is the base implementation of the VolatileImage
|
||||
@ -52,23 +51,28 @@ import sun.java2d.SurfaceManagerFactory;
|
||||
* appropriate VolatileSurfaceManager for the GraphicsConfiguration
|
||||
* under which this SunVolatileImage was created.
|
||||
*/
|
||||
public class SunVolatileImage extends VolatileImage {
|
||||
public class SunVolatileImage extends VolatileImage
|
||||
implements DestSurfaceProvider
|
||||
{
|
||||
|
||||
protected VolatileSurfaceManager volSurfaceManager;
|
||||
protected Component comp;
|
||||
private GraphicsConfiguration graphicsConfig;
|
||||
private Font defaultFont;
|
||||
private int width, height;
|
||||
private int forcedAccelSurfaceType;
|
||||
|
||||
private SunVolatileImage(Component comp,
|
||||
GraphicsConfiguration graphicsConfig,
|
||||
int width, int height, Object context,
|
||||
int transparency, ImageCapabilities caps)
|
||||
protected SunVolatileImage(Component comp,
|
||||
GraphicsConfiguration graphicsConfig,
|
||||
int width, int height, Object context,
|
||||
int transparency, ImageCapabilities caps,
|
||||
int accType)
|
||||
{
|
||||
this.comp = comp;
|
||||
this.graphicsConfig = graphicsConfig;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.forcedAccelSurfaceType = accType;
|
||||
if (!(transparency == Transparency.OPAQUE ||
|
||||
transparency == Transparency.BITMASK ||
|
||||
transparency == Transparency.TRANSLUCENT))
|
||||
@ -92,7 +96,7 @@ public class SunVolatileImage extends VolatileImage {
|
||||
ImageCapabilities caps)
|
||||
{
|
||||
this(comp, graphicsConfig,
|
||||
width, height, context, Transparency.OPAQUE, caps);
|
||||
width, height, context, Transparency.OPAQUE, caps, UNDEFINED);
|
||||
}
|
||||
|
||||
public SunVolatileImage(Component comp, int width, int height) {
|
||||
@ -110,7 +114,8 @@ public class SunVolatileImage extends VolatileImage {
|
||||
int width, int height, int transparency,
|
||||
ImageCapabilities caps)
|
||||
{
|
||||
this(null, graphicsConfig, width, height, null, transparency, caps);
|
||||
this(null, graphicsConfig, width, height, null, transparency,
|
||||
caps, UNDEFINED);
|
||||
}
|
||||
|
||||
public int getWidth() {
|
||||
@ -144,6 +149,10 @@ public class SunVolatileImage extends VolatileImage {
|
||||
return comp;
|
||||
}
|
||||
|
||||
public int getForcedAccelSurfaceType() {
|
||||
return forcedAccelSurfaceType;
|
||||
}
|
||||
|
||||
protected VolatileSurfaceManager createSurfaceManager(Object context,
|
||||
ImageCapabilities caps)
|
||||
{
|
||||
@ -248,4 +257,14 @@ public class SunVolatileImage extends VolatileImage {
|
||||
public ImageCapabilities getCapabilities() {
|
||||
return volSurfaceManager.getCapabilities(graphicsConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @see sun.java2d.DestSurfaceProvider#getDestSurface
|
||||
*/
|
||||
@Override
|
||||
public Surface getDestSurface() {
|
||||
return volSurfaceManager.getPrimarySurfaceData();
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2001-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
|
||||
@ -35,6 +35,7 @@ import java.awt.image.DataBufferInt;
|
||||
import java.awt.image.SampleModel;
|
||||
import java.awt.image.WritableRaster;
|
||||
|
||||
import sun.java2d.StateTrackable.State;
|
||||
import sun.java2d.SurfaceData;
|
||||
import sun.java2d.StateTrackableDelegate;
|
||||
|
||||
@ -54,6 +55,7 @@ public class SunWritableRaster extends WritableRaster {
|
||||
public short[] getData(DataBufferUShort dbus, int bank);
|
||||
public int[] getData(DataBufferInt dbi, int bank);
|
||||
public StateTrackableDelegate getTrackable(DataBuffer db);
|
||||
public void setTrackable(DataBuffer db, StateTrackableDelegate trackable);
|
||||
}
|
||||
|
||||
public static void setDataStealer(DataStealer ds) {
|
||||
@ -79,6 +81,14 @@ public class SunWritableRaster extends WritableRaster {
|
||||
return stealer.getTrackable(db);
|
||||
}
|
||||
|
||||
public static void setTrackable(DataBuffer db, StateTrackableDelegate trackable) {
|
||||
stealer.setTrackable(db, trackable);
|
||||
}
|
||||
|
||||
public static void makeTrackable(DataBuffer db) {
|
||||
stealer.setTrackable(db, StateTrackableDelegate.createInstance(State.STABLE));
|
||||
}
|
||||
|
||||
public static void markDirty(DataBuffer db) {
|
||||
stealer.getTrackable(db).markDirty();
|
||||
}
|
||||
|
121
jdk/src/share/classes/sun/awt/image/VSyncedBSManager.java
Normal file
121
jdk/src/share/classes/sun/awt/image/VSyncedBSManager.java
Normal file
@ -0,0 +1,121 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package sun.awt.image;
|
||||
|
||||
import java.awt.image.BufferStrategy;
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
/**
|
||||
* Manages v-synced buffer strategies.
|
||||
*/
|
||||
public abstract class VSyncedBSManager {
|
||||
|
||||
private static VSyncedBSManager theInstance;
|
||||
|
||||
private static final boolean vSyncLimit =
|
||||
Boolean.valueOf((String)java.security.AccessController.doPrivileged(
|
||||
new sun.security.action.GetPropertyAction(
|
||||
"sun.java2d.vsynclimit", "true")));
|
||||
|
||||
private static VSyncedBSManager getInstance(boolean create) {
|
||||
if (theInstance == null && create) {
|
||||
theInstance =
|
||||
vSyncLimit ? new SingleVSyncedBSMgr() : new NoLimitVSyncBSMgr();
|
||||
}
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
abstract boolean checkAllowed(BufferStrategy bs);
|
||||
abstract void relinquishVsync(BufferStrategy bs);
|
||||
|
||||
/**
|
||||
* Returns true if the buffer strategy is allowed to be created
|
||||
* v-synced.
|
||||
*
|
||||
* @return true if the bs is allowed to be v-synced, false otherwise
|
||||
*/
|
||||
public static boolean vsyncAllowed(BufferStrategy bs) {
|
||||
VSyncedBSManager bsm = getInstance(true);
|
||||
return bsm.checkAllowed(bs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets the manager know that this buffer strategy is no longer interested
|
||||
* in being v-synced.
|
||||
*/
|
||||
public static synchronized void releaseVsync(BufferStrategy bs) {
|
||||
VSyncedBSManager bsm = getInstance(false);
|
||||
if (bsm != null) {
|
||||
bsm.relinquishVsync(bs);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* An instance of the manager which allows any buffer strategy to be
|
||||
* v-synced.
|
||||
*/
|
||||
private static final class NoLimitVSyncBSMgr extends VSyncedBSManager {
|
||||
@Override
|
||||
boolean checkAllowed(BufferStrategy bs) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
void relinquishVsync(BufferStrategy bs) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* An instance of the manager which allows only one buffer strategy to
|
||||
* be v-synced at any give moment in the vm.
|
||||
*/
|
||||
private static final class SingleVSyncedBSMgr extends VSyncedBSManager {
|
||||
private WeakReference<BufferStrategy> strategy;
|
||||
|
||||
@Override
|
||||
public synchronized boolean checkAllowed(BufferStrategy bs) {
|
||||
if (strategy != null) {
|
||||
BufferStrategy current = strategy.get();
|
||||
if (current != null) {
|
||||
return (current == bs);
|
||||
}
|
||||
}
|
||||
strategy = new WeakReference<BufferStrategy>(bs);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void relinquishVsync(BufferStrategy bs) {
|
||||
if (strategy != null) {
|
||||
BufferStrategy b = strategy.get();
|
||||
if (b == bs) {
|
||||
strategy.clear();
|
||||
strategy = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2003-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
|
||||
@ -37,6 +37,7 @@ import sun.awt.image.SunVolatileImage;
|
||||
import sun.java2d.SunGraphicsEnvironment;
|
||||
import sun.java2d.SurfaceData;
|
||||
import sun.java2d.loops.CompositeType;
|
||||
import static sun.java2d.pipe.hw.AccelSurface.*;
|
||||
|
||||
/**
|
||||
* This SurfaceManager variant manages an accelerated volatile surface, if it
|
||||
@ -117,7 +118,11 @@ public abstract class VolatileSurfaceManager
|
||||
sdCurrent = sdAccel;
|
||||
}
|
||||
}
|
||||
if (sdCurrent == null) {
|
||||
// only initialize the backup surface for images with unforced
|
||||
// acceleration type
|
||||
if (sdCurrent == null &&
|
||||
vImg.getForcedAccelSurfaceType() == UNDEFINED)
|
||||
{
|
||||
sdCurrent = getBackupSurface();
|
||||
}
|
||||
}
|
||||
@ -270,9 +275,13 @@ public abstract class VolatileSurfaceManager
|
||||
* the background).
|
||||
*/
|
||||
public void initContents() {
|
||||
Graphics g = vImg.createGraphics();
|
||||
g.clearRect(0, 0, vImg.getWidth(), vImg.getHeight());
|
||||
g.dispose();
|
||||
// images with forced acceleration type may have a null sdCurrent
|
||||
// because we do not create a backup surface for them
|
||||
if (sdCurrent != null) {
|
||||
Graphics g = vImg.createGraphics();
|
||||
g.clearRect(0, 0, vImg.getWidth(), vImg.getHeight());
|
||||
g.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -148,6 +148,7 @@ public final class FontManager {
|
||||
static HashSet<String> jreLucidaFontFiles;
|
||||
static String[] jreOtherFontFiles;
|
||||
static boolean noOtherJREFontFiles = false; // initial assumption.
|
||||
static boolean fontConfigFailed = false;
|
||||
|
||||
/* Used to indicate required return type from toArray(..); */
|
||||
private static String[] STR_ARRAY = new String[0];
|
||||
@ -3100,19 +3101,30 @@ public final class FontManager {
|
||||
"monospace:bold:italic",
|
||||
};
|
||||
|
||||
/* This class is just a data structure.
|
||||
/* These next three classes are just data structures.
|
||||
*/
|
||||
private static class FontConfigInfo {
|
||||
static class FontConfigFont {
|
||||
String familyName; // eg Bitstream Vera Sans
|
||||
String styleStr; // eg Bold
|
||||
String fullName; // eg Bitstream Vera Sans Bold
|
||||
String fontFile; // eg /usr/X11/lib/fonts/foo.ttf
|
||||
}
|
||||
|
||||
static class FcCompFont {
|
||||
String fcName; // eg sans
|
||||
String fcFamily; // eg sans
|
||||
String jdkName; // eg sansserif
|
||||
int style; // eg 0=PLAIN
|
||||
String familyName; // eg Bitstream Vera Sans
|
||||
String fontFile; // eg /usr/X11/lib/fonts/foo.ttf
|
||||
FontConfigFont firstFont;
|
||||
FontConfigFont[] allFonts;
|
||||
//boolean preferBitmaps; // if embedded bitmaps preferred over AA
|
||||
CompositeFont compFont; // null if not yet created/known.
|
||||
}
|
||||
|
||||
static class FontConfigInfo {
|
||||
int fcVersion;
|
||||
String[] cacheDirs = new String[4];
|
||||
}
|
||||
|
||||
private static String getFCLocaleStr() {
|
||||
Locale l = SunToolkit.getStartupLocale();
|
||||
@ -3124,6 +3136,12 @@ public final class FontManager {
|
||||
return localeStr;
|
||||
}
|
||||
|
||||
/* This does cause the native libfontconfig to be loaded and unloaded,
|
||||
* but it does not incur the overhead of initialisation of its
|
||||
* data structures, so shouldn't have a measurable impact.
|
||||
*/
|
||||
public static native int getFontConfigVersion();
|
||||
|
||||
private static native int
|
||||
getFontConfigAASettings(String locale, String fcFamily);
|
||||
|
||||
@ -3157,17 +3175,35 @@ public final class FontManager {
|
||||
return getFontConfigAAHint("sans");
|
||||
}
|
||||
|
||||
/* This is populated by native */
|
||||
private static final FontConfigInfo fcInfo = new FontConfigInfo();
|
||||
|
||||
/* This array has the array elements created in Java code and is
|
||||
* passed down to native to be filled in.
|
||||
*/
|
||||
private static FontConfigInfo[] fontConfigFonts;
|
||||
private static FcCompFont[] fontConfigFonts;
|
||||
|
||||
/* Return an array of FontConfigInfo structs describing the primary
|
||||
/* Return an array of FcCompFont structs describing the primary
|
||||
* font located for each of fontconfig/GTK/Pango's logical font names.
|
||||
*/
|
||||
private static native void getFontConfig(String locale,
|
||||
FontConfigInfo[] fonts);
|
||||
FontConfigInfo fcInfo,
|
||||
FcCompFont[] fonts,
|
||||
boolean includeFallbacks);
|
||||
|
||||
static void populateFontConfig(FcCompFont[] fcInfo) {
|
||||
fontConfigFonts = fcInfo;
|
||||
}
|
||||
|
||||
static FcCompFont[] loadFontConfig() {
|
||||
initFontConfigFonts(true);
|
||||
return fontConfigFonts;
|
||||
}
|
||||
|
||||
static FontConfigInfo getFontConfigInfo() {
|
||||
initFontConfigFonts(true);
|
||||
return fcInfo;
|
||||
}
|
||||
|
||||
/* This can be made public if it's needed to force a re-read
|
||||
* rather than using the cached values. The re-read would be needed
|
||||
@ -3175,54 +3211,80 @@ public final class FontManager {
|
||||
* In that event this method would need to return directly the array
|
||||
* to be used by the caller in case it subsequently changed.
|
||||
*/
|
||||
private static void initFontConfigFonts() {
|
||||
private static synchronized void
|
||||
initFontConfigFonts(boolean includeFallbacks) {
|
||||
|
||||
if (fontConfigFonts != null) {
|
||||
return;
|
||||
if (!includeFallbacks || (fontConfigFonts[0].allFonts != null)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (isWindows) {
|
||||
if (isWindows || fontConfigFailed) {
|
||||
return;
|
||||
}
|
||||
|
||||
long t0 = 0;
|
||||
if (logging) {
|
||||
t0 = System.currentTimeMillis();
|
||||
t0 = System.nanoTime();
|
||||
}
|
||||
|
||||
FontConfigInfo[] fontArr = new FontConfigInfo[fontConfigNames.length];
|
||||
FcCompFont[] fontArr = new FcCompFont[fontConfigNames.length];
|
||||
for (int i = 0; i< fontArr.length; i++) {
|
||||
fontArr[i] = new FontConfigInfo();
|
||||
fontArr[i] = new FcCompFont();
|
||||
fontArr[i].fcName = fontConfigNames[i];
|
||||
int colonPos = fontArr[i].fcName.indexOf(':');
|
||||
fontArr[i].fcFamily = fontArr[i].fcName.substring(0, colonPos);
|
||||
fontArr[i].jdkName = mapFcName(fontArr[i].fcFamily);
|
||||
fontArr[i].style = i % 4; // depends on array order.
|
||||
}
|
||||
getFontConfig(getFCLocaleStr(), fontArr);
|
||||
getFontConfig(getFCLocaleStr(), fcInfo, fontArr, includeFallbacks);
|
||||
/* If don't find anything (eg no libfontconfig), then just return */
|
||||
for (int i = 0; i< fontArr.length; i++) {
|
||||
FcCompFont fci = fontArr[i];
|
||||
if (fci.firstFont == null) {
|
||||
if (logging) {
|
||||
logger.info("Fontconfig returned no fonts.");
|
||||
}
|
||||
fontConfigFailed = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
fontConfigFonts = fontArr;
|
||||
|
||||
if (logging) {
|
||||
long t1 = System.currentTimeMillis();
|
||||
logger.info("Time spent accessing fontconfig="+(t1-t0)+"ms.");
|
||||
long t1 = System.nanoTime();
|
||||
logger.info("Time spent accessing fontconfig="+
|
||||
(t1-t0)/1000000+"ms.");
|
||||
|
||||
for (int i = 0; i< fontConfigFonts.length; i++) {
|
||||
FontConfigInfo fci = fontConfigFonts[i];
|
||||
FcCompFont fci = fontConfigFonts[i];
|
||||
logger.info("FC font " + fci.fcName+" maps to family " +
|
||||
fci.familyName + " in file " + fci.fontFile);
|
||||
fci.firstFont.familyName +
|
||||
" in file " + fci.firstFont.fontFile);
|
||||
if (fci.allFonts != null) {
|
||||
for (int f=0;f<fci.allFonts.length;f++) {
|
||||
FontConfigFont fcf = fci.allFonts[f];
|
||||
logger.info("Family=" + fcf.familyName +
|
||||
" Style="+ fcf.styleStr +
|
||||
" Fullname="+fcf.fullName +
|
||||
" File="+fcf.fontFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static PhysicalFont registerFromFcInfo(FontConfigInfo fcInfo) {
|
||||
private static PhysicalFont registerFromFcInfo(FcCompFont fcInfo) {
|
||||
|
||||
/* If it's a TTC file we need to know that as we will need to
|
||||
* make sure we return the right font */
|
||||
int offset = fcInfo.fontFile.length()-4;
|
||||
String fontFile = fcInfo.firstFont.fontFile;
|
||||
int offset = fontFile.length()-4;
|
||||
if (offset <= 0) {
|
||||
return null;
|
||||
}
|
||||
String ext = fcInfo.fontFile.substring(offset).toLowerCase();
|
||||
String ext = fontFile.substring(offset).toLowerCase();
|
||||
boolean isTTC = ext.equals(".ttc");
|
||||
|
||||
/* If this file is already registered, can just return its font.
|
||||
@ -3230,10 +3292,10 @@ public final class FontManager {
|
||||
* a specific font, so rather than directly returning it, let
|
||||
* findFont2D resolve that.
|
||||
*/
|
||||
PhysicalFont physFont = registeredFontFiles.get(fcInfo.fontFile);
|
||||
PhysicalFont physFont = registeredFontFiles.get(fontFile);
|
||||
if (physFont != null) {
|
||||
if (isTTC) {
|
||||
Font2D f2d = findFont2D(fcInfo.familyName,
|
||||
Font2D f2d = findFont2D(fcInfo.firstFont.familyName,
|
||||
fcInfo.style, NO_FALLBACK);
|
||||
if (f2d instanceof PhysicalFont) { /* paranoia */
|
||||
return (PhysicalFont)f2d;
|
||||
@ -3249,18 +3311,20 @@ public final class FontManager {
|
||||
* Lucida Sans), we want to use the JRE version, so make it
|
||||
* point to the JRE font.
|
||||
*/
|
||||
physFont = findJREDeferredFont(fcInfo.familyName, fcInfo.style);
|
||||
physFont = findJREDeferredFont(fcInfo.firstFont.familyName,
|
||||
fcInfo.style);
|
||||
|
||||
/* It is also possible the font file is on the "deferred" list,
|
||||
* in which case we can just initialise it now.
|
||||
*/
|
||||
if (physFont == null &&
|
||||
deferredFontFiles.get(fcInfo.fontFile) != null) {
|
||||
physFont = initialiseDeferredFont(fcInfo.fontFile);
|
||||
deferredFontFiles.get(fontFile) != null)
|
||||
{
|
||||
physFont = initialiseDeferredFont(fcInfo.firstFont.fontFile);
|
||||
/* use findFont2D to get the right font from TTC's */
|
||||
if (physFont != null) {
|
||||
if (isTTC) {
|
||||
Font2D f2d = findFont2D(fcInfo.familyName,
|
||||
Font2D f2d = findFont2D(fcInfo.firstFont.familyName,
|
||||
fcInfo.style, NO_FALLBACK);
|
||||
if (f2d instanceof PhysicalFont) { /* paranoia */
|
||||
return (PhysicalFont)f2d;
|
||||
@ -3287,7 +3351,7 @@ public final class FontManager {
|
||||
fontFormat = FONTFORMAT_TYPE1;
|
||||
fontRank = Font2D.TYPE1_RANK;
|
||||
}
|
||||
physFont = registerFontFile(fcInfo.fontFile, null,
|
||||
physFont = registerFontFile(fcInfo.firstFont.fontFile, null,
|
||||
fontFormat, true, fontRank);
|
||||
}
|
||||
return physFont;
|
||||
@ -3345,12 +3409,12 @@ public final class FontManager {
|
||||
}
|
||||
info[1] = info[1] + File.separator + "arial.ttf";
|
||||
} else {
|
||||
initFontConfigFonts();
|
||||
initFontConfigFonts(false);
|
||||
for (int i=0; i<fontConfigFonts.length; i++) {
|
||||
if ("sans".equals(fontConfigFonts[i].fcFamily) &&
|
||||
0 == fontConfigFonts[i].style) {
|
||||
info[0] = fontConfigFonts[i].familyName;
|
||||
info[1] = fontConfigFonts[i].fontFile;
|
||||
info[0] = fontConfigFonts[i].firstFont.familyName;
|
||||
info[1] = fontConfigFonts[i].firstFont.fontFile;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -3360,9 +3424,9 @@ public final class FontManager {
|
||||
*/
|
||||
if (info[0] == null) {
|
||||
if (fontConfigFonts.length > 0 &&
|
||||
fontConfigFonts[0].fontFile != null) {
|
||||
info[0] = fontConfigFonts[0].familyName;
|
||||
info[1] = fontConfigFonts[0].fontFile;
|
||||
fontConfigFonts[0].firstFont.fontFile != null) {
|
||||
info[0] = fontConfigFonts[0].firstFont.familyName;
|
||||
info[1] = fontConfigFonts[0].firstFont.fontFile;
|
||||
} else {
|
||||
info[0] = "Dialog";
|
||||
info[1] = "/dialog.ttf";
|
||||
@ -3373,8 +3437,8 @@ public final class FontManager {
|
||||
return defaultPlatformFont;
|
||||
}
|
||||
|
||||
private FontConfigInfo getFontConfigInfo() {
|
||||
initFontConfigFonts();
|
||||
private FcCompFont getFcCompFont() {
|
||||
initFontConfigFonts(false);
|
||||
for (int i=0; i<fontConfigFonts.length; i++) {
|
||||
if ("sans".equals(fontConfigFonts[i].fcFamily) &&
|
||||
0 == fontConfigFonts[i].style) {
|
||||
@ -3391,9 +3455,9 @@ public final class FontManager {
|
||||
|
||||
name = name.toLowerCase();
|
||||
|
||||
initFontConfigFonts();
|
||||
initFontConfigFonts(false);
|
||||
|
||||
FontConfigInfo fcInfo = null;
|
||||
FcCompFont fcInfo = null;
|
||||
for (int i=0; i<fontConfigFonts.length; i++) {
|
||||
if (name.equals(fontConfigFonts[i].fcFamily) &&
|
||||
style == fontConfigFonts[i].style) {
|
||||
@ -3407,7 +3471,8 @@ public final class FontManager {
|
||||
|
||||
if (logging) {
|
||||
logger.info("FC name=" + name + " style=" + style + " uses " +
|
||||
fcInfo.familyName + " in file: " + fcInfo.fontFile);
|
||||
fcInfo.firstFont.familyName +
|
||||
" in file: " + fcInfo.firstFont.fontFile);
|
||||
}
|
||||
|
||||
if (fcInfo.compFont != null) {
|
||||
@ -3420,7 +3485,8 @@ public final class FontManager {
|
||||
CompositeFont jdkFont = (CompositeFont)
|
||||
findFont2D(fcInfo.jdkName, style, LOGICAL_FALLBACK);
|
||||
|
||||
if (fcInfo.familyName == null || fcInfo.fontFile == null) {
|
||||
if (fcInfo.firstFont.familyName == null ||
|
||||
fcInfo.firstFont.fontFile == null) {
|
||||
return (fcInfo.compFont = jdkFont);
|
||||
}
|
||||
|
||||
@ -3432,7 +3498,7 @@ public final class FontManager {
|
||||
* will fall through this code, but the regisration code will
|
||||
* find that file already registered and return its font.
|
||||
*/
|
||||
FontFamily family = FontFamily.getFamily(fcInfo.familyName);
|
||||
FontFamily family = FontFamily.getFamily(fcInfo.firstFont.familyName);
|
||||
PhysicalFont physFont = null;
|
||||
if (family != null) {
|
||||
Font2D f2D = family.getFontWithExactStyleMatch(fcInfo.style);
|
||||
@ -3441,7 +3507,8 @@ public final class FontManager {
|
||||
}
|
||||
}
|
||||
|
||||
if (physFont == null || !fcInfo.fontFile.equals(physFont.platName)) {
|
||||
if (physFont == null ||
|
||||
!fcInfo.firstFont.fontFile.equals(physFont.platName)) {
|
||||
physFont = registerFromFcInfo(fcInfo);
|
||||
if (physFont == null) {
|
||||
return (fcInfo.compFont = jdkFont);
|
||||
@ -3459,10 +3526,10 @@ public final class FontManager {
|
||||
* together to prevent synthetic styling.
|
||||
*/
|
||||
for (int i=0; i<fontConfigFonts.length; i++) {
|
||||
FontConfigInfo fc = fontConfigFonts[i];
|
||||
FcCompFont fc = fontConfigFonts[i];
|
||||
if (fc != fcInfo &&
|
||||
physFont.getFamilyName(null).equals(fc.familyName) &&
|
||||
!fc.fontFile.equals(physFont.platName) &&
|
||||
physFont.getFamilyName(null).equals(fc.firstFont.familyName) &&
|
||||
!fc.firstFont.fontFile.equals(physFont.platName) &&
|
||||
family.getFontWithExactStyleMatch(fc.style) == null) {
|
||||
|
||||
registerFromFcInfo(fontConfigFonts[i]);
|
||||
|
@ -76,7 +76,7 @@ class NullFontScaler extends FontScaler {
|
||||
}
|
||||
|
||||
int getNumGlyphs() throws FontScalerException {
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int getMissingGlyphCode() throws FontScalerException {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2003-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
|
||||
@ -25,16 +25,17 @@
|
||||
|
||||
package sun.font;
|
||||
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.GraphicsEnvironment;
|
||||
import java.lang.ref.Reference;
|
||||
import java.lang.ref.ReferenceQueue;
|
||||
import java.lang.ref.SoftReference;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontFormatException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import sun.java2d.Disposer;
|
||||
import sun.java2d.pipe.BufferedContext;
|
||||
import sun.java2d.pipe.RenderQueue;
|
||||
import sun.java2d.pipe.hw.AccelGraphicsConfig;
|
||||
import sun.misc.Unsafe;
|
||||
|
||||
/**
|
||||
@ -192,13 +193,13 @@ public final class StrikeCache {
|
||||
recentStrikeIndex = index;
|
||||
}
|
||||
|
||||
static void disposeStrike(FontStrikeDisposer disposer) {
|
||||
private static final void doDispose(FontStrikeDisposer disposer) {
|
||||
if (disposer.intGlyphImages != null) {
|
||||
freeIntMemory(disposer.intGlyphImages,
|
||||
disposer.pScalerContext);
|
||||
disposer.pScalerContext);
|
||||
} else if (disposer.longGlyphImages != null) {
|
||||
freeLongMemory(disposer.longGlyphImages,
|
||||
disposer.pScalerContext);
|
||||
disposer.pScalerContext);
|
||||
} else if (disposer.segIntGlyphImages != null) {
|
||||
/* NB Now making multiple JNI calls in this case.
|
||||
* But assuming that there's a reasonable amount of locality
|
||||
@ -207,7 +208,7 @@ public final class StrikeCache {
|
||||
for (int i=0; i<disposer.segIntGlyphImages.length; i++) {
|
||||
if (disposer.segIntGlyphImages[i] != null) {
|
||||
freeIntMemory(disposer.segIntGlyphImages[i],
|
||||
disposer.pScalerContext);
|
||||
disposer.pScalerContext);
|
||||
/* native will only free the scaler context once */
|
||||
disposer.pScalerContext = 0L;
|
||||
disposer.segIntGlyphImages[i] = null;
|
||||
@ -223,7 +224,7 @@ public final class StrikeCache {
|
||||
for (int i=0; i<disposer.segLongGlyphImages.length; i++) {
|
||||
if (disposer.segLongGlyphImages[i] != null) {
|
||||
freeLongMemory(disposer.segLongGlyphImages[i],
|
||||
disposer.pScalerContext);
|
||||
disposer.pScalerContext);
|
||||
disposer.pScalerContext = 0L;
|
||||
disposer.segLongGlyphImages[i] = null;
|
||||
}
|
||||
@ -234,6 +235,44 @@ public final class StrikeCache {
|
||||
}
|
||||
}
|
||||
|
||||
static void disposeStrike(final FontStrikeDisposer disposer) {
|
||||
// we need to execute the strike disposal on the rendering thread
|
||||
// because they may be accessed on that thread at the time of the
|
||||
// disposal (for example, when the accel. cache is invalidated)
|
||||
|
||||
// REMIND: this look a bit heavyweight, but should be ok
|
||||
// because strike disposal is a relatively infrequent operation,
|
||||
// more worrisome is the necessity of getting a GC here.
|
||||
RenderQueue rq = null;
|
||||
GraphicsEnvironment ge =
|
||||
GraphicsEnvironment.getLocalGraphicsEnvironment();
|
||||
if (!ge.isHeadless()) {
|
||||
GraphicsConfiguration gc =
|
||||
ge.getDefaultScreenDevice().getDefaultConfiguration();
|
||||
if (gc instanceof AccelGraphicsConfig) {
|
||||
AccelGraphicsConfig agc = (AccelGraphicsConfig)gc;
|
||||
BufferedContext bc = agc.getContext();
|
||||
if (bc != null) {
|
||||
rq = bc.getRenderQueue();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rq != null) {
|
||||
rq.lock();
|
||||
try {
|
||||
rq.flushAndInvokeNow(new Runnable() {
|
||||
public void run() {
|
||||
doDispose(disposer);
|
||||
}
|
||||
});
|
||||
} finally {
|
||||
rq.unlock();
|
||||
}
|
||||
} else {
|
||||
doDispose(disposer);
|
||||
}
|
||||
}
|
||||
|
||||
static native void freeIntPointer(int ptr);
|
||||
static native void freeLongPointer(long ptr);
|
||||
private static native void freeIntMemory(int[] glyphPtrs, long pContext);
|
||||
|
41
jdk/src/share/classes/sun/java2d/DestSurfaceProvider.java
Normal file
41
jdk/src/share/classes/sun/java2d/DestSurfaceProvider.java
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package sun.java2d;
|
||||
|
||||
import sun.java2d.pipe.hw.*;
|
||||
|
||||
/**
|
||||
* Classes implementing this interface provide access to their
|
||||
* destination surfaces.
|
||||
*/
|
||||
public interface DestSurfaceProvider {
|
||||
/**
|
||||
* Returns a surface currently used as a destination surface for rendering.
|
||||
*
|
||||
* @return destination surface
|
||||
*/
|
||||
public Surface getDestSurface();
|
||||
}
|
@ -41,24 +41,17 @@ import java.awt.image.renderable.RenderableImage;
|
||||
import java.awt.image.renderable.RenderContext;
|
||||
import java.awt.image.AffineTransformOp;
|
||||
import java.awt.image.Raster;
|
||||
import java.awt.image.SampleModel;
|
||||
import java.awt.image.VolatileImage;
|
||||
import java.awt.image.WritableRaster;
|
||||
import java.awt.Image;
|
||||
import java.awt.Composite;
|
||||
import java.awt.Color;
|
||||
import java.awt.color.ColorSpace;
|
||||
import java.awt.image.DataBuffer;
|
||||
import java.awt.image.ColorModel;
|
||||
import java.awt.image.IndexColorModel;
|
||||
import java.awt.image.DirectColorModel;
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.Paint;
|
||||
import java.awt.GradientPaint;
|
||||
import java.awt.LinearGradientPaint;
|
||||
import java.awt.RadialGradientPaint;
|
||||
import java.awt.TexturePaint;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.awt.geom.PathIterator;
|
||||
import java.awt.geom.GeneralPath;
|
||||
@ -69,19 +62,16 @@ import java.awt.Rectangle;
|
||||
import java.text.AttributedCharacterIterator;
|
||||
import java.awt.Font;
|
||||
import java.awt.image.ImageObserver;
|
||||
import java.awt.image.ColorConvertOp;
|
||||
import java.awt.Transparency;
|
||||
import java.awt.font.GlyphVector;
|
||||
import java.awt.font.TextLayout;
|
||||
import sun.font.FontDesignMetrics;
|
||||
import sun.font.StandardGlyphVector;
|
||||
import sun.java2d.pipe.PixelDrawPipe;
|
||||
import sun.java2d.pipe.PixelFillPipe;
|
||||
import sun.java2d.pipe.ShapeDrawPipe;
|
||||
import sun.java2d.pipe.ValidatePipe;
|
||||
import sun.java2d.pipe.ShapeSpanIterator;
|
||||
import sun.java2d.pipe.Region;
|
||||
import sun.java2d.pipe.RegionIterator;
|
||||
import sun.java2d.pipe.TextPipe;
|
||||
import sun.java2d.pipe.DrawImagePipe;
|
||||
import sun.java2d.pipe.LoopPipe;
|
||||
@ -90,7 +80,6 @@ import sun.java2d.loops.RenderLoops;
|
||||
import sun.java2d.loops.CompositeType;
|
||||
import sun.java2d.loops.SurfaceType;
|
||||
import sun.java2d.loops.Blit;
|
||||
import sun.java2d.loops.BlitBg;
|
||||
import sun.java2d.loops.MaskFill;
|
||||
import sun.font.FontManager;
|
||||
import java.awt.font.FontRenderContext;
|
||||
@ -99,7 +88,7 @@ import sun.awt.ConstrainableGraphics;
|
||||
import sun.awt.SunHints;
|
||||
import java.util.Map;
|
||||
import java.util.Iterator;
|
||||
import sun.awt.image.OffScreenImage;
|
||||
import sun.java2d.DestSurfaceProvider;
|
||||
import sun.misc.PerformanceLogger;
|
||||
|
||||
/**
|
||||
@ -113,7 +102,7 @@ import sun.misc.PerformanceLogger;
|
||||
*/
|
||||
public final class SunGraphics2D
|
||||
extends Graphics2D
|
||||
implements ConstrainableGraphics, Cloneable
|
||||
implements ConstrainableGraphics, Cloneable, DestSurfaceProvider
|
||||
{
|
||||
/*
|
||||
* Attribute States
|
||||
@ -3306,4 +3295,14 @@ public final class SunGraphics2D
|
||||
public Object getDestination() {
|
||||
return surfaceData.getDestination();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @see sun.java2d.DestSurfaceProvider#getDestSurface
|
||||
*/
|
||||
@Override
|
||||
public Surface getDestSurface() {
|
||||
return surfaceData;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 1997-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
|
||||
@ -36,6 +36,7 @@ import java.awt.Rectangle;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.font.TextAttribute;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.peer.ComponentPeer;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
@ -78,6 +79,7 @@ public abstract class SunGraphicsEnvironment extends GraphicsEnvironment
|
||||
|
||||
public static boolean isLinux;
|
||||
public static boolean isSolaris;
|
||||
public static boolean isOpenSolaris;
|
||||
public static boolean isWindows;
|
||||
public static boolean noType1Font;
|
||||
private static Font defaultFont;
|
||||
@ -167,6 +169,23 @@ public abstract class SunGraphicsEnvironment extends GraphicsEnvironment
|
||||
isLinux = true;
|
||||
} else if ("SunOS".equals(osName)) {
|
||||
isSolaris = true;
|
||||
String version = System.getProperty("os.version", "0.0");
|
||||
try {
|
||||
float ver = Float.parseFloat(version);
|
||||
if (ver > 5.10f) {
|
||||
File f = new File("/etc/release");
|
||||
FileInputStream fis = new FileInputStream(f);
|
||||
InputStreamReader isr
|
||||
= new InputStreamReader(fis, "ISO-8859-1");
|
||||
BufferedReader br = new BufferedReader(isr);
|
||||
String line = br.readLine();
|
||||
if (line.indexOf("OpenSolaris") >= 0) {
|
||||
isOpenSolaris = true;
|
||||
}
|
||||
fis.close();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
} else if ("Windows".equals(osName)) {
|
||||
isWindows = true;
|
||||
}
|
||||
@ -174,11 +193,7 @@ public abstract class SunGraphicsEnvironment extends GraphicsEnvironment
|
||||
noType1Font = "true".
|
||||
equals(System.getProperty("sun.java2d.noType1Font"));
|
||||
|
||||
if (isOpenJDK()) {
|
||||
String[] fontInfo = FontManager.getDefaultPlatformFont();
|
||||
defaultFontName = fontInfo[0];
|
||||
defaultFontFileName = fontInfo[1];
|
||||
} else {
|
||||
if (!isOpenJDK()) {
|
||||
defaultFontName = lucidaFontName;
|
||||
if (useAbsoluteFontFileNames()) {
|
||||
defaultFontFileName =
|
||||
@ -244,6 +259,11 @@ public abstract class SunGraphicsEnvironment extends GraphicsEnvironment
|
||||
* that might be specified.
|
||||
*/
|
||||
fontConfig = createFontConfiguration();
|
||||
if (isOpenJDK()) {
|
||||
String[] fontInfo = FontManager.getDefaultPlatformFont();
|
||||
defaultFontName = fontInfo[0];
|
||||
defaultFontFileName = fontInfo[1];
|
||||
}
|
||||
getPlatformFontPathFromFontConfig();
|
||||
|
||||
String extraFontPath = fontConfig.getExtraFontPath();
|
||||
@ -1069,7 +1089,7 @@ public abstract class SunGraphicsEnvironment extends GraphicsEnvironment
|
||||
String fontFileName =
|
||||
getFileNameFromPlatformName(platformFontName);
|
||||
String[] nativeNames = null;
|
||||
if (fontFileName == null) {
|
||||
if (fontFileName == null || fontFileName.equals(platformFontName)){
|
||||
/* No file located, so register using the platform name,
|
||||
* i.e. as a native font.
|
||||
*/
|
||||
@ -1294,4 +1314,18 @@ public abstract class SunGraphicsEnvironment extends GraphicsEnvironment
|
||||
/*
|
||||
* ----END DISPLAY CHANGE SUPPORT----
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns true if FlipBufferStrategy with COPIED buffer contents
|
||||
* is preferred for this peer's GraphicsConfiguration over
|
||||
* BlitBufferStrategy, false otherwise.
|
||||
*
|
||||
* The reason FlipBS could be preferred is that in some configurations
|
||||
* an accelerated copy to the screen is supported (like Direct3D 9)
|
||||
*
|
||||
* @return true if flip strategy should be used, false otherwise
|
||||
*/
|
||||
public boolean isFlipStrategyPreferred(ComponentPeer peer) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
34
jdk/src/share/classes/sun/java2d/Surface.java
Normal file
34
jdk/src/share/classes/sun/java2d/Surface.java
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package sun.java2d;
|
||||
|
||||
/**
|
||||
* This is a tag interface for a surface.
|
||||
* @see sun.java2d.SurfaceData
|
||||
* @see sun.java2d.pipe.hw.AccelSurface
|
||||
*/
|
||||
public interface Surface {
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 1999-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
|
||||
@ -93,7 +93,7 @@ import sun.awt.image.SurfaceManager;
|
||||
* retrieved the tracker.
|
||||
*/
|
||||
public abstract class SurfaceData
|
||||
implements Transparency, DisposerTarget, StateTrackable
|
||||
implements Transparency, DisposerTarget, StateTrackable, Surface
|
||||
{
|
||||
private long pData;
|
||||
private boolean valid;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* 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
|
||||
@ -521,7 +521,7 @@ public abstract class SurfaceDataProxy
|
||||
CompositeType.SrcNoEa,
|
||||
dstType);
|
||||
blitbg.BlitBg(srcData, dstData,
|
||||
AlphaComposite.Src, null, bgColor,
|
||||
AlphaComposite.Src, null, bgColor.getRGB(),
|
||||
0, 0, 0, 0, w, h);
|
||||
dstData.markDirty();
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1999-2004 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 1999-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
|
||||
@ -109,7 +109,7 @@ public class BlitBg extends GraphicsPrimitive
|
||||
*/
|
||||
public native void BlitBg(SurfaceData src, SurfaceData dst,
|
||||
Composite comp, Region clip,
|
||||
Color bgColor,
|
||||
int bgColor,
|
||||
int srcx, int srcy,
|
||||
int dstx, int dsty,
|
||||
int width, int height);
|
||||
@ -142,19 +142,19 @@ public class BlitBg extends GraphicsPrimitive
|
||||
compositeType = comptype;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void BlitBg(SurfaceData srcData,
|
||||
SurfaceData dstData,
|
||||
Composite comp,
|
||||
Region clip,
|
||||
Color bgColor,
|
||||
int bgArgb,
|
||||
int srcx, int srcy,
|
||||
int dstx, int dsty,
|
||||
int width, int height)
|
||||
{
|
||||
ColorModel dstModel = dstData.getColorModel();
|
||||
if (!dstModel.hasAlpha() &&
|
||||
bgColor.getTransparency() != Transparency.OPAQUE)
|
||||
{
|
||||
boolean bgHasAlpha = (bgArgb >>> 24) != 0xff;
|
||||
if (!dstModel.hasAlpha() && bgHasAlpha) {
|
||||
dstModel = ColorModel.getRGBdefault();
|
||||
}
|
||||
WritableRaster wr =
|
||||
@ -163,6 +163,7 @@ public class BlitBg extends GraphicsPrimitive
|
||||
BufferedImage bimg =
|
||||
new BufferedImage(dstModel, wr, isPremult, null);
|
||||
SurfaceData tmpData = BufImgSurfaceData.createData(bimg);
|
||||
Color bgColor = new Color(bgArgb, bgHasAlpha);
|
||||
SunGraphics2D sg2d = new SunGraphics2D(tmpData, bgColor, bgColor,
|
||||
defaultFont);
|
||||
FillRect fillop = FillRect.locate(SurfaceType.AnyColor,
|
||||
@ -201,9 +202,10 @@ public class BlitBg extends GraphicsPrimitive
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void BlitBg(SurfaceData src, SurfaceData dst,
|
||||
Composite comp, Region clip,
|
||||
Color bgColor,
|
||||
int bgColor,
|
||||
int srcx, int srcy, int dstx, int dsty,
|
||||
int width, int height)
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 1998-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
|
||||
@ -159,6 +159,10 @@ public final class GeneralRenderer {
|
||||
{
|
||||
int mx, my, x1, y1;
|
||||
int[] tmp = null;
|
||||
|
||||
if (nPoints <= 0) {
|
||||
return;
|
||||
}
|
||||
mx = x1 = xPoints[off] + transx;
|
||||
my = y1 = yPoints[off] + transy;
|
||||
while (--nPoints > 0) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* 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
|
||||
@ -35,6 +35,7 @@ import sun.java2d.SunGraphics2D;
|
||||
import sun.java2d.SurfaceData;
|
||||
import sun.java2d.loops.CompositeType;
|
||||
import sun.java2d.pipe.BufferedBufImgOps;
|
||||
import static sun.java2d.opengl.OGLContext.OGLContextCaps.*;
|
||||
|
||||
class OGLBufImgOps extends BufferedBufImgOps {
|
||||
|
||||
@ -94,7 +95,7 @@ class OGLBufImgOps extends BufferedBufImgOps {
|
||||
OGLSurfaceData oglSrc = (OGLSurfaceData)srcData;
|
||||
OGLGraphicsConfig gc = oglSrc.getOGLGraphicsConfig();
|
||||
if (oglSrc.getType() != OGLSurfaceData.TEXTURE ||
|
||||
!gc.isCapPresent(OGLContext.CAPS_EXT_BIOP_SHADER))
|
||||
!gc.isCapPresent(CAPS_EXT_BIOP_SHADER))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user