提交 86472dee 编写于 作者: M mullan

Merge

......@@ -182,3 +182,5 @@ e8569a473cee7f4955bd9e76a9bdf6c6a07ced27 jdk8-b52
d94613ac03d8de375ef60493e2bb76dbd30d875d jdk8-b58
abad1f417bd3df4296631fc943cd3b7f5062c88a jdk8-b59
cec8fa02f15634acd7d02d04b0b2d8c044cdbaaa jdk8-b60
61ddb3fd000a09ab05bff1940b0ac211661e94cf jdk8-b61
50b8b17449d200c66bfd68fb4f3a9197432c9e2b jdk8-b62
......@@ -2,11 +2,11 @@ DO NOT TRANSLATE OR LOCALIZE.
-----------------------------
%% This notice is provided with respect to ASM Bytecode Manipulation
Framework v3.1, which is included with JRE 7, JDK 7, and OpenJDK 7.
Framework v4.0, which is included with JRE 8, and JDK 8.
--- begin of LICENSE ---
Copyright (c) 2000-2005 INRIA, France Telecom
Copyright (c) 2000-2011 France Télécom
All rights reserved.
Redistribution and use in source and binary forms, with or without
......
......@@ -233,7 +233,7 @@ import_product:
all build:: sanity-all post-sanity-all
SUBDIRS = tools java javax sun com
SUBDIRS = tools java javax sun com jdk
ifeq ($(PLATFORM), macosx)
SUBDIRS += apple
endif
......
......@@ -198,9 +198,9 @@ ifndef OPENJDK
#
# Build ucrypto.jar.
#
$(UNSIGNED_DIR)/ucrypto.jar: build
$(UNSIGNED_DIR)/ucrypto.jar: build $(JCE_MANIFEST_FILE)
$(prep-target)
$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
$(BOOT_JAR_JFLAGS)
@$(java-vm-cleanup)
......
......@@ -94,9 +94,9 @@ ifeq ($(PLATFORM), windows)
LDOUTPUT = -Fe
# JDK name required here
RC_FLAGS += /D "JDK_FNAME=$(PGRM).exe" \
/D "JDK_INTERNAL_NAME=$(PGRM)" \
/D "JDK_FTYPE=0x1L"
RC_FLAGS += -D "JDK_FNAME=$(PGRM).exe" \
-D "JDK_INTERNAL_NAME=$(PGRM)" \
-D "JDK_FTYPE=0x1L"
RES = $(OBJDIR)/$(PGRM).res
else
......@@ -161,7 +161,7 @@ $(UNPACK_EXE): $(UNPACK_EXE_FILES_o) updatefiles winres
$(CP) mapfile-vers-unpack200 $(TEMPDIR)/mapfile-vers
$(LINKER) $(LDDFLAGS) $(sort $(UNPACK_EXE_FILES_o)) $(RES) $(LIBCXX) $(LDOUTPUT)$(TEMPDIR)/unpack200$(EXE_SUFFIX)
ifdef MT
$(MT) /manifest $(OBJDIR)/unpack200$(EXE_SUFFIX).manifest /outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1
$(MT) -manifest $(OBJDIR)/unpack200$(EXE_SUFFIX).manifest -outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1
endif
$(CP) $(TEMPDIR)/unpack200$(EXE_SUFFIX) $(UNPACK_EXE)
@$(call binary_file_verification,$@)
......
......@@ -78,7 +78,7 @@ ifeq ($(COMPILER_VERSION), VS2010)
MS_RUNTIME_LIBRARIES = $(MSVCRNN_DLL)
endif
EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH)
EXTRA_LFLAGS += -LIBPATH:$(DXSDK_LIB_PATH)
# Full Debug Symbols has been enabled on Windows since JDK1.4.1.
# The Full Debug Symbols (FDS) default for VARIANT == OPT builds is
......@@ -198,7 +198,7 @@ CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
# -MTd Use static debug version (better than -MDd, no runtime issues)
# -D_DEBUG Change use of malloc/free/etc to use special debug ones (-MTd)
#
# NOTE: We also will use /D _STATIC_CPPLIB so we don't need msvcpnn.dll
# NOTE: We also will use -D _STATIC_CPPLIB so we don't need msvcpnn.dll
#
# If MS_RUNTIME_STATIC is requested we may have a problem, it is no longer
# supported by VS2010
......@@ -223,12 +223,12 @@ ifeq ($(MFC_DEBUG), true)
endif
# Always add _STATIC_CPPLIB definition
STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB
STATIC_CPPLIB_OPTION = -D _STATIC_CPPLIB
# Silence the warning about using _STATIC_CPPLIB
ifneq ($(SHOW_ALL_WARNINGS),true)
# Needed with VS2010 to turn off the deprecated warning.
STATIC_CPPLIB_OPTION += /D _DISABLE_DEPRECATE_STATIC_CPPLIB
STATIC_CPPLIB_OPTION += -D _DISABLE_DEPRECATE_STATIC_CPPLIB
endif
MS_RUNTIME_OPTION += $(STATIC_CPPLIB_OPTION)
......@@ -242,7 +242,7 @@ ifeq ($(CC_VERSION),msvc)
# -Od Turns off optimization and speeds compilation
# -YX -Fp/.../foobar.pch Use precompiled headers (try someday?)
# -nologo Don't print out startup message
# /D _STATIC_CPPLIB
# -D _STATIC_CPPLIB
# Use static link for the C++ runtime (so msvcpnn.dll not needed)
#
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
......@@ -258,12 +258,12 @@ ifeq ($(CC_VERSION),msvc)
CFLAGS_COMMON += $(MS_RUNTIME_OPTION) $(CFLAGS_$(COMPILER_VERSION))
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
LDEBUG = /debug
LDEBUG = -debug
endif
ifeq ($(VTUNE_SUPPORT), true)
OTHER_CFLAGS = -Z7 -Ox
LDEBUG += /pdb:NONE
LDEBUG += -pdb:NONE
endif
# VS2010, always need safe exception handlers, not needed on 64bit
......@@ -272,7 +272,7 @@ ifeq ($(CC_VERSION),msvc)
endif
# LFLAGS are the flags given to $(LINK) and used to build the actual DLL file
BASELFLAGS = -nologo /opt:REF /incremental:no
BASELFLAGS = -nologo -opt:REF -incremental:no
LFLAGS = $(BASELFLAGS) $(LDEBUG) $(EXTRA_LFLAGS) $(LFLAGS_$(COMPILER_VERSION))
LDDFLAGS += $(LFLAGS_$(COMPILER_VERSION))
......@@ -404,7 +404,7 @@ else
JDK_UPDATE_VER := 0
endif
RC_FLAGS = /l 0x409 /r
RC_FLAGS = -l 0x409 -r
ifeq ($(VARIANT), OPT)
RC_FLAGS += -d NDEBUG
......
......@@ -292,9 +292,9 @@ endif
ifeq ($(PLATFORM),windows)
# JDK name required here
RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
/D "JDK_INTERNAL_NAME=$(LIBRARY)" \
/D "JDK_FTYPE=0x2L"
RC_FLAGS += -D "JDK_FNAME=$(LIBRARY).dll" \
-D "JDK_INTERNAL_NAME=$(LIBRARY)" \
-D "JDK_FTYPE=0x2L"
endif
# Native library building
......
......@@ -206,9 +206,9 @@ endif
@$(ECHO) Created $@
# JDK name required here
RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
/D "JDK_INTERNAL_NAME=$(LIBRARY)" \
/D "JDK_FTYPE=0x2L"
RC_FLAGS += -D "JDK_FNAME=$(LIBRARY).dll" \
-D "JDK_INTERNAL_NAME=$(LIBRARY)" \
-D "JDK_FTYPE=0x2L"
$(OBJDIR)/$(LIBRARY).res: $(VERSIONINFO_RESOURCE)
ifndef LOCAL_RESOURCE_FILE
......
......@@ -157,9 +157,9 @@ $(ACTUAL_PROGRAM):: classes $(INIT)
#
ifeq ($(PLATFORM), windows)
# JDK name required here
RC_FLAGS += /D "JDK_FNAME=$(PROGRAM)$(EXE_SUFFIX)" \
/D "JDK_INTERNAL_NAME=$(PROGRAM)" \
/D "JDK_FTYPE=0x1L"
RC_FLAGS += -D "JDK_FNAME=$(PROGRAM)$(EXE_SUFFIX)" \
-D "JDK_INTERNAL_NAME=$(PROGRAM)" \
-D "JDK_FTYPE=0x1L"
$(OBJDIR)/$(PROGRAM).res: $(VERSIONINFO_RESOURCE)
@$(prep-target)
......@@ -201,11 +201,11 @@ endif
@$(prep-target)
@set -- $?; \
$(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
$(LINK) -out:$@ /STACK:$(STACK_SIZE) \
$(LINK) -out:$@ -STACK:$(STACK_SIZE) \
$(MAP_OPTION) $(LFLAGS) $(LDFLAGS) \
@$(OBJDIR)/$(PROGRAM).lcf $(LDLIBS)
ifdef MT
$(MT) /manifest $(OBJDIR)/$(PROGRAM).exe.manifest /outputresource:$@;#1
$(MT) -manifest $(OBJDIR)/$(PROGRAM).exe.manifest /outputresource:$@;#1
endif
@$(call binary_file_verification,$@)
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
......
......@@ -784,11 +784,22 @@ initial-image-jre:: initial-image-jre-setup \
$(RT_JAR) $(RESOURCES_JAR) $(JSSE_JAR) $(JFR_JAR) \
$(BUILDMETAINDEX_JARFILE)
@# Copy in bin directory
ifeq ($(USING_MSYS),true)
# No cpio in MinGW/MSYS
$(CD) $(OUTPUTDIR) && $(TAR) -cf - bin | ($(CD) $(JRE_IMAGE_DIR) && $(TAR) -xpf -)
else
$(CD) $(OUTPUTDIR) && $(FIND) bin -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR)
endif
@# CTE plugin security change require new empty directory lib/applet
$(MKDIR) -p $(JRE_IMAGE_DIR)/lib/applet
@# Copy in lib directory
ifeq ($(USING_MSYS),true)
# No cpio in MinGW/MSYS
$(CD) $(OUTPUTDIR) && $(TAR) -cf - lib | ($(CD) $(JRE_IMAGE_DIR) && $(TAR) -xpf -)
else
$(CD) $(OUTPUTDIR) && $(FIND) lib -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR)
endif
ifeq ($(USING_CYGWIN),true)
$(RM) -rf $(JRE_IMAGE_DIR)/[A-Za-z]:
$(RM) -rf $(OUTPUTDIR)/[A-Za-z]:
......@@ -919,11 +930,17 @@ endif
# only places from which we copy everything), but because the presence
# of this file causes cygwin's find to bomb out, thus breaking the build
# in "install".
initial-image-jdk-setup:
$(RM) -r $(JDK_IMAGE_DIR)
$(MKDIR) -p $(JDK_IMAGE_DIR)/jre
ifeq ($(USING_MSYS),true)
($(CD) $(JRE_IMAGE_DIR) && $(TAR) -cf - . \
| ($(CD) $(JDK_IMAGE_DIR)/jre && $(TAR) -xpf -))
else
($(CD) $(JRE_IMAGE_DIR) && $(FIND) . -depth -print \
| $(CPIO) -pdum $(JDK_IMAGE_DIR)/jre )
endif
ifeq ($(USING_CYGWIN),true)
$(RM) -rf $(JRE_IMAGE_DIR)/[A-Za-z]:
$(RM) -rf $(JDK_IMAGE_DIR)/jre/[A-Za-z]:
......
......@@ -64,7 +64,6 @@ sanity-base: pre-sanity \
sane-math_iso \
sane-libCrun \
sane-unixccs_path \
sane-odbcdir \
sane-msdevtools_path \
sane-dxsdk \
sane-compiler \
......
......@@ -206,13 +206,12 @@ MAPFILE_WARNING=$(MAPFILE_WARNING-$(VARIANT))
# libjdgaSUNWffb.so
# libjdgaSUNWm64.so
# libxinerama.so
# The library libJdbcOdbc.so has also been given an exception.
# The JNI/JVMTI demo libraries are also missing mapfiles, no exceptions yet.
ifeq ($(ARCH_FAMILY),sparc)
MAPFILE_EXCEPTIONS = \
(libJdbcOdbc|libjdgaSUNWafb|libjdgaSUNWcg6|libjdgaSUNWffb|libjdgaSUNWm64|libxinerama)
(libjdgaSUNWafb|libjdgaSUNWcg6|libjdgaSUNWffb|libjdgaSUNWm64|libxinerama)
else
MAPFILE_EXCEPTIONS = (libJdbcOdbc)
MAPFILE_EXCEPTIONS = ()
endif
# Macro to check it's input file for banned dependencies and verify the
......
......@@ -169,15 +169,19 @@ CD = cd # intrinsic unix command
ifeq ($(PLATFORM),windows)
ifdef USING_CYGWIN
# Intrinsic unix command, with backslash-escaped character interpretation
ECHO = $(UNIXCOMMAND_PATH)echo -e
ZIPEXE = $(UNIXCOMMAND_PATH)zip
UNZIP = $(UNIXCOMMAND_PATH)unzip
ECHO = $(UNIXCOMMAND_PATH)echo -e
ZIPEXE = $(UNIXCOMMAND_PATH)zip
UNZIP = $(UNIXCOMMAND_PATH)unzip
# Some CYGWIN nawk versions require BINMODE=w for proper '\r' interpretation
NAWK = $(UNIXCOMMAND_PATH)awk -v BINMODE=w
NAWK = $(UNIXCOMMAND_PATH)awk -v BINMODE=w
else
ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
UNZIP = $(UTILS_DEVTOOL_PATH)unzip
NAWK = $(UNIXCOMMAND_PATH)awk
ifdef USING_MSYS
ECHO = $(UTILS_COMMAND_PATH)echo -e
AR = $(UTILS_DEVTOOL_PATH)ar
endif
endif
# Re-define some utilities
LEX =# override GNU Make intrinsic: no lex on windows
......
......@@ -112,6 +112,15 @@ define OptFullPath
$(shell if [ "$1" != "" -a -d "$1" ]; then $(CYGPATH_CMD) "$1" 2> $(DEV_NULL); else echo "$1"; fi)
endef
else
ifdef USING_MSYS
DOSPATH_CMD:=$(shell cd $(JDK_TOPDIR) 2> $(DEV_NULL) && pwd)/make/tools/msys_build_scripts/dospath.sh
define FullPath
$(subst \,/,$(shell $(DOSPATH_CMD) $1))
endef
define OptFullPath
$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
endef
else
# Temporary until we upgrade to MKS 8.7, MKS pwd returns mixed mode path
define FullPath
$(shell cd $1 2> $(DEV_NULL) && pwd)
......@@ -120,6 +129,7 @@ define OptFullPath
$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
endef
endif
endif
# System drive
ifdef SYSTEMDRIVE
......@@ -146,43 +156,47 @@ else
ifdef USING_CYGWIN
UNIXCOMMAND_PATH :=$(call PrefixPath,/usr/bin)
else
ifdef ROOTDIR
xROOTDIR :="$(subst \,/,$(ROOTDIR))"
_rootdir :=$(call FullPath,$(xROOTDIR))
ifdef USING_MSYS
UNIXCOMMAND_PATH :=$(call PrefixPath,/bin)
else
xROOTDIR :="$(_system_drive)/mksnt"
_rootdir :=$(call FullPath,$(xROOTDIR))
endif
ifneq ($(_rootdir),)
UNIXCOMMAND_PATH :=$(call PrefixPath,$(_rootdir)/mksnt)
endif
endif
ifdef ROOTDIR
xROOTDIR :="$(subst \,/,$(ROOTDIR))"
_rootdir :=$(call FullPath,$(xROOTDIR))
else
xROOTDIR :="$(_system_drive)/mksnt"
_rootdir :=$(call FullPath,$(xROOTDIR))
endif
ifneq ($(_rootdir),)
UNIXCOMMAND_PATH :=$(call PrefixPath,$(_rootdir)/mksnt)
endif
endif # USING_MSYS
endif # USING_CYGWIN
endif
UNIXCOMMAND_PATH:=$(call AltCheckSpaces,UNIXCOMMAND_PATH)
# Get version of MKS or CYGWIN
ifndef USING_CYGWIN
_MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@')
MKS_VER :=$(call GetVersion,$(_MKS_VER))
# At this point, we can re-define FullPath to use DOSNAME_CMD
CHECK_MKS87:=$(call CheckVersions,$(MKS_VER),8.7)
TRY_DOSNAME:=false
ifeq ($(CHECK_MKS87),same)
TRY_DOSNAME:=true
endif
# Newer should be ok
ifeq ($(CHECK_MKS87),newer)
TRY_DOSNAME:=true
endif
ifeq ($(TRY_DOSNAME),true)
ifeq ($(shell $(UNIXCOMMAND_PATH)dosname -s $(_system_drive)/ 2> $(DEV_NULL)),$(_system_drive)/)
_DOSNAME=$(UNIXCOMMAND_PATH)dosname
DOSNAME_CMD:=$(_DOSNAME) -s
ifdef USING_MKS
_MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@')
MKS_VER :=$(call GetVersion,$(_MKS_VER))
# At this point, we can re-define FullPath to use DOSNAME_CMD
CHECK_MKS87:=$(call CheckVersions,$(MKS_VER),8.7)
TRY_DOSNAME:=false
ifeq ($(CHECK_MKS87),same)
TRY_DOSNAME:=true
endif
# Newer should be ok
ifeq ($(CHECK_MKS87),newer)
TRY_DOSNAME:=true
endif
ifeq ($(TRY_DOSNAME),true)
ifeq ($(shell $(UNIXCOMMAND_PATH)dosname -s $(_system_drive)/ 2> $(DEV_NULL)),$(_system_drive)/)
_DOSNAME=$(UNIXCOMMAND_PATH)dosname
DOSNAME_CMD:=$(_DOSNAME) -s
define FullPath
$(subst //,/,$(shell echo $1 | $(DOSNAME_CMD) 2> $(DEV_NULL)))
endef
endif # test dosname -s
endif # TRY_DOSNAME
endif # test dosname -s
endif # TRY_DOSNAME
endif # MKS
# We try to get references to what we need via the default component
......@@ -440,10 +454,14 @@ else
ifdef USING_CYGWIN
DEVTOOLS_PATH :=$(UNIXCOMMAND_PATH)
else
xDEVTOOLS_PATH :="$(_system_drive)/utils"
fxDEVTOOLS_PATH :=$(call FullPath,$(xDEVTOOLS_PATH))
DEVTOOLS_PATH :=$(call PrefixPath,$(fxDEVTOOLS_PATH))
endif
ifdef USING_MSYS
DEVTOOLS_PATH :=$(UNIXCOMMAND_PATH)
else
xDEVTOOLS_PATH :="$(_system_drive)/utils"
fxDEVTOOLS_PATH :=$(call FullPath,$(xDEVTOOLS_PATH))
DEVTOOLS_PATH :=$(call PrefixPath,$(fxDEVTOOLS_PATH))
endif # USING_MSYS
endif # USING_CYGWIN
endif
DEVTOOLS_PATH:=$(call AltCheckSpaces,DEVTOOLS_PATH)
......@@ -636,7 +654,7 @@ HOTSPOT_LIB_PATH:=$(call AltCheckValue,HOTSPOT_LIB_PATH)
# Special define for checking the binaries
# All windows dll and exe files should have been built with /NXCOMPAT
# All windows dll and exe files should have been built with -NXCOMPAT
# and be setup for dynamic base addresses.
# In addition, we should not be dependent on certain dll files that
# we do not or cannot redistribute.
......@@ -648,37 +666,37 @@ else
BANNED_DLLS=msvcp100[.]dll|msvcr100d[.]dll|msvcrtd[.]dll
endif
# Check for /safeseh (only used on 32bit)
# Check for -safeseh (only used on 32bit)
define binary_file_safeseh_verification # binary_file
( \
$(ECHO) "Checking for /SAFESEH usage in: $1" && \
if [ "`$(DUMPBIN) /loadconfig $1 | $(EGREP) -i 'Safe Exception Handler Table'`" = "" ] ; then \
$(ECHO) "Checking for -SAFESEH usage in: $1" && \
if [ "`$(DUMPBIN) -loadconfig $1 | $(EGREP) -i 'Safe Exception Handler Table'`" = "" ] ; then \
$(ECHO) "ERROR: Did not find 'Safe Exception Handler Table' in loadconfig: $1" ; \
$(DUMPBIN) /loadconfig $1 ; \
$(DUMPBIN) -loadconfig $1 ; \
exit 6 ; \
fi ; \
)
endef
# Check for /NXCOMPAT usage
# Check for -NXCOMPAT usage
define binary_file_nxcompat_verification # binary_file
( \
$(ECHO) "Checking for /NXCOMPAT usage in: $1" && \
if [ "`$(DUMPBIN) /headers $1 | $(EGREP) -i 'NX compatible'`" = "" ] ; then \
$(ECHO) "Checking for -NXCOMPAT usage in: $1" && \
if [ "`$(DUMPBIN) -headers $1 | $(EGREP) -i 'NX compatible'`" = "" ] ; then \
$(ECHO) "ERROR: Did not find 'NX compatible' in headers: $1" ; \
$(DUMPBIN) /headers $1 ; \
$(DUMPBIN) -headers $1 ; \
exit 7 ; \
fi ; \
)
endef
# Check for /DYNAMICBASE usage
# Check for -DYNAMICBASE usage
define binary_file_dynamicbase_verification # binary_file
( \
$(ECHO) "Checking for /DYNAMICBASE usage in: $1" && \
if [ "`$(DUMPBIN) /headers $1 | $(EGREP) -i 'Dynamic base'`" = "" ] ; then \
$(ECHO) "Checking for -DYNAMICBASE usage in: $1" && \
if [ "`$(DUMPBIN) -headers $1 | $(EGREP) -i 'Dynamic base'`" = "" ] ; then \
$(ECHO) "ERROR: Did not find 'Dynamic base' in headers: $1" ; \
$(DUMPBIN) /headers $1 ; \
$(DUMPBIN) -headers $1 ; \
exit 8 ; \
fi ; \
)
......@@ -688,9 +706,9 @@ endef
define binary_file_dll_verification # binary_file
( \
$(ECHO) "Checking for banned dependencies in: $1" && \
if [ "`$(DUMPBIN) /dependents $1 | $(EGREP) -i '$(BANNED_DLLS)'`" != "" ] ; then \
if [ "`$(DUMPBIN) -dependents $1 | $(EGREP) -i '$(BANNED_DLLS)'`" != "" ] ; then \
$(ECHO) "ERROR: Found use of $(BANNED_DLLS)"; \
$(DUMPBIN) /dependents $1 ; \
$(DUMPBIN) -dependents $1 ; \
exit 9 ; \
fi ; \
)
......
......@@ -70,6 +70,8 @@ PLATFORM_SHARED=done
# LIBARCH32 solaris only: sparc or i386
# LIBARCH64 solaris only: sparcv9 or amd64
# USING_CYGWIN windows only: true or false
# USING_MSYS windows only: true or false
# USING_MKS windows only: true or false
# ISHIELD_TEMP_MIN windows only: minimum disk space in temp area
# Only run uname once in this make session.
......@@ -306,6 +308,8 @@ endif
# Windows with and without CYGWIN will be slightly different
ifeq ($(SYSTEM_UNAME), Windows_NT)
PLATFORM = windows
USING_MKS = true
export USING_MKS
endif
ifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
PLATFORM = windows
......@@ -318,6 +322,11 @@ ifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
export CYGWIN_HOME
endif
endif
ifneq (,$(findstring MINGW,$(SYSTEM_UNAME)))
PLATFORM = windows
USING_MSYS = true
export USING_MSYS
endif
# Platform settings specific to Windows
ifeq ($(PLATFORM), windows)
......@@ -395,11 +404,12 @@ ifeq ($(PLATFORM), windows)
endif
ARCH_FAMILY = $(ARCH)
# Where is unwanted output to be delivered?
# MKS uses the special file "NUL", cygwin uses the customary unix file.
ifeq ($(USING_CYGWIN),true)
DEV_NULL = /dev/null
else
# MKS uses the special file "NUL"; Cygwin and MinGW/MSYS use the
# customary unix file.
ifeq ($(USING_MKS),true)
DEV_NULL = NUL
else
DEV_NULL = /dev/null
endif
export DEV_NULL
# Classpath separator
......@@ -440,28 +450,11 @@ ifeq ($(PLATFORM), windows)
_MB_OF_MEMORY := \
$(shell free -m | grep Mem: | awk '{print $$2;}' )
else
# Windows 2000 has the mem utility, but two memory areas
# extended memory is what is beyond 1024M
_B_OF_EXT_MEMORY := \
$(shell mem 2> $(DEV_NULL) | \
grep 'total contiguous extended memory' | awk '{print $$1;}')
ifeq ($(_B_OF_EXT_MEMORY),)
_B_OF_MEMORY := \
$(shell mem 2> $(DEV_NULL) | \
grep 'total conventional memory' | awk '{print $$1;}')
else
_B_OF_MEMORY := \
$(shell expr 1048576 '+' $(_B_OF_EXT_MEMORY) 2> $(DEV_NULL))
endif
ifeq ($(_B_OF_MEMORY),)
# Windows 2003 has the systeminfo utility use it if mem doesn't work
_MB_OF_MEMORY := \
$(shell systeminfo 2> $(DEV_NULL) | \
grep 'Total Physical Memory:' | \
awk '{print $$4;}' | sed -e 's@,@@')
else
_MB_OF_MEMORY := $(shell expr $(_B_OF_MEMORY) '/' 1024 2> $(DEV_NULL))
endif
# Windows XP and higher has the systeminfo utility
_MB_OF_MEMORY := \
$(shell systeminfo 2> $(DEV_NULL) | \
grep 'Total Physical Memory:' | \
awk '{print $$4;}' | sed -e 's@,@@')
endif
ifeq ($(shell expr $(_MB_OF_MEMORY) '+' 0 2> $(DEV_NULL)), $(_MB_OF_MEMORY))
MB_OF_MEMORY := $(_MB_OF_MEMORY)
......
......@@ -182,8 +182,13 @@ ifeq ($(PLATFORM),windows)
ALL_SETTINGS+=$(call addRequiredVersionSetting,CYGWIN_VER)
ALL_SETTINGS+=$(call addRequiredSetting,CYGPATH_CMD)
else
ALL_SETTINGS+=$(call addRequiredVersionSetting,MKS_VER)
ALL_SETTINGS+=$(call addOptionalSetting,DOSNAME_CMD)
ifdef USING_MSYS
ALL_SETTINGS+=$(call addRequiredSetting,USING_MSYS)
ALL_SETTINGS+=$(call addRequiredSetting,DOSPATH_CMD)
else
ALL_SETTINGS+=$(call addRequiredVersionSetting,MKS_VER)
ALL_SETTINGS+=$(call addOptionalSetting,DOSNAME_CMD)
endif
endif
endif
ifeq ($(PLATFORM),linux)
......
......@@ -208,7 +208,6 @@ include $(JDK_MAKE_SHARED_DIR)/Sanity-Settings.gmk
sane-docs_import \
sane-math_iso \
sane-libCrun \
sane-odbcdir \
sane-msdevtools_path \
sane-hotspot_binaries \
sane-hotspot_import \
......@@ -395,7 +394,7 @@ endif
ifeq ($(PLATFORM), windows)
MKS_CHECK :=$(call CheckVersions,$(MKS_VER),$(REQUIRED_MKS_VER))
sane-mks:
ifndef USING_CYGWIN
ifdef USING_MKS
ifeq ($(MKS_CHECK),missing)
@$(call OfficialErrorMessage,MKS version,$(MKS_VER),$(REQUIRED_MKS_VER))
endif
......@@ -905,14 +904,25 @@ sane-unixcommand_path:
"" >> $(ERROR_FILE) ; \
fi
ifeq ($(PLATFORM), windows)
@for utility in cpio ar file m4 ; do \
ifeq ($(USING_MSYS), true)
@for utility in $(AR) $(FILE) $(M4) ; do \
if [ ! -r "`$(WHICH) $${utility}`" ]; then \
$(ECHO) "WARNING: You do not have the utility $${utility} in the \n" \
" directory $(UNIXCOMMAND_PATH). \n" \
" The utilities cpio, ar, file, and m4 are required. \n" \
" The utilities ar, file and m4 are required. \n" \
"" >> $(WARNING_FILE) ; \
fi; \
done
else
@for utility in $(AR) $(CPIO) $(FILE) $(M4) ; do \
if [ ! -r "`$(WHICH) $${utility}`" ]; then \
$(ECHO) "WARNING: You do not have the utility $${utility} in the \n" \
" directory $(UNIXCOMMAND_PATH). \n" \
" The utilities ar, cpio, file and m4 are required. \n" \
"" >> $(WARNING_FILE) ; \
fi; \
done
endif
endif
######################################################
......@@ -999,7 +1009,8 @@ ifeq ($(PLATFORM), windows)
" This is normally obtained from the WINDOWSSDKDIR." \
"" >> $(ERROR_FILE)
endif
ifeq ($(wildcard $(DUMPBIN)),)
# MinGW/MSYS make 3.81 will not tolerate a path with a quoted substring
ifeq ($(wildcard $(subst ",,$(DUMPBIN))),)
@$(ECHO) "ERROR: Cannot find the DUMPBIN utility from path: $(DUMPBIN)\n" \
" This is normally obtained from the COMPILER_PATH." \
"" >> $(ERROR_FILE)
......
#
# Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1997, 2012, Oracle and/or its affiliates. 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
......@@ -66,6 +66,7 @@ FILES_export = \
java/util/prefs/FileSystemPreferences.java \
java/io/Console.java \
java/io/FileDescriptor.java \
java/io/DefaultFileSystem.java \
java/io/InputStream.java \
java/io/FileInputStream.java \
java/io/FileOutputStream.java \
......@@ -142,6 +143,7 @@ FILES_export = \
java/io/Console.java \
java/io/FileSystem.java \
java/io/FileDescriptor.java \
java/io/DefaultFileSystem.java \
java/io/InputStream.java \
java/io/FileInputStream.java \
java/io/FileOutputStream.java \
......
#
# Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1996, 2012, Oracle and/or its affiliates. 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
......@@ -32,7 +32,6 @@ FILES_c = \
Compiler.c \
Console_md.c \
Double.c \
FileSystem_md.c \
FileDescriptor_md.c \
FileInputStream.c \
FileInputStream_md.c \
......
#
# Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1996, 2012, Oracle and/or its affiliates. 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
......@@ -438,6 +438,7 @@ JAVA_JAVA_java = \
java/io/File.java \
java/io/FileSystem.java \
java/io/FileDescriptor.java \
java/io/DefaultFileSystem.java \
java/io/FilenameFilter.java \
java/io/FileFilter.java \
java/io/FilePermission.java \
......
......@@ -38,31 +38,31 @@ FILES_compiled_properties_orig := $(FILES_compiled_properties)
# only FILES_java and FILES_compiled_properties variables will be picked up
#
# $(BUILDDIR)/java/util/FILES_java.gmk & $(BUILDDIR)/java/util/FILES_properties.gmk
# contain "sun.util.resources" for European language support
# contain "sun.util.resources" for US language support
include $(BUILDDIR)/java/util/FILES_java.gmk
include $(BUILDDIR)/java/util/FILES_properties.gmk
Euro_Resources_java := $(FILES_java)
Euro_Resources_properties := $(FILES_compiled_properties)
US_Resources_java := $(FILES_java)
US_Resources_properties := $(FILES_compiled_properties)
# $(BUILDDIR)/java/text/FILES_java.gmk contains the "sun.text.resources" for
# European language support
# US language support
include $(BUILDDIR)/java/text/base/FILES_java.gmk
Euro_Resources_java += $(FILES_java)
US_Resources_java += $(FILES_java)
FILES_compiled_properties=
# $(BUILDDIR)/sun/text/FILES_java.gmk & $(BUILDDIR)/sun/text/FILES_properties.gmk
# contain both resources for Non-European language support
# contain both resources for Non-US language support
include $(BUILDDIR)/sun/text/FILES_java.gmk
include $(BUILDDIR)/sun/text/FILES_properties.gmk
NonEuro_Resources_java := $(FILES_java)
NonEuro_Resources_properties := $(FILES_compiled_properties)
NonUS_Resources_java := $(FILES_java)
NonUS_Resources_properties := $(FILES_compiled_properties)
# Restore the orignal FILES_java & FILES_compiled_properties variables
FILES_java := $(FILES_java_orig)
......@@ -80,30 +80,30 @@ RESOURCE_NAMES="FormatData CollationData TimeZoneNames LocaleNames CurrencyNames
ifeq ($(PLATFORM), macosx)
$(LocaleDataMetaInfo_Dest):$(LocaleDataMetaInfo_Src) $(LOCALEGEN_SH)
@$(RM) $@.tmp.euro $@.tmp.noneuro;
@$(RM) $@.tmp.us $@.tmp.nonus;
@$(prep-target)
@$(ECHO) $(Euro_Resources_properties) | $(NAWK) 'gsub(/.properties/,"\n") {print}' > $@.tmp.euro;
@$(ECHO) $(Euro_Resources_java) | $(NAWK) 'gsub(/.java/,"\n") {print}' >> $@.tmp.euro;
@$(ECHO) $(NonEuro_Resources_properties) | $(NAWK) 'gsub(/.properties/,"\n") {print}' > $@.tmp.noneuro;
@$(ECHO) $(NonEuro_Resources_java) | $(NAWK) 'gsub(/.java/,"\n") {print}' >> $@.tmp.noneuro;
@$(ECHO) $(US_Resources_properties) | $(NAWK) 'gsub(/.properties/,"\n") {print}' > $@.tmp.us;
@$(ECHO) $(US_Resources_java) | $(NAWK) 'gsub(/.java/,"\n") {print}' >> $@.tmp.us;
@$(ECHO) $(NonUS_Resources_properties) | $(NAWK) 'gsub(/.properties/,"\n") {print}' > $@.tmp.nonus;
@$(ECHO) $(NonUS_Resources_java) | $(NAWK) 'gsub(/.java/,"\n") {print}' >> $@.tmp.nonus;
NAWK="$(NAWK)" SED="$(SED)" SORT="$(SORT)" \
$(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.euro \
$@.tmp.noneuro $< $@
@$(RM) $@.tmp.euro $@.tmp.noneuro;
$(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.us \
$@.tmp.nonus $< $@
@$(RM) $@.tmp.us $@.tmp.nonus;
else
$(LocaleDataMetaInfo_Dest):$(LocaleDataMetaInfo_Src) $(LOCALEGEN_SH)
@$(RM) $@.tmp.euro $@.tmp.noneuro;
@$(RM) $@.tmp.us $@.tmp.nonus;
@$(prep-target)
@$(ECHO) $(subst .properties,'\n',$(Euro_Resources_properties)) > $@.tmp.euro;
@$(ECHO) $(subst .java,'\n',$(Euro_Resources_java)) >> $@.tmp.euro;
@$(ECHO) $(subst .properties,'\n',$(NonEuro_Resources_properties)) > $@.tmp.noneuro;
@$(ECHO) $(subst .java,'\n',$(NonEuro_Resources_java)) >> $@.tmp.noneuro;
@$(ECHO) $(subst .properties,'\n',$(US_Resources_properties)) > $@.tmp.us;
@$(ECHO) $(subst .java,'\n',$(US_Resources_java)) >> $@.tmp.us;
@$(ECHO) $(subst .properties,'\n',$(NonUS_Resources_properties)) > $@.tmp.nonus;
@$(ECHO) $(subst .java,'\n',$(NonUS_Resources_java)) >> $@.tmp.nonus;
NAWK="$(NAWK)" SED="$(SED)" SORT="$(SORT)" \
$(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.euro \
$@.tmp.noneuro $< $@
@$(RM) $@.tmp.euro $@.tmp.noneuro;
$(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.us \
$@.tmp.nonus $< $@
@$(RM) $@.tmp.us $@.tmp.nonus;
endif
genlocales : $(LocaleDataMetaInfo_Dest)
......
......@@ -35,11 +35,11 @@
# A list of resource base name list;
RESOURCE_NAMES=$1
# A list of European resources;
EURO_FILES_LIST=$2
# A list of US resources;
US_FILES_LIST=$2
# A list of non-European resources;
NONEURO_FILES_LIST=$3
# A list of non-US resources;
NONUS_FILES_LIST=$3
INPUT_FILE=$4
OUTPUT_FILE=$5
......@@ -53,23 +53,23 @@ getlocalelist() {
sed_script="$SED -e \"s@^#warn .*@// -- This file was mechanically generated: Do not edit! -- //@\" "
# ja-JP-JP and th-TH-TH need to be manually added, as they don't have any resource files.
noneuroall=" ja-JP-JP th-TH-TH "
nonusall=" ja-JP-JP th-TH-TH "
for FILE in $RESOURCE_NAMES
do
getlocalelist $FILE $EURO_FILES_LIST
sed_script=$sed_script"-e \"s@#"$FILE"_EuroLocales#@$localelist@g\" "
euroall=$euroall" "$localelist
getlocalelist $FILE $NONEURO_FILES_LIST
sed_script=$sed_script"-e \"s@#"$FILE"_NonEuroLocales#@$localelist@g\" "
noneuroall=$noneuroall" "$localelist
getlocalelist $FILE $US_FILES_LIST
sed_script=$sed_script"-e \"s@#"$FILE"_USLocales#@$localelist@g\" "
usall=$usall" "$localelist
getlocalelist $FILE $NONUS_FILES_LIST
sed_script=$sed_script"-e \"s@#"$FILE"_NonUSLocales#@$localelist@g\" "
nonusall=$nonusall" "$localelist
done
euroall=`(for LOC in $euroall; do echo $LOC;done) |$SORT -u`
noneuroall=`(for LOC in $noneuroall; do echo $LOC;done) |$SORT -u`
usall=`(for LOC in $usall; do echo $LOC;done) |$SORT -u`
nonusall=`(for LOC in $nonusall; do echo $LOC;done) |$SORT -u`
sed_script=$sed_script"-e \"s@#AvailableLocales_EuroLocales#@$euroall@g\" "
sed_script=$sed_script"-e \"s@#AvailableLocales_NonEuroLocales#@$noneuroall@g\" "
sed_script=$sed_script"-e \"s@#AvailableLocales_USLocales#@$usall@g\" "
sed_script=$sed_script"-e \"s@#AvailableLocales_NonUSLocales#@$nonusall@g\" "
sed_script=$sed_script"$INPUT_FILE > $OUTPUT_FILE"
eval $sed_script
#
# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1997, 2012, Oracle and/or its affiliates. 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
......@@ -87,7 +87,6 @@ SUNWprivate_1.1 {
Java_java_io_FileOutputStream_open;
Java_java_io_FileOutputStream_write;
Java_java_io_FileOutputStream_writeBytes;
Java_java_io_FileSystem_getFileSystem;
Java_java_io_ObjectInputStream_bytesToDoubles;
Java_java_io_ObjectInputStream_bytesToFloats;
Java_java_io_ObjectOutputStream_doublesToBytes;
......
......@@ -103,150 +103,7 @@ FILES_java = \
sun/text/resources/BreakIteratorInfo.java \
\
sun/text/resources/CollationData.java \
sun/text/resources/be/CollationData_be.java \
sun/text/resources/bg/CollationData_bg.java \
sun/text/resources/ca/CollationData_ca.java \
sun/text/resources/cs/CollationData_cs.java \
sun/text/resources/da/CollationData_da.java \
sun/text/resources/el/CollationData_el.java \
sun/text/resources/es/CollationData_es.java \
sun/text/resources/et/CollationData_et.java \
sun/text/resources/fi/CollationData_fi.java \
sun/text/resources/fr/CollationData_fr.java \
sun/text/resources/hr/CollationData_hr.java \
sun/text/resources/hu/CollationData_hu.java \
sun/text/resources/is/CollationData_is.java \
sun/text/resources/lt/CollationData_lt.java \
sun/text/resources/lv/CollationData_lv.java \
sun/text/resources/mk/CollationData_mk.java \
sun/text/resources/no/CollationData_no.java \
sun/text/resources/pl/CollationData_pl.java \
sun/text/resources/ro/CollationData_ro.java \
sun/text/resources/ru/CollationData_ru.java \
sun/text/resources/sk/CollationData_sk.java \
sun/text/resources/sl/CollationData_sl.java \
sun/text/resources/sq/CollationData_sq.java \
sun/text/resources/sr/CollationData_sr.java \
sun/text/resources/sr/CollationData_sr_Latn.java \
sun/text/resources/sv/CollationData_sv.java \
sun/text/resources/tr/CollationData_tr.java \
sun/text/resources/uk/CollationData_uk.java \
\
sun/text/resources/FormatData.java \
sun/text/resources/be/FormatData_be.java \
sun/text/resources/be/FormatData_be_BY.java \
sun/text/resources/bg/FormatData_bg.java \
sun/text/resources/bg/FormatData_bg_BG.java \
sun/text/resources/ca/FormatData_ca.java \
sun/text/resources/ca/FormatData_ca_ES.java \
sun/text/resources/cs/FormatData_cs.java \
sun/text/resources/cs/FormatData_cs_CZ.java \
sun/text/resources/da/FormatData_da.java \
sun/text/resources/da/FormatData_da_DK.java \
sun/text/resources/de/FormatData_de.java \
sun/text/resources/de/FormatData_de_AT.java \
sun/text/resources/de/FormatData_de_CH.java \
sun/text/resources/de/FormatData_de_DE.java \
sun/text/resources/de/FormatData_de_LU.java \
sun/text/resources/el/FormatData_el.java \
sun/text/resources/el/FormatData_el_CY.java \
sun/text/resources/el/FormatData_el_GR.java \
sun/text/resources/en/FormatData_en.java \
sun/text/resources/en/FormatData_en_US.java \
sun/text/resources/en/FormatData_en_AU.java \
sun/text/resources/en/FormatData_en_CA.java \
sun/text/resources/en/FormatData_en_GB.java \
sun/text/resources/en/FormatData_en_IE.java \
sun/text/resources/en/FormatData_en_IN.java \
sun/text/resources/en/FormatData_en_MT.java \
sun/text/resources/en/FormatData_en_NZ.java \
sun/text/resources/en/FormatData_en_PH.java \
sun/text/resources/en/FormatData_en_SG.java \
sun/text/resources/en/FormatData_en_ZA.java \
sun/text/resources/es/FormatData_es.java \
sun/text/resources/es/FormatData_es_BO.java \
sun/text/resources/es/FormatData_es_AR.java \
sun/text/resources/es/FormatData_es_CL.java \
sun/text/resources/es/FormatData_es_CO.java \
sun/text/resources/es/FormatData_es_CR.java \
sun/text/resources/es/FormatData_es_DO.java \
sun/text/resources/es/FormatData_es_EC.java \
sun/text/resources/es/FormatData_es_ES.java \
sun/text/resources/es/FormatData_es_GT.java \
sun/text/resources/es/FormatData_es_HN.java \
sun/text/resources/es/FormatData_es_MX.java \
sun/text/resources/es/FormatData_es_NI.java \
sun/text/resources/es/FormatData_es_PA.java \
sun/text/resources/es/FormatData_es_PE.java \
sun/text/resources/es/FormatData_es_PR.java \
sun/text/resources/es/FormatData_es_PY.java \
sun/text/resources/es/FormatData_es_SV.java \
sun/text/resources/es/FormatData_es_US.java \
sun/text/resources/es/FormatData_es_UY.java \
sun/text/resources/es/FormatData_es_VE.java \
sun/text/resources/et/FormatData_et.java \
sun/text/resources/et/FormatData_et_EE.java \
sun/text/resources/fi/FormatData_fi.java \
sun/text/resources/fi/FormatData_fi_FI.java \
sun/text/resources/fr/FormatData_fr.java \
sun/text/resources/fr/FormatData_fr_BE.java \
sun/text/resources/fr/FormatData_fr_CA.java \
sun/text/resources/fr/FormatData_fr_CH.java \
sun/text/resources/fr/FormatData_fr_FR.java \
sun/text/resources/ga/FormatData_ga.java \
sun/text/resources/ga/FormatData_ga_IE.java \
sun/text/resources/hr/FormatData_hr.java \
sun/text/resources/hr/FormatData_hr_HR.java \
sun/text/resources/hu/FormatData_hu.java \
sun/text/resources/hu/FormatData_hu_HU.java \
sun/text/resources/in/FormatData_in.java \
sun/text/resources/in/FormatData_in_ID.java \
sun/text/resources/is/FormatData_is.java \
sun/text/resources/is/FormatData_is_IS.java \
sun/text/resources/it/FormatData_it.java \
sun/text/resources/it/FormatData_it_CH.java \
sun/text/resources/it/FormatData_it_IT.java \
sun/text/resources/lt/FormatData_lt.java \
sun/text/resources/lt/FormatData_lt_LT.java \
sun/text/resources/lv/FormatData_lv.java \
sun/text/resources/lv/FormatData_lv_LV.java \
sun/text/resources/mk/FormatData_mk.java \
sun/text/resources/mk/FormatData_mk_MK.java \
sun/text/resources/ms/FormatData_ms.java \
sun/text/resources/ms/FormatData_ms_MY.java \
sun/text/resources/mt/FormatData_mt.java \
sun/text/resources/mt/FormatData_mt_MT.java \
sun/text/resources/nl/FormatData_nl.java \
sun/text/resources/nl/FormatData_nl_BE.java \
sun/text/resources/nl/FormatData_nl_NL.java \
sun/text/resources/no/FormatData_no.java \
sun/text/resources/no/FormatData_no_NO.java \
sun/text/resources/no/FormatData_no_NO_NY.java \
sun/text/resources/pl/FormatData_pl.java \
sun/text/resources/pl/FormatData_pl_PL.java \
sun/text/resources/pt/FormatData_pt.java \
sun/text/resources/pt/FormatData_pt_BR.java \
sun/text/resources/pt/FormatData_pt_PT.java \
sun/text/resources/ro/FormatData_ro.java \
sun/text/resources/ro/FormatData_ro_RO.java \
sun/text/resources/ru/FormatData_ru.java \
sun/text/resources/ru/FormatData_ru_RU.java \
sun/text/resources/sk/FormatData_sk.java \
sun/text/resources/sk/FormatData_sk_SK.java \
sun/text/resources/sl/FormatData_sl.java \
sun/text/resources/sl/FormatData_sl_SI.java \
sun/text/resources/sq/FormatData_sq.java \
sun/text/resources/sq/FormatData_sq_AL.java \
sun/text/resources/sr/FormatData_sr.java \
sun/text/resources/sr/FormatData_sr_BA.java \
sun/text/resources/sr/FormatData_sr_CS.java \
sun/text/resources/sr/FormatData_sr_ME.java \
sun/text/resources/sr/FormatData_sr_RS.java \
sun/text/resources/sr/FormatData_sr_Latn.java \
sun/text/resources/sr/FormatData_sr_Latn_ME.java \
sun/text/resources/sv/FormatData_sv.java \
sun/text/resources/sv/FormatData_sv_SE.java \
sun/text/resources/tr/FormatData_tr.java \
sun/text/resources/tr/FormatData_tr_TR.java \
sun/text/resources/uk/FormatData_uk.java \
sun/text/resources/uk/FormatData_uk_UA.java
sun/text/resources/en/FormatData_en_US.java
......@@ -29,13 +29,4 @@ FILES_java = \
sun/util/resources/LocaleNamesBundle.java \
sun/util/resources/TimeZoneNamesBundle.java \
sun/util/resources/TimeZoneNames.java \
sun/util/resources/de/TimeZoneNames_de.java \
sun/util/resources/en/TimeZoneNames_en.java \
sun/util/resources/en/TimeZoneNames_en_CA.java \
sun/util/resources/en/TimeZoneNames_en_GB.java \
sun/util/resources/en/TimeZoneNames_en_IE.java \
sun/util/resources/es/TimeZoneNames_es.java \
sun/util/resources/fr/TimeZoneNames_fr.java \
sun/util/resources/it/TimeZoneNames_it.java \
sun/util/resources/pt/TimeZoneNames_pt_BR.java \
sun/util/resources/sv/TimeZoneNames_sv.java
sun/util/resources/en/TimeZoneNames_en.java
......@@ -25,189 +25,10 @@
FILES_compiled_properties = \
sun/util/resources/LocaleNames.properties \
sun/util/resources/be/LocaleNames_be.properties \
sun/util/resources/bg/LocaleNames_bg.properties \
sun/util/resources/ca/LocaleNames_ca.properties \
sun/util/resources/cs/LocaleNames_cs.properties \
sun/util/resources/da/LocaleNames_da.properties \
sun/util/resources/de/LocaleNames_de.properties \
sun/util/resources/el/LocaleNames_el.properties \
sun/util/resources/el/LocaleNames_el_CY.properties \
sun/util/resources/en/LocaleNames_en.properties \
sun/util/resources/en/LocaleNames_en_MT.properties \
sun/util/resources/en/LocaleNames_en_PH.properties \
sun/util/resources/en/LocaleNames_en_SG.properties \
sun/util/resources/es/LocaleNames_es.properties \
sun/util/resources/es/LocaleNames_es_US.properties \
sun/util/resources/et/LocaleNames_et.properties \
sun/util/resources/fi/LocaleNames_fi.properties \
sun/util/resources/fr/LocaleNames_fr.properties \
sun/util/resources/ga/LocaleNames_ga.properties \
sun/util/resources/hr/LocaleNames_hr.properties \
sun/util/resources/hu/LocaleNames_hu.properties \
sun/util/resources/in/LocaleNames_in.properties \
sun/util/resources/is/LocaleNames_is.properties \
sun/util/resources/it/LocaleNames_it.properties \
sun/util/resources/lt/LocaleNames_lt.properties \
sun/util/resources/lv/LocaleNames_lv.properties \
sun/util/resources/mk/LocaleNames_mk.properties \
sun/util/resources/ms/LocaleNames_ms.properties \
sun/util/resources/mt/LocaleNames_mt.properties \
sun/util/resources/nl/LocaleNames_nl.properties \
sun/util/resources/no/LocaleNames_no.properties \
sun/util/resources/no/LocaleNames_no_NO_NY.properties \
sun/util/resources/pl/LocaleNames_pl.properties \
sun/util/resources/pt/LocaleNames_pt.properties \
sun/util/resources/pt/LocaleNames_pt_BR.properties \
sun/util/resources/pt/LocaleNames_pt_PT.properties \
sun/util/resources/ro/LocaleNames_ro.properties \
sun/util/resources/ru/LocaleNames_ru.properties \
sun/util/resources/sk/LocaleNames_sk.properties \
sun/util/resources/sl/LocaleNames_sl.properties \
sun/util/resources/sq/LocaleNames_sq.properties \
sun/util/resources/sr/LocaleNames_sr.properties \
sun/util/resources/sr/LocaleNames_sr_Latn.properties \
sun/util/resources/sv/LocaleNames_sv.properties \
sun/util/resources/tr/LocaleNames_tr.properties \
sun/util/resources/uk/LocaleNames_uk.properties \
\
sun/util/resources/CalendarData.properties \
sun/util/resources/be/CalendarData_be.properties \
sun/util/resources/bg/CalendarData_bg.properties \
sun/util/resources/ca/CalendarData_ca.properties \
sun/util/resources/cs/CalendarData_cs.properties \
sun/util/resources/da/CalendarData_da.properties \
sun/util/resources/de/CalendarData_de.properties \
sun/util/resources/el/CalendarData_el.properties \
sun/util/resources/el/CalendarData_el_CY.properties \
sun/util/resources/en/CalendarData_en.properties \
sun/util/resources/en/CalendarData_en_GB.properties \
sun/util/resources/en/CalendarData_en_IE.properties \
sun/util/resources/en/CalendarData_en_MT.properties \
sun/util/resources/es/CalendarData_es.properties \
sun/util/resources/es/CalendarData_es_ES.properties \
sun/util/resources/es/CalendarData_es_US.properties \
sun/util/resources/et/CalendarData_et.properties \
sun/util/resources/fi/CalendarData_fi.properties \
sun/util/resources/fr/CalendarData_fr.properties \
sun/util/resources/fr/CalendarData_fr_CA.properties \
sun/util/resources/hr/CalendarData_hr.properties \
sun/util/resources/hu/CalendarData_hu.properties \
sun/util/resources/in/CalendarData_in_ID.properties \
sun/util/resources/is/CalendarData_is.properties \
sun/util/resources/it/CalendarData_it.properties \
sun/util/resources/lt/CalendarData_lt.properties \
sun/util/resources/lv/CalendarData_lv.properties \
sun/util/resources/mk/CalendarData_mk.properties \
sun/util/resources/ms/CalendarData_ms_MY.properties \
sun/util/resources/mt/CalendarData_mt.properties \
sun/util/resources/mt/CalendarData_mt_MT.properties \
sun/util/resources/nl/CalendarData_nl.properties \
sun/util/resources/no/CalendarData_no.properties \
sun/util/resources/pl/CalendarData_pl.properties \
sun/util/resources/pt/CalendarData_pt.properties \
sun/util/resources/pt/CalendarData_pt_PT.properties \
sun/util/resources/ro/CalendarData_ro.properties \
sun/util/resources/ru/CalendarData_ru.properties \
sun/util/resources/sk/CalendarData_sk.properties \
sun/util/resources/sl/CalendarData_sl.properties \
sun/util/resources/sq/CalendarData_sq.properties \
sun/util/resources/sr/CalendarData_sr.properties \
sun/util/resources/sr/CalendarData_sr_Latn_BA.properties \
sun/util/resources/sr/CalendarData_sr_Latn_ME.properties \
sun/util/resources/sr/CalendarData_sr_Latn_RS.properties \
sun/util/resources/sv/CalendarData_sv.properties \
sun/util/resources/tr/CalendarData_tr.properties \
sun/util/resources/uk/CalendarData_uk.properties \
\
sun/util/resources/CurrencyNames.properties \
sun/util/resources/be/CurrencyNames_be_BY.properties \
sun/util/resources/bg/CurrencyNames_bg_BG.properties \
sun/util/resources/ca/CurrencyNames_ca_ES.properties \
sun/util/resources/cs/CurrencyNames_cs_CZ.properties \
sun/util/resources/da/CurrencyNames_da_DK.properties \
sun/util/resources/de/CurrencyNames_de.properties \
sun/util/resources/de/CurrencyNames_de_AT.properties \
sun/util/resources/de/CurrencyNames_de_CH.properties \
sun/util/resources/de/CurrencyNames_de_DE.properties \
sun/util/resources/de/CurrencyNames_de_GR.properties \
sun/util/resources/de/CurrencyNames_de_LU.properties \
sun/util/resources/el/CurrencyNames_el_CY.properties \
sun/util/resources/el/CurrencyNames_el_GR.properties \
sun/util/resources/en/CurrencyNames_en_AU.properties \
sun/util/resources/en/CurrencyNames_en_CA.properties \
sun/util/resources/en/CurrencyNames_en_GB.properties \
sun/util/resources/en/CurrencyNames_en_IE.properties \
sun/util/resources/en/CurrencyNames_en_IN.properties \
sun/util/resources/en/CurrencyNames_en_MT.properties \
sun/util/resources/en/CurrencyNames_en_NZ.properties \
sun/util/resources/en/CurrencyNames_en_PH.properties \
sun/util/resources/en/CurrencyNames_en_SG.properties \
sun/util/resources/en/CurrencyNames_en_US.properties \
sun/util/resources/en/CurrencyNames_en_ZA.properties \
sun/util/resources/es/CurrencyNames_es.properties \
sun/util/resources/es/CurrencyNames_es_AR.properties \
sun/util/resources/es/CurrencyNames_es_BO.properties \
sun/util/resources/es/CurrencyNames_es_CL.properties \
sun/util/resources/es/CurrencyNames_es_CO.properties \
sun/util/resources/es/CurrencyNames_es_CR.properties \
sun/util/resources/es/CurrencyNames_es_CU.properties \
sun/util/resources/es/CurrencyNames_es_DO.properties \
sun/util/resources/es/CurrencyNames_es_EC.properties \
sun/util/resources/es/CurrencyNames_es_ES.properties \
sun/util/resources/es/CurrencyNames_es_GT.properties \
sun/util/resources/es/CurrencyNames_es_HN.properties \
sun/util/resources/es/CurrencyNames_es_MX.properties \
sun/util/resources/es/CurrencyNames_es_NI.properties \
sun/util/resources/es/CurrencyNames_es_PA.properties \
sun/util/resources/es/CurrencyNames_es_PE.properties \
sun/util/resources/es/CurrencyNames_es_PR.properties \
sun/util/resources/es/CurrencyNames_es_PY.properties \
sun/util/resources/es/CurrencyNames_es_SV.properties \
sun/util/resources/es/CurrencyNames_es_US.properties \
sun/util/resources/es/CurrencyNames_es_UY.properties \
sun/util/resources/es/CurrencyNames_es_VE.properties \
sun/util/resources/et/CurrencyNames_et_EE.properties \
sun/util/resources/fi/CurrencyNames_fi_FI.properties \
sun/util/resources/fr/CurrencyNames_fr.properties \
sun/util/resources/fr/CurrencyNames_fr_BE.properties \
sun/util/resources/fr/CurrencyNames_fr_CA.properties \
sun/util/resources/fr/CurrencyNames_fr_CH.properties \
sun/util/resources/fr/CurrencyNames_fr_FR.properties \
sun/util/resources/fr/CurrencyNames_fr_LU.properties \
sun/util/resources/ga/CurrencyNames_ga_IE.properties \
sun/util/resources/hr/CurrencyNames_hr_HR.properties \
sun/util/resources/hu/CurrencyNames_hu_HU.properties \
sun/util/resources/in/CurrencyNames_in_ID.properties \
sun/util/resources/is/CurrencyNames_is_IS.properties \
sun/util/resources/it/CurrencyNames_it.properties \
sun/util/resources/it/CurrencyNames_it_CH.properties \
sun/util/resources/it/CurrencyNames_it_IT.properties \
sun/util/resources/lt/CurrencyNames_lt_LT.properties \
sun/util/resources/lv/CurrencyNames_lv_LV.properties \
sun/util/resources/mk/CurrencyNames_mk_MK.properties \
sun/util/resources/ms/CurrencyNames_ms_MY.properties \
sun/util/resources/mt/CurrencyNames_mt_MT.properties \
sun/util/resources/nl/CurrencyNames_nl_BE.properties \
sun/util/resources/nl/CurrencyNames_nl_NL.properties \
sun/util/resources/no/CurrencyNames_no_NO.properties \
sun/util/resources/pl/CurrencyNames_pl_PL.properties \
sun/util/resources/pt/CurrencyNames_pt.properties \
sun/util/resources/pt/CurrencyNames_pt_BR.properties \
sun/util/resources/pt/CurrencyNames_pt_PT.properties \
sun/util/resources/ro/CurrencyNames_ro_RO.properties \
sun/util/resources/ru/CurrencyNames_ru_RU.properties \
sun/util/resources/sk/CurrencyNames_sk_SK.properties \
sun/util/resources/sl/CurrencyNames_sl_SI.properties \
sun/util/resources/sq/CurrencyNames_sq_AL.properties \
sun/util/resources/sr/CurrencyNames_sr_BA.properties \
sun/util/resources/sr/CurrencyNames_sr_CS.properties \
sun/util/resources/sr/CurrencyNames_sr_ME.properties \
sun/util/resources/sr/CurrencyNames_sr_RS.properties \
sun/util/resources/sr/CurrencyNames_sr_Latn_BA.properties \
sun/util/resources/sr/CurrencyNames_sr_Latn_ME.properties \
sun/util/resources/sr/CurrencyNames_sr_Latn_RS.properties \
sun/util/resources/sv/CurrencyNames_sv.properties \
sun/util/resources/sv/CurrencyNames_sv_SE.properties \
sun/util/resources/tr/CurrencyNames_tr_TR.properties \
sun/util/resources/uk/CurrencyNames_uk_UA.properties
sun/util/resources/en/CurrencyNames_en_US.properties
#
# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2007, 2012, Oracle and/or its affiliates. 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
......@@ -31,7 +31,7 @@ include $(BUILDDIR)/common/Release.gmk
JCE_MANIFEST_FILE = $(TEMPDIR)/manifest.mf
$(JCE_MANIFEST_FILE): $(MAINMANIFEST)
$(prep-target)
$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
$(SED) -e "s#@@RELEASE@@#$(JDK_VERSION)#" \
-e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
$(MAINMANIFEST) >> $@
$(ECHO) "Extension-Name: javax.crypto" >> $@
......
#
# Copyright (c) 1997, 2012, Oracle and/or its affiliates. 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
#
# Makefile for building all of java
#
BUILDDIR = ..
PRODUCT = jdk
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = asm
include $(BUILDDIR)/common/Subdirs.gmk
all build clean clobber::
$(SUBDIRS-loop)
#
# Copyright (c) 1995, 2012, Oracle and/or its affiliates. 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
BUILDDIR = ../..
PACKAGE = jdk.internal.org.objectweb.asm
PRODUCT = jdk
JAVAC_LINT_OPTIONS=-Xlint:all
include $(BUILDDIR)/common/Defs.gmk
#
# Files to compile
#
AUTO_FILES_JAVA_DIRS = jdk/internal/org/objectweb/asm
#
# Rules
#
include $(BUILDDIR)/common/Classes.gmk
......@@ -176,17 +176,38 @@ else
else
windows_arch=i586
fi
repo=`hg root | sed -e 's@\\\\@/@g'`
# We need to check if we are running a CYGWIN shell
if [ "$(uname -a | fgrep Cygwin)" != "" -a -f /bin/cygpath ] ; then
if [ "$(echo ${osname} | fgrep Cygwin)" != "" -a -f /bin/cygpath ] ; then
# For CYGWIN, uname will have "Cygwin" in it, and /bin/cygpath should exist
# Utility to convert to short pathnames without spaces
cygpath="/usr/bin/cygpath -a -m -s"
cygpathp="/usr/bin/cygpath -p"
# Most unix utilities are in the /usr/bin
unixcommand_path="/usr/bin"
# Make the prompt tell you CYGWIN
export PS1="CYGWIN:${COMPUTERNAME}:${USERNAME}[\!] "
elif [ "$(echo ${osname} | fgrep MINGW)" != "" ] ; then
# Utility to convert to short pathnames without spaces
cygpath="${repo}/make/tools/msys_build_scripts/dospath.sh"
if [ ! -f ${cygpath} ] ; then
echo "ERROR: Cannot find cygpath or equivalent on this machine"
exit 1
fi
# Utility to fix a path to MinGW/MSYS format - the equivalent of 'cygpath -p'
for tfile in "${repo}/make/scripts/fixpath.pl" "${repo}/../make/scripts/fixpath.pl"; do
if [ -f ${tfile} ] ; then
cygpathp="/bin/perl ${tfile} -m"
fi
done;
if [ -z "${cygpathp}" ] ; then
echo "ERROR: Cannot find make/scripts/fixpath.pl on this machine"
exit 1
fi
unixcommand_path="/usr/bin"
else
echo "ERROR: Cannot find CYGWIN on this machine"
echo "ERROR: Cannot find CYGWIN or MinGW/MSYS on this machine"
exit 1
fi
if [ "${ALT_UNIXCOMMAND_PATH}" != "" ] ; then
......@@ -204,17 +225,18 @@ else
else
sys_root=$(${cygpath} "C:/WINNT")
fi
path4sdk="${unixcommand_path};${sys_root}/system32;${sys_root};${sys_root}/System32/Wbem"
if [ ! -d "${sys_root}" ] ; then
echo "WARNING: No system root found at: ${sys_root}"
fi
# Build a : separated path making sure each segment is acceptable to ${osname}
path4sdk="${unixcommand_path}:"`${cygpathp} "${sys_root}/system32;${sys_root};${sys_root}/System32/Wbem"`
# Compiler setup (nasty part)
# NOTE: You can use vcvars32.bat to set PATH, LIB, and INCLUDE.
# NOTE: CYGWIN has a link.exe too, make sure the compilers are first
# Use supplied vsvars.sh
repo=`hg root`
if [ -f "${repo}/make/scripts/vsvars.sh" ] ; then
eval `sh ${repo}/make/scripts/vsvars.sh -v10`
elif [ -f "${repo}/../make/scripts/vsvars.sh" ] ; then
......
......@@ -63,12 +63,6 @@ ifeq ($(PLATFORM), macosx)
LWAWT_SUBDIR = lwawt
endif
ifndef OPENJDK
ifneq ($(PLATFORM), macosx)
JDBC_SUBDIR = jdbc
endif
endif
ifdef OPENJDK
RENDER_SUBDIR = pisces
else
......@@ -89,7 +83,7 @@ SUBDIRS_desktop = audio $(RENDER_SUBDIR) image \
$(LWAWT_PRE_SUBDIR) $(DISPLAY_LIBS) $(DGA_SUBDIR) $(LWAWT_SUBDIR) \
jawt font jpeg cmm $(DISPLAY_TOOLS)
SUBDIRS_management = management
SUBDIRS_misc = $(ORG_SUBDIR) rmi $(JDBC_SUBDIR) tracing
SUBDIRS_misc = $(ORG_SUBDIR) rmi tracing
SUBDIRS_tools = native2ascii serialver tools jconsole
ifndef OPENJDK
......
#
# Copyright (c) 1996, 2011, Oracle and/or its affiliates. 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
#
# Makefile for JDBC-ODBC Bridge Driver
#
# Note - the native library for the bridge may be linked with the
# shared library for the ODBC driver manager. Or dummy libraries
# may be used to just create libJdbcOdbc.so with a dependency on
# libodbc.so and libodbcinst.so.
#
BUILDDIR = ../..
PACKAGE = sun.jdbc.odbc
LIBRARY = JdbcOdbc
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
#
# Files
#
AUTO_FILES_JAVA_DIRS = sun/jdbc/odbc
FILES_c = \
JdbcOdbc.c
FILES_export = \
sun/jdbc/odbc/JdbcOdbc.java
# Use fake libraries on Solaris and Linux just so the library we create has
# a dependency on these two library names. (which are not part of the jdk)
ifneq ($(PLATFORM), windows)
# In jdk5 and jdk6, and on Solaris 32bit, we would have required that
# these two libraries exist at: $(ALT_ODBCDIR)/ISLIodbc/2.11/lib
# In jdk7, we just fake them out like we did on Linux in jdk5 and jdk6.
#
# If you wanted to use the real odbc libraries, change the value of
# ODBC_LIBRARY_LOCATION, and delete the variable assignments below.
#
# Tell linker to ignore missing externals when building this shared library.
LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker nodefs
# Define a place to create the fake libraries and their names.
ODBC_LIBRARY_LOCATION = $(TEMPDIR)
ODBC_FAKE_LIBRARIES = $(ODBC_LIBRARY_LOCATION)/libodbcinst.so $(ODBC_LIBRARY_LOCATION)/libodbc.so
# Make sure they get created early.
INIT += $(ODBC_FAKE_LIBRARIES)
endif
#
# Rules
#
include $(BUILDDIR)/common/Library.gmk
#
# The UNIX define specifies conditional compilation for UNIX
#
ifeq ($(PLATFORM), windows)
LDLIBS += odbc32.lib odbccp32.lib
else
CFLAGS += -DUNIX
LDFLAGS += -L$(ODBC_LIBRARY_LOCATION) -lodbcinst -lodbc
endif
#
# The native code for the bridge uses conditional compilation to
# support Solaris, Win95 and Mac PPC. This is the path to the shared C files
# (which unfortunately are in the same directory as shared Java files).
#
vpath %.c $(CLOSED_SHARE_SRC)/classes/sun/jdbc/odbc
#
# Rules to generate fake libraries
#
ifdef ODBC_FAKE_LIBRARIES
$(TEMPDIR)/dummyodbc.c:
@$(prep-target)
$(ECHO) "void dummyOdbc(void){}" >> $@
$(TEMPDIR)/dummyodbc.o: $(TEMPDIR)/dummyodbc.c
@$(prep-target)
$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
$(ODBC_FAKE_LIBRARIES): $(TEMPDIR)/dummyodbc.o
@$(prep-target)
$(CC) $(SHARED_LIBRARY_FLAG) $(LDFLAGS_COMMON) -o $@ $< $(EXTRA_LIBS)
clean::
$(RM) -f $(ODBC_FAKE_LIBRARIES)
$(RM) -f $(TEMPDIR)/dummyodbc.c
$(RM) -f $(TEMPDIR)/dummyodbc.o
endif
#
# Files that need to be copied
#
SERVICEDIR = $(CLASSBINDIR)/META-INF/services
FILES_copy = \
$(SERVICEDIR)/java.sql.Driver
FILES_mkdirs = \
$(CLASSBINDIR)/META-INF \
$(CLASSBINDIR)/META-INF/services
FILES_copydirs = \
$(CLASSBINDIR) \
$(FILES_mkdirs)
build: copy-files
copy-files: $(FILES_copy)
$(SERVICEDIR)/%: $(CLOSED_SHARE_SRC)/classes/sun/jdbc/odbc/META-INF/services/%
$(install-file)
clean clobber::
$(RM) $(FILES_copy)
.PHONY: copy-files
......@@ -128,8 +128,6 @@ FILES_java = \
sun/net/www/content/audio/x_wav.java \
sun/net/www/protocol/ftp/Handler.java \
sun/net/www/protocol/ftp/FtpURLConnection.java \
sun/net/www/protocol/gopher/GopherClient.java \
sun/net/www/protocol/gopher/Handler.java \
sun/net/www/protocol/mailto/Handler.java \
sun/net/www/protocol/mailto/MailToURLConnection.java \
sun/net/idn/Punycode.java \
......
......@@ -246,9 +246,9 @@ build-jar: $(UNSIGNED_DIR)/sunec.jar
#
# Build sunec.jar.
#
$(UNSIGNED_DIR)/sunec.jar: build
$(UNSIGNED_DIR)/sunec.jar: build $(JCE_MANIFEST_FILE)
$(prep-target)
$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
$(BOOT_JAR_JFLAGS)
@$(java-vm-cleanup)
......
......@@ -209,9 +209,9 @@ build-jar: $(UNSIGNED_DIR)/sunmscapi.jar
#
# Build sunmscapi.jar.
#
$(UNSIGNED_DIR)/sunmscapi.jar: build
$(UNSIGNED_DIR)/sunmscapi.jar: build $(JCE_MANIFEST_FILE)
$(prep-target)
$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
$(BOOT_JAR_JFLAGS)
@$(java-vm-cleanup)
......
......@@ -225,9 +225,9 @@ build-jar: $(UNSIGNED_DIR)/sunpkcs11.jar
#
# Build sunpkcs11.jar.
#
$(UNSIGNED_DIR)/sunpkcs11.jar: build
$(UNSIGNED_DIR)/sunpkcs11.jar: build $(JCE_MANIFEST_FILE)
$(prep-target)
$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
$(BOOT_JAR_JFLAGS)
@$(java-vm-cleanup)
......
......@@ -24,10 +24,10 @@
#
# Locale data files for lib/ext/localedata.jar.
# This includes resource bundles and data for non-European
# This includes resource bundles and data for non-US
# languages in sun.text.resources as well as sun.util.resources.
#
# Locale data for European languages is built from
# Locale data for US languages is built from
# - make/java/text for classes in sun.text.resources
# - make/java/util for classes in sun.util.resources
#
......@@ -36,11 +36,39 @@ FILES_java = \
sun/text/resources/th/BreakIteratorInfo_th.java \
\
sun/text/resources/ar/CollationData_ar.java \
sun/text/resources/be/CollationData_be.java \
sun/text/resources/bg/CollationData_bg.java \
sun/text/resources/ca/CollationData_ca.java \
sun/text/resources/cs/CollationData_cs.java \
sun/text/resources/da/CollationData_da.java \
sun/text/resources/el/CollationData_el.java \
sun/text/resources/es/CollationData_es.java \
sun/text/resources/et/CollationData_et.java \
sun/text/resources/fi/CollationData_fi.java \
sun/text/resources/fr/CollationData_fr.java \
sun/text/resources/hi/CollationData_hi.java \
sun/text/resources/hr/CollationData_hr.java \
sun/text/resources/hu/CollationData_hu.java \
sun/text/resources/is/CollationData_is.java \
sun/text/resources/iw/CollationData_iw.java \
sun/text/resources/ja/CollationData_ja.java \
sun/text/resources/ko/CollationData_ko.java \
sun/text/resources/lt/CollationData_lt.java \
sun/text/resources/lv/CollationData_lv.java \
sun/text/resources/mk/CollationData_mk.java \
sun/text/resources/no/CollationData_no.java \
sun/text/resources/pl/CollationData_pl.java \
sun/text/resources/ro/CollationData_ro.java \
sun/text/resources/ru/CollationData_ru.java \
sun/text/resources/sk/CollationData_sk.java \
sun/text/resources/sl/CollationData_sl.java \
sun/text/resources/sq/CollationData_sq.java \
sun/text/resources/sr/CollationData_sr.java \
sun/text/resources/sr/CollationData_sr_Latn.java \
sun/text/resources/sv/CollationData_sv.java \
sun/text/resources/th/CollationData_th.java \
sun/text/resources/tr/CollationData_tr.java \
sun/text/resources/uk/CollationData_uk.java \
sun/text/resources/vi/CollationData_vi.java \
sun/text/resources/zh/CollationData_zh.java \
sun/text/resources/zh/CollationData_zh_HK.java \
......@@ -50,15 +78,130 @@ FILES_java = \
sun/text/resources/ar/FormatData_ar_JO.java \
sun/text/resources/ar/FormatData_ar_LB.java \
sun/text/resources/ar/FormatData_ar_SY.java \
sun/text/resources/be/FormatData_be.java \
sun/text/resources/be/FormatData_be_BY.java \
sun/text/resources/bg/FormatData_bg.java \
sun/text/resources/bg/FormatData_bg_BG.java \
sun/text/resources/ca/FormatData_ca.java \
sun/text/resources/ca/FormatData_ca_ES.java \
sun/text/resources/cs/FormatData_cs.java \
sun/text/resources/cs/FormatData_cs_CZ.java \
sun/text/resources/da/FormatData_da.java \
sun/text/resources/da/FormatData_da_DK.java \
sun/text/resources/de/FormatData_de.java \
sun/text/resources/de/FormatData_de_AT.java \
sun/text/resources/de/FormatData_de_CH.java \
sun/text/resources/de/FormatData_de_DE.java \
sun/text/resources/de/FormatData_de_LU.java \
sun/text/resources/el/FormatData_el.java \
sun/text/resources/el/FormatData_el_CY.java \
sun/text/resources/el/FormatData_el_GR.java \
sun/text/resources/en/FormatData_en_AU.java \
sun/text/resources/en/FormatData_en_CA.java \
sun/text/resources/en/FormatData_en_GB.java \
sun/text/resources/en/FormatData_en_IE.java \
sun/text/resources/en/FormatData_en_IN.java \
sun/text/resources/en/FormatData_en_MT.java \
sun/text/resources/en/FormatData_en_NZ.java \
sun/text/resources/en/FormatData_en_PH.java \
sun/text/resources/en/FormatData_en_SG.java \
sun/text/resources/en/FormatData_en_ZA.java \
sun/text/resources/es/FormatData_es.java \
sun/text/resources/es/FormatData_es_BO.java \
sun/text/resources/es/FormatData_es_AR.java \
sun/text/resources/es/FormatData_es_CL.java \
sun/text/resources/es/FormatData_es_CO.java \
sun/text/resources/es/FormatData_es_CR.java \
sun/text/resources/es/FormatData_es_DO.java \
sun/text/resources/es/FormatData_es_EC.java \
sun/text/resources/es/FormatData_es_ES.java \
sun/text/resources/es/FormatData_es_GT.java \
sun/text/resources/es/FormatData_es_HN.java \
sun/text/resources/es/FormatData_es_MX.java \
sun/text/resources/es/FormatData_es_NI.java \
sun/text/resources/es/FormatData_es_PA.java \
sun/text/resources/es/FormatData_es_PE.java \
sun/text/resources/es/FormatData_es_PR.java \
sun/text/resources/es/FormatData_es_PY.java \
sun/text/resources/es/FormatData_es_SV.java \
sun/text/resources/es/FormatData_es_US.java \
sun/text/resources/es/FormatData_es_UY.java \
sun/text/resources/es/FormatData_es_VE.java \
sun/text/resources/et/FormatData_et.java \
sun/text/resources/et/FormatData_et_EE.java \
sun/text/resources/fi/FormatData_fi.java \
sun/text/resources/fi/FormatData_fi_FI.java \
sun/text/resources/fr/FormatData_fr.java \
sun/text/resources/fr/FormatData_fr_BE.java \
sun/text/resources/fr/FormatData_fr_CA.java \
sun/text/resources/fr/FormatData_fr_CH.java \
sun/text/resources/fr/FormatData_fr_FR.java \
sun/text/resources/ga/FormatData_ga.java \
sun/text/resources/ga/FormatData_ga_IE.java \
sun/text/resources/hi/FormatData_hi_IN.java \
sun/text/resources/hr/FormatData_hr.java \
sun/text/resources/hr/FormatData_hr_HR.java \
sun/text/resources/hu/FormatData_hu.java \
sun/text/resources/hu/FormatData_hu_HU.java \
sun/text/resources/in/FormatData_in.java \
sun/text/resources/in/FormatData_in_ID.java \
sun/text/resources/is/FormatData_is.java \
sun/text/resources/is/FormatData_is_IS.java \
sun/text/resources/it/FormatData_it.java \
sun/text/resources/it/FormatData_it_CH.java \
sun/text/resources/it/FormatData_it_IT.java \
sun/text/resources/iw/FormatData_iw.java \
sun/text/resources/iw/FormatData_iw_IL.java \
sun/text/resources/ja/FormatData_ja.java \
sun/text/resources/ja/FormatData_ja_JP.java \
sun/text/resources/ko/FormatData_ko.java \
sun/text/resources/ko/FormatData_ko_KR.java \
sun/text/resources/lt/FormatData_lt.java \
sun/text/resources/lt/FormatData_lt_LT.java \
sun/text/resources/lv/FormatData_lv.java \
sun/text/resources/lv/FormatData_lv_LV.java \
sun/text/resources/mk/FormatData_mk.java \
sun/text/resources/mk/FormatData_mk_MK.java \
sun/text/resources/ms/FormatData_ms.java \
sun/text/resources/ms/FormatData_ms_MY.java \
sun/text/resources/mt/FormatData_mt.java \
sun/text/resources/mt/FormatData_mt_MT.java \
sun/text/resources/nl/FormatData_nl.java \
sun/text/resources/nl/FormatData_nl_BE.java \
sun/text/resources/nl/FormatData_nl_NL.java \
sun/text/resources/no/FormatData_no.java \
sun/text/resources/no/FormatData_no_NO.java \
sun/text/resources/no/FormatData_no_NO_NY.java \
sun/text/resources/pl/FormatData_pl.java \
sun/text/resources/pl/FormatData_pl_PL.java \
sun/text/resources/pt/FormatData_pt.java \
sun/text/resources/pt/FormatData_pt_BR.java \
sun/text/resources/pt/FormatData_pt_PT.java \
sun/text/resources/ro/FormatData_ro.java \
sun/text/resources/ro/FormatData_ro_RO.java \
sun/text/resources/ru/FormatData_ru.java \
sun/text/resources/ru/FormatData_ru_RU.java \
sun/text/resources/sk/FormatData_sk.java \
sun/text/resources/sk/FormatData_sk_SK.java \
sun/text/resources/sl/FormatData_sl.java \
sun/text/resources/sl/FormatData_sl_SI.java \
sun/text/resources/sq/FormatData_sq.java \
sun/text/resources/sq/FormatData_sq_AL.java \
sun/text/resources/sr/FormatData_sr.java \
sun/text/resources/sr/FormatData_sr_BA.java \
sun/text/resources/sr/FormatData_sr_CS.java \
sun/text/resources/sr/FormatData_sr_ME.java \
sun/text/resources/sr/FormatData_sr_RS.java \
sun/text/resources/sr/FormatData_sr_Latn.java \
sun/text/resources/sr/FormatData_sr_Latn_ME.java \
sun/text/resources/sv/FormatData_sv.java \
sun/text/resources/sv/FormatData_sv_SE.java \
sun/text/resources/th/FormatData_th.java \
sun/text/resources/th/FormatData_th_TH.java \
sun/text/resources/tr/FormatData_tr.java \
sun/text/resources/tr/FormatData_tr_TR.java \
sun/text/resources/uk/FormatData_uk.java \
sun/text/resources/uk/FormatData_uk_UA.java \
sun/text/resources/vi/FormatData_vi.java \
sun/text/resources/vi/FormatData_vi_VN.java \
sun/text/resources/zh/FormatData_zh.java \
......@@ -70,9 +213,18 @@ FILES_java = \
sun/util/resources/zh/CurrencyNames_zh_HK.java \
sun/util/resources/zh/CurrencyNames_zh_SG.java \
sun/util/resources/zh/LocaleNames_zh_HK.java \
sun/util/resources/de/TimeZoneNames_de.java \
sun/util/resources/en/TimeZoneNames_en_CA.java \
sun/util/resources/en/TimeZoneNames_en_GB.java \
sun/util/resources/en/TimeZoneNames_en_IE.java \
sun/util/resources/es/TimeZoneNames_es.java \
sun/util/resources/fr/TimeZoneNames_fr.java \
sun/util/resources/hi/TimeZoneNames_hi.java \
sun/util/resources/it/TimeZoneNames_it.java \
sun/util/resources/ja/TimeZoneNames_ja.java \
sun/util/resources/ko/TimeZoneNames_ko.java \
sun/util/resources/pt/TimeZoneNames_pt_BR.java \
sun/util/resources/sv/TimeZoneNames_sv.java \
sun/util/resources/zh/TimeZoneNames_zh_CN.java \
sun/util/resources/zh/TimeZoneNames_zh_TW.java \
sun/util/resources/zh/TimeZoneNames_zh_HK.java
......
......@@ -25,22 +25,112 @@
FILES_compiled_properties = \
sun/util/resources/ar/LocaleNames_ar.properties \
sun/util/resources/be/LocaleNames_be.properties \
sun/util/resources/bg/LocaleNames_bg.properties \
sun/util/resources/ca/LocaleNames_ca.properties \
sun/util/resources/cs/LocaleNames_cs.properties \
sun/util/resources/da/LocaleNames_da.properties \
sun/util/resources/de/LocaleNames_de.properties \
sun/util/resources/el/LocaleNames_el.properties \
sun/util/resources/el/LocaleNames_el_CY.properties \
sun/util/resources/en/LocaleNames_en_MT.properties \
sun/util/resources/en/LocaleNames_en_PH.properties \
sun/util/resources/en/LocaleNames_en_SG.properties \
sun/util/resources/es/LocaleNames_es.properties \
sun/util/resources/es/LocaleNames_es_US.properties \
sun/util/resources/et/LocaleNames_et.properties \
sun/util/resources/fi/LocaleNames_fi.properties \
sun/util/resources/fr/LocaleNames_fr.properties \
sun/util/resources/ga/LocaleNames_ga.properties \
sun/util/resources/hi/LocaleNames_hi.properties \
sun/util/resources/hr/LocaleNames_hr.properties \
sun/util/resources/hu/LocaleNames_hu.properties \
sun/util/resources/in/LocaleNames_in.properties \
sun/util/resources/is/LocaleNames_is.properties \
sun/util/resources/it/LocaleNames_it.properties \
sun/util/resources/iw/LocaleNames_iw.properties \
sun/util/resources/ja/LocaleNames_ja.properties \
sun/util/resources/ko/LocaleNames_ko.properties \
sun/util/resources/lt/LocaleNames_lt.properties \
sun/util/resources/lv/LocaleNames_lv.properties \
sun/util/resources/mk/LocaleNames_mk.properties \
sun/util/resources/ms/LocaleNames_ms.properties \
sun/util/resources/mt/LocaleNames_mt.properties \
sun/util/resources/nl/LocaleNames_nl.properties \
sun/util/resources/no/LocaleNames_no.properties \
sun/util/resources/no/LocaleNames_no_NO_NY.properties \
sun/util/resources/pl/LocaleNames_pl.properties \
sun/util/resources/pt/LocaleNames_pt.properties \
sun/util/resources/pt/LocaleNames_pt_BR.properties \
sun/util/resources/pt/LocaleNames_pt_PT.properties \
sun/util/resources/ro/LocaleNames_ro.properties \
sun/util/resources/ru/LocaleNames_ru.properties \
sun/util/resources/sk/LocaleNames_sk.properties \
sun/util/resources/sl/LocaleNames_sl.properties \
sun/util/resources/sq/LocaleNames_sq.properties \
sun/util/resources/sr/LocaleNames_sr.properties \
sun/util/resources/sr/LocaleNames_sr_Latn.properties \
sun/util/resources/sv/LocaleNames_sv.properties \
sun/util/resources/th/LocaleNames_th.properties \
sun/util/resources/tr/LocaleNames_tr.properties \
sun/util/resources/uk/LocaleNames_uk.properties \
sun/util/resources/vi/LocaleNames_vi.properties \
sun/util/resources/zh/LocaleNames_zh.properties \
sun/util/resources/zh/LocaleNames_zh_SG.properties \
sun/util/resources/zh/LocaleNames_zh_TW.properties \
\
sun/util/resources/ar/CalendarData_ar.properties \
sun/util/resources/be/CalendarData_be.properties \
sun/util/resources/bg/CalendarData_bg.properties \
sun/util/resources/ca/CalendarData_ca.properties \
sun/util/resources/cs/CalendarData_cs.properties \
sun/util/resources/da/CalendarData_da.properties \
sun/util/resources/de/CalendarData_de.properties \
sun/util/resources/el/CalendarData_el.properties \
sun/util/resources/el/CalendarData_el_CY.properties \
sun/util/resources/en/CalendarData_en_GB.properties \
sun/util/resources/en/CalendarData_en_IE.properties \
sun/util/resources/en/CalendarData_en_MT.properties \
sun/util/resources/es/CalendarData_es.properties \
sun/util/resources/es/CalendarData_es_ES.properties \
sun/util/resources/es/CalendarData_es_US.properties \
sun/util/resources/et/CalendarData_et.properties \
sun/util/resources/fi/CalendarData_fi.properties \
sun/util/resources/fr/CalendarData_fr.properties \
sun/util/resources/fr/CalendarData_fr_CA.properties \
sun/util/resources/hi/CalendarData_hi.properties \
sun/util/resources/hr/CalendarData_hr.properties \
sun/util/resources/hu/CalendarData_hu.properties \
sun/util/resources/in/CalendarData_in_ID.properties \
sun/util/resources/is/CalendarData_is.properties \
sun/util/resources/it/CalendarData_it.properties \
sun/util/resources/iw/CalendarData_iw.properties \
sun/util/resources/ja/CalendarData_ja.properties \
sun/util/resources/ko/CalendarData_ko.properties \
sun/util/resources/lt/CalendarData_lt.properties \
sun/util/resources/lv/CalendarData_lv.properties \
sun/util/resources/mk/CalendarData_mk.properties \
sun/util/resources/ms/CalendarData_ms_MY.properties \
sun/util/resources/mt/CalendarData_mt.properties \
sun/util/resources/mt/CalendarData_mt_MT.properties \
sun/util/resources/nl/CalendarData_nl.properties \
sun/util/resources/no/CalendarData_no.properties \
sun/util/resources/pl/CalendarData_pl.properties \
sun/util/resources/pt/CalendarData_pt.properties \
sun/util/resources/pt/CalendarData_pt_PT.properties \
sun/util/resources/ro/CalendarData_ro.properties \
sun/util/resources/ru/CalendarData_ru.properties \
sun/util/resources/sk/CalendarData_sk.properties \
sun/util/resources/sl/CalendarData_sl.properties \
sun/util/resources/sq/CalendarData_sq.properties \
sun/util/resources/sr/CalendarData_sr.properties \
sun/util/resources/sr/CalendarData_sr_Latn_BA.properties \
sun/util/resources/sr/CalendarData_sr_Latn_ME.properties \
sun/util/resources/sr/CalendarData_sr_Latn_RS.properties \
sun/util/resources/sv/CalendarData_sv.properties \
sun/util/resources/th/CalendarData_th.properties \
sun/util/resources/tr/CalendarData_tr.properties \
sun/util/resources/uk/CalendarData_uk.properties \
sun/util/resources/vi/CalendarData_vi.properties \
sun/util/resources/zh/CalendarData_zh.properties \
\
......@@ -61,13 +151,102 @@ FILES_compiled_properties = \
sun/util/resources/ar/CurrencyNames_ar_SY.properties \
sun/util/resources/ar/CurrencyNames_ar_TN.properties \
sun/util/resources/ar/CurrencyNames_ar_YE.properties \
sun/util/resources/be/CurrencyNames_be_BY.properties \
sun/util/resources/bg/CurrencyNames_bg_BG.properties \
sun/util/resources/ca/CurrencyNames_ca_ES.properties \
sun/util/resources/cs/CurrencyNames_cs_CZ.properties \
sun/util/resources/da/CurrencyNames_da_DK.properties \
sun/util/resources/de/CurrencyNames_de.properties \
sun/util/resources/de/CurrencyNames_de_AT.properties \
sun/util/resources/de/CurrencyNames_de_CH.properties \
sun/util/resources/de/CurrencyNames_de_DE.properties \
sun/util/resources/de/CurrencyNames_de_GR.properties \
sun/util/resources/de/CurrencyNames_de_LU.properties \
sun/util/resources/el/CurrencyNames_el_CY.properties \
sun/util/resources/el/CurrencyNames_el_GR.properties \
sun/util/resources/en/CurrencyNames_en_AU.properties \
sun/util/resources/en/CurrencyNames_en_CA.properties \
sun/util/resources/en/CurrencyNames_en_GB.properties \
sun/util/resources/en/CurrencyNames_en_IE.properties \
sun/util/resources/en/CurrencyNames_en_IN.properties \
sun/util/resources/en/CurrencyNames_en_MT.properties \
sun/util/resources/en/CurrencyNames_en_NZ.properties \
sun/util/resources/en/CurrencyNames_en_PH.properties \
sun/util/resources/en/CurrencyNames_en_SG.properties \
sun/util/resources/en/CurrencyNames_en_ZA.properties \
sun/util/resources/es/CurrencyNames_es.properties \
sun/util/resources/es/CurrencyNames_es_AR.properties \
sun/util/resources/es/CurrencyNames_es_BO.properties \
sun/util/resources/es/CurrencyNames_es_CL.properties \
sun/util/resources/es/CurrencyNames_es_CO.properties \
sun/util/resources/es/CurrencyNames_es_CR.properties \
sun/util/resources/es/CurrencyNames_es_CU.properties \
sun/util/resources/es/CurrencyNames_es_DO.properties \
sun/util/resources/es/CurrencyNames_es_EC.properties \
sun/util/resources/es/CurrencyNames_es_ES.properties \
sun/util/resources/es/CurrencyNames_es_GT.properties \
sun/util/resources/es/CurrencyNames_es_HN.properties \
sun/util/resources/es/CurrencyNames_es_MX.properties \
sun/util/resources/es/CurrencyNames_es_NI.properties \
sun/util/resources/es/CurrencyNames_es_PA.properties \
sun/util/resources/es/CurrencyNames_es_PE.properties \
sun/util/resources/es/CurrencyNames_es_PR.properties \
sun/util/resources/es/CurrencyNames_es_PY.properties \
sun/util/resources/es/CurrencyNames_es_SV.properties \
sun/util/resources/es/CurrencyNames_es_US.properties \
sun/util/resources/es/CurrencyNames_es_UY.properties \
sun/util/resources/es/CurrencyNames_es_VE.properties \
sun/util/resources/et/CurrencyNames_et_EE.properties \
sun/util/resources/fi/CurrencyNames_fi_FI.properties \
sun/util/resources/fr/CurrencyNames_fr.properties \
sun/util/resources/fr/CurrencyNames_fr_BE.properties \
sun/util/resources/fr/CurrencyNames_fr_CA.properties \
sun/util/resources/fr/CurrencyNames_fr_CH.properties \
sun/util/resources/fr/CurrencyNames_fr_FR.properties \
sun/util/resources/fr/CurrencyNames_fr_LU.properties \
sun/util/resources/ga/CurrencyNames_ga_IE.properties \
sun/util/resources/hi/CurrencyNames_hi_IN.properties \
sun/util/resources/hr/CurrencyNames_hr_HR.properties \
sun/util/resources/hu/CurrencyNames_hu_HU.properties \
sun/util/resources/in/CurrencyNames_in_ID.properties \
sun/util/resources/is/CurrencyNames_is_IS.properties \
sun/util/resources/it/CurrencyNames_it.properties \
sun/util/resources/it/CurrencyNames_it_CH.properties \
sun/util/resources/it/CurrencyNames_it_IT.properties \
sun/util/resources/iw/CurrencyNames_iw_IL.properties \
sun/util/resources/ja/CurrencyNames_ja.properties \
sun/util/resources/ja/CurrencyNames_ja_JP.properties \
sun/util/resources/ko/CurrencyNames_ko.properties \
sun/util/resources/ko/CurrencyNames_ko_KR.properties \
sun/util/resources/lt/CurrencyNames_lt_LT.properties \
sun/util/resources/lv/CurrencyNames_lv_LV.properties \
sun/util/resources/mk/CurrencyNames_mk_MK.properties \
sun/util/resources/ms/CurrencyNames_ms_MY.properties \
sun/util/resources/mt/CurrencyNames_mt_MT.properties \
sun/util/resources/nl/CurrencyNames_nl_BE.properties \
sun/util/resources/nl/CurrencyNames_nl_NL.properties \
sun/util/resources/no/CurrencyNames_no_NO.properties \
sun/util/resources/pl/CurrencyNames_pl_PL.properties \
sun/util/resources/pt/CurrencyNames_pt.properties \
sun/util/resources/pt/CurrencyNames_pt_BR.properties \
sun/util/resources/pt/CurrencyNames_pt_PT.properties \
sun/util/resources/ro/CurrencyNames_ro_RO.properties \
sun/util/resources/ru/CurrencyNames_ru_RU.properties \
sun/util/resources/sk/CurrencyNames_sk_SK.properties \
sun/util/resources/sl/CurrencyNames_sl_SI.properties \
sun/util/resources/sq/CurrencyNames_sq_AL.properties \
sun/util/resources/sr/CurrencyNames_sr_BA.properties \
sun/util/resources/sr/CurrencyNames_sr_CS.properties \
sun/util/resources/sr/CurrencyNames_sr_ME.properties \
sun/util/resources/sr/CurrencyNames_sr_RS.properties \
sun/util/resources/sr/CurrencyNames_sr_Latn_BA.properties \
sun/util/resources/sr/CurrencyNames_sr_Latn_ME.properties \
sun/util/resources/sr/CurrencyNames_sr_Latn_RS.properties \
sun/util/resources/sv/CurrencyNames_sv.properties \
sun/util/resources/sv/CurrencyNames_sv_SE.properties \
sun/util/resources/th/CurrencyNames_th_TH.properties \
sun/util/resources/tr/CurrencyNames_tr_TR.properties \
sun/util/resources/uk/CurrencyNames_uk_UA.properties \
sun/util/resources/vi/CurrencyNames_vi_VN.properties \
sun/util/resources/zh/CurrencyNames_zh_CN.properties \
sun/util/resources/zh/CurrencyNames_zh_TW.properties
......@@ -37,11 +37,11 @@ ifeq ($(OPENJDK),true)
# Start with CFLAGS (which gets us the required -xarch setting on solaris)
ifeq ($(PLATFORM), windows)
FT_OPTIONS = /nologo /c
FT_OPTIONS = -nologo -c
FREETYPE_DLL = $(FREETYPE_LIB_PATH)/freetype.dll
FT_LD_OPTIONS = $(FREETYPE_LIB_PATH)/freetype.lib
ifdef MT
FT_LD_OPTIONS += /manifest
FT_LD_OPTIONS += -manifest
endif
else
FT_OPTIONS = $(CFLAGS)
......@@ -72,11 +72,11 @@ $(FT_TEST): freetypecheck.c
$(prep-target)
ifeq ($(PLATFORM), windows)
$(CC) $(FT_OPTIONS) $(CC_OBJECT_OUTPUT_FLAG)$(FT_OBJ) $<
$(LINK) $(FT_LD_OPTIONS) /OUT:$(FT_TEST) $(FT_OBJ)
$(LINK) $(FT_LD_OPTIONS) -OUT:$(FT_TEST) $(FT_OBJ)
$(CP) $(FREETYPE_DLL) $(@D)/
ifdef MT
$(CP) $(MSVCRNN_DLL_PATH)/$(MSVCRNN_DLL) $(@D)/
$(MT) /manifest $(FT_TEST).manifest /outputresource:$(FT_TEST);#1
$(MT) -manifest $(FT_TEST).manifest -outputresource:$(FT_TEST);#1
endif
else
@$(CC) $(FT_OPTIONS) -o $@ $< $(FT_LD_OPTIONS)
......
#
# Copyright (c) 2012, Oracle and/or its affiliates. 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# A shell script which converts its first argument, which must be an existing
# path name, into a DOS (aka 8.3) path name. If the path is a file, only the
# directory part of the whole path will be converted.
# This shell script executes the Visual Basic helper script 'dospath.vbs'
# which must be located in the same directory as this script itself.
# The Visual Basic script will be invoked trough the "Windows Script Host"
# which is available by default on Windows since Windows 98.
pushd `dirname "$0"` > /dev/null
ABS_PATH=`pwd`
popd > /dev/null
if [ -d "$1" ]; then
echo `cd "$1" && cscript.exe -nologo $ABS_PATH/dospath.vbs`;
elif [ -f "$1" ]; then
DIR=`dirname "$1"`;
echo `cd "$DIR" && cscript.exe -nologo $ABS_PATH/dospath.vbs`\\`basename "$1"`;
fi
'
' Copyright (c) 2012, Oracle and/or its affiliates. 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. Oracle designates this
' particular file as subject to the "Classpath" exception as provided
' by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
' or visit www.oracle.com if you need additional information or have any
' questions.
'
'
' Visual Basic Script which returns the DOS (aka 8.3) filename of the current
' directory.
' Only called from 'dospath.sh' during a Windows build under MinGW/MSYS.
'
Set fso=CreateObject("Scripting.FileSystemObject")
Set path = fso.GetFolder(".")
WScript.Echo path.ShortPath
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
class AbstractGradient extends Paint {
public static enum CycleMethod {
NO_CYCLE, REFLECT, REPEAT
}
@XmlElement(name="stop") private ArrayList<GradientStop> stops;
public List<GradientStop> getStops() { return stops; }
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlEnumValue;
class Border {
enum BorderType {
@XmlEnumValue("empty") EMPTY,
@XmlEnumValue("painter") PAINTER
}
@XmlAttribute private BorderType type;
@XmlAttribute private String painter;
@XmlAttribute private int top;
@XmlAttribute private int left;
@XmlAttribute private int bottom;
@XmlAttribute private int right;
public String write() {
switch (type) {
case PAINTER:
return String.format("new PainterBorder(\"%s\", new Insets(%d, %d, %d, %d))",
painter, top, left, bottom, right);
case EMPTY:
return String.format("BorderFactory.createEmptyBorder(%d, %d, %d, %d)",
top, left, bottom, right);
default:
return "### Look, here's an unknown border! $$$";
}
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
class Canvas {
@XmlElement private Dimension size;
public Dimension getSize() { return size; }
@XmlElement(name="layer") private List<Layer> layers;
public List<Layer> getLayers() { return layers; }
@XmlElement private Insets stretchingInsets = null;
public Insets getStretchingInsets() { return stretchingInsets; }
public boolean isBlank() {
return layers.size() == 0 || (layers.size() == 1 && layers.get(0).isEmpty());
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
class ComponentColor {
private String propertyName;
private String defaultColorVariableName;
private float saturationOffset = 0, brightnessOffset = 0;
private int alphaOffset = 0;
ComponentColor(String propertyName,
String defaultColorVariableName,
float saturationOffset,
float brightnessOffset,
int alphaOffset) {
this.propertyName = propertyName;
this.defaultColorVariableName = defaultColorVariableName;
this.saturationOffset = saturationOffset;
this.brightnessOffset = brightnessOffset;
this.alphaOffset = alphaOffset;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ComponentColor c = (ComponentColor) o;
if (alphaOffset != c.alphaOffset) {
return false;
}
if (Float.compare(saturationOffset, c.saturationOffset) != 0) {
return false;
}
if (Float.compare(brightnessOffset, c.brightnessOffset) != 0) {
return false;
}
if (defaultColorVariableName != null ? !defaultColorVariableName.equals(c.defaultColorVariableName) : c.defaultColorVariableName != null) {
return false;
}
if (propertyName != null ? !propertyName.equals(c.propertyName) : c.propertyName != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 5;
hash = 61 * hash + (this.propertyName != null ? this.propertyName.hashCode() : 0);
hash = 61 * hash + (this.defaultColorVariableName != null ? this.defaultColorVariableName.hashCode() : 0);
hash = 61 * hash + Float.floatToIntBits(this.saturationOffset);
hash = 61 * hash + Float.floatToIntBits(this.brightnessOffset);
hash = 61 * hash + this.alphaOffset;
return hash;
}
public void write(StringBuilder sb) {
sb.append(" getComponentColor(c, \"").
append(propertyName).append("\", ").
append(defaultColorVariableName).append(", ").
append(saturationOffset).append("f, ").
append(brightnessOffset).append("f, ").
append(alphaOffset);
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
class Dimension {
@XmlAttribute int width;
@XmlAttribute int height;
public String write(boolean uiResource) {
String uiSuffix = (uiResource ? "UIResource" : "");
return String.format("new Dimension%s(%d, %d)", uiSuffix, width, height);
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
class Ellipse extends Shape {
@XmlAttribute private double x1;
public double getX1() { return x1; }
@XmlAttribute private double x2;
public double getX2() { return x2; }
@XmlAttribute private double y1;
public double getY1() { return y1; }
@XmlAttribute private double y2;
public double getY2() { return y2; }
}
/*
* Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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
......@@ -23,12 +23,7 @@
* questions.
*/
#include <windows.h>
#include "jni.h"
#include "jni_util.h"
package build.tools.generatenimbus;
JNIEXPORT jobject JNICALL
Java_java_io_FileSystem_getFileSystem(JNIEnv *env, jclass ignored)
{
return JNU_NewObjectByName(env, "java/io/WinNTFileSystem", "()V");
class Gradient extends AbstractGradient {
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
class GradientStop {
@XmlAttribute private float position;
public float getPosition() { return position; }
@XmlAttribute private float midpoint;
public float getMidpoint() { return midpoint; }
@XmlElement private Matte matte;
public Matte getColor() { return matte; }
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
class Insets {
@XmlAttribute int top;
@XmlAttribute int left;
@XmlAttribute int bottom;
@XmlAttribute int right;
public Insets() {
this(0, 0, 0, 0);
}
public Insets(int top, int left, int bottom, int right) {
this.top = top;
this.left = left;
this.bottom = bottom;
this.right = right;
}
public String write(boolean uiResource) {
String uiSuffix = (uiResource ? "UIResource" : "");
return String.format("new Insets%s(%d, %d, %d, %d)",
uiSuffix, top, left, bottom, right);
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlElements;
class Layer {
/** List of shapes in this layer, first shape is painted on top */
@XmlElements({
@XmlElement(name = "ellipse", type = Ellipse.class),
@XmlElement(name = "path", type = Path.class),
@XmlElement(name = "rectangle", type = Rectangle.class)
})
@XmlElementWrapper(name="shapes")
private List<Shape> shapes = new ArrayList<Shape>();
public List<Shape> getShapes() { return shapes; }
public boolean isEmpty() {
return shapes.isEmpty();
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
class Matte extends Paint {
@XmlAttribute private int red;
@XmlAttribute private int green;
@XmlAttribute private int blue;
@XmlAttribute private int alpha;
@XmlAttribute private String uiDefaultParentName = null;
@XmlAttribute private float hueOffset = 0;
@XmlAttribute private float saturationOffset = 0;
@XmlAttribute private float brightnessOffset = 0;
@XmlAttribute private int alphaOffset = 0;
@XmlAttribute private String componentPropertyName = null;
public String getComponentPropertyName() { return componentPropertyName; }
@XmlAttribute private boolean uiResource = true;
public boolean isAbsolute() {
return uiDefaultParentName == null;
}
public String getDeclaration() {
if (isAbsolute()) {
return String.format("new Color(%d, %d, %d, %d)",
red, green, blue, alpha);
} else {
return String.format("decodeColor(\"%s\", %sf, %sf, %sf, %d)",
uiDefaultParentName, String.valueOf(hueOffset),
String.valueOf(saturationOffset),
String.valueOf(brightnessOffset), alphaOffset);
}
}
public String write() {
if (isAbsolute()) {
return String.format("%s, %s, %s, %s", red, green, blue, alpha);
} else {
String s = String.format("\"%s\", %sf, %sf, %sf, %d",
uiDefaultParentName, String.valueOf(hueOffset),
String.valueOf(saturationOffset),
String.valueOf(brightnessOffset), alphaOffset);
if (! uiResource) {
s += ", false";
}
return s;
}
}
public ComponentColor createComponentColor(String variableName) {
return new ComponentColor(componentPropertyName, variableName,
saturationOffset, brightnessOffset, alphaOffset);
}
}
......@@ -25,157 +25,6 @@
package build.tools.generatenimbus;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
public abstract class Paint {
}
class Matte extends Paint {
@XmlAttribute private int red;
@XmlAttribute private int green;
@XmlAttribute private int blue;
@XmlAttribute private int alpha;
@XmlAttribute private String uiDefaultParentName = null;
@XmlAttribute private float hueOffset = 0;
@XmlAttribute private float saturationOffset = 0;
@XmlAttribute private float brightnessOffset = 0;
@XmlAttribute private int alphaOffset = 0;
@XmlAttribute private String componentPropertyName = null;
public String getComponentPropertyName() { return componentPropertyName; }
@XmlAttribute private boolean uiResource = true;
public boolean isAbsolute() {
return uiDefaultParentName == null;
}
public String getDeclaration() {
if (isAbsolute()) {
return String.format("new Color(%d, %d, %d, %d)",
red, green, blue, alpha);
} else {
return String.format("decodeColor(\"%s\", %sf, %sf, %sf, %d)",
uiDefaultParentName, String.valueOf(hueOffset),
String.valueOf(saturationOffset),
String.valueOf(brightnessOffset), alphaOffset);
}
}
public String write() {
if (isAbsolute()) {
return String.format("%s, %s, %s, %s", red, green, blue, alpha);
} else {
String s = String.format("\"%s\", %sf, %sf, %sf, %d",
uiDefaultParentName, String.valueOf(hueOffset),
String.valueOf(saturationOffset),
String.valueOf(brightnessOffset), alphaOffset);
if (! uiResource) {
s += ", false";
}
return s;
}
}
public ComponentColor createComponentColor(String variableName) {
return new ComponentColor(componentPropertyName, variableName,
saturationOffset, brightnessOffset, alphaOffset);
}
}
class ComponentColor {
private String propertyName;
private String defaultColorVariableName;
private float saturationOffset = 0, brightnessOffset = 0;
private int alphaOffset = 0;
ComponentColor(String propertyName,
String defaultColorVariableName,
float saturationOffset,
float brightnessOffset,
int alphaOffset) {
this.propertyName = propertyName;
this.defaultColorVariableName = defaultColorVariableName;
this.saturationOffset = saturationOffset;
this.brightnessOffset = brightnessOffset;
this.alphaOffset = alphaOffset;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ComponentColor c = (ComponentColor) o;
if (alphaOffset != c.alphaOffset) {
return false;
}
if (Float.compare(saturationOffset, c.saturationOffset) != 0) {
return false;
}
if (Float.compare(brightnessOffset, c.brightnessOffset) != 0) {
return false;
}
if (defaultColorVariableName != null ? !defaultColorVariableName.equals(c.defaultColorVariableName) : c.defaultColorVariableName != null) {
return false;
}
if (propertyName != null ? !propertyName.equals(c.propertyName) : c.propertyName != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 5;
hash = 61 * hash + (this.propertyName != null ? this.propertyName.hashCode() : 0);
hash = 61 * hash + (this.defaultColorVariableName != null ? this.defaultColorVariableName.hashCode() : 0);
hash = 61 * hash + Float.floatToIntBits(this.saturationOffset);
hash = 61 * hash + Float.floatToIntBits(this.brightnessOffset);
hash = 61 * hash + this.alphaOffset;
return hash;
}
public void write(StringBuilder sb) {
sb.append(" getComponentColor(c, \"").
append(propertyName).append("\", ").
append(defaultColorVariableName).append(", ").
append(saturationOffset).append("f, ").
append(brightnessOffset).append("f, ").
append(alphaOffset);
}
}
class GradientStop {
@XmlAttribute private float position;
public float getPosition() { return position; }
@XmlAttribute private float midpoint;
public float getMidpoint() { return midpoint; }
@XmlElement private Matte matte;
public Matte getColor() { return matte; }
}
class AbstractGradient extends Paint {
public static enum CycleMethod {
NO_CYCLE, REFLECT, REPEAT
}
@XmlElement(name="stop") private ArrayList<GradientStop> stops;
public List<GradientStop> getStops() { return stops; }
}
class Gradient extends AbstractGradient {
}
class RadialGradient extends AbstractGradient {
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
class Path extends Shape {
@XmlElement(name="point")
@XmlElementWrapper(name="points")
private List<Point> controlPoints = new ArrayList<Point>();
public List<Point> getControlPoints() { return controlPoints; }
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
class Point {
@XmlAttribute private double x;
public double getX() { return x; }
@XmlAttribute private double y;
public double getY() { return y; }
@XmlAttribute(name="cp1x") private double cp1x;
public double getCp1X() { return cp1x; }
@XmlAttribute(name="cp1y") private double cp1y;
public double getCp1Y() { return cp1y; }
@XmlAttribute(name="cp2x") private double cp2x;
public double getCp2X() { return cp2x; }
@XmlAttribute(name="cp2y") private double cp2y;
public double getCp2Y() { return cp2y; }
public boolean isP1Sharp() {
return cp1x == x && cp1y == y;
}
public boolean isP2Sharp() {
return cp2x == x && cp2y == y;
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
class RadialGradient extends AbstractGradient {
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
class Rectangle extends Shape {
@XmlAttribute private double x1;
public double getX1() { return x1; }
@XmlAttribute private double x2;
public double getX2() { return x2; }
@XmlAttribute private double y1;
public double getY1() { return y1; }
@XmlAttribute private double y2;
public double getY2() { return y2; }
@XmlAttribute
public double getRounding() {
double rounding = Math.abs(roundingX - x1) * 2;
return rounding > 2 ? rounding : 0;
}
public void setRounding(double rounding) {
if (rounding > 0 && rounding < 2) {
rounding = 0;
}
roundingX = rounding / 2d + x1;
}
private double roundingX;
public boolean isRounded() {
return getRounding() > 0;
}
}
......@@ -25,11 +25,8 @@
package build.tools.generatenimbus;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlElements;
......@@ -56,85 +53,3 @@ public abstract class Shape {
@XmlAttribute double y2;
}
}
class Point {
@XmlAttribute private double x;
public double getX() { return x; }
@XmlAttribute private double y;
public double getY() { return y; }
@XmlAttribute(name="cp1x") private double cp1x;
public double getCp1X() { return cp1x; }
@XmlAttribute(name="cp1y") private double cp1y;
public double getCp1Y() { return cp1y; }
@XmlAttribute(name="cp2x") private double cp2x;
public double getCp2X() { return cp2x; }
@XmlAttribute(name="cp2y") private double cp2y;
public double getCp2Y() { return cp2y; }
public boolean isP1Sharp() {
return cp1x == x && cp1y == y;
}
public boolean isP2Sharp() {
return cp2x == x && cp2y == y;
}
}
class Path extends Shape {
@XmlElement(name="point")
@XmlElementWrapper(name="points")
private List<Point> controlPoints = new ArrayList<Point>();
public List<Point> getControlPoints() { return controlPoints; }
}
class Rectangle extends Shape {
@XmlAttribute private double x1;
public double getX1() { return x1; }
@XmlAttribute private double x2;
public double getX2() { return x2; }
@XmlAttribute private double y1;
public double getY1() { return y1; }
@XmlAttribute private double y2;
public double getY2() { return y2; }
@XmlAttribute
public double getRounding() {
double rounding = Math.abs(roundingX - x1) * 2;
return rounding > 2 ? rounding : 0;
}
public void setRounding(double rounding) {
if (rounding > 0 && rounding < 2) {
rounding = 0;
}
roundingX = rounding / 2d + x1;
}
private double roundingX;
public boolean isRounded() {
return getRounding() > 0;
}
}
class Ellipse extends Shape {
@XmlAttribute private double x1;
public double getX1() { return x1; }
@XmlAttribute private double x2;
public double getX2() { return x2; }
@XmlAttribute private double y1;
public double getY1() { return y1; }
@XmlAttribute private double y2;
public double getY2() { return y2; }
}
......@@ -25,9 +25,7 @@
package build.tools.generatenimbus;
import java.awt.Font;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.*;
......@@ -78,139 +76,3 @@ public class SynthModel {
}
}
}
class Typeface {
public enum DeriveStyle {
Default, Off, On;
@Override public String toString() {
switch (this) {
default: return "null";
case On: return "true";
case Off: return "false";
}
}
}
@XmlAttribute private String uiDefaultParentName;
@XmlAttribute(name="family") private String name;
@XmlAttribute private int size;
@XmlAttribute private DeriveStyle bold = DeriveStyle.Default;
@XmlAttribute private DeriveStyle italic = DeriveStyle.Default;
@XmlAttribute private float sizeOffset = 1f;
public boolean isAbsolute() {
return uiDefaultParentName == null;
}
public String write() {
if (isAbsolute()) {
int style = Font.PLAIN;
if (bold == DeriveStyle.On) {
style = style | Font.BOLD;
}
if (italic == DeriveStyle.On) {
style = style | Font.ITALIC;
}
return String.format(
"new javax.swing.plaf.FontUIResource(\"%s\", %d, %d)",
name, style, size);
} else {
return String.format(
"new DerivedFont(\"%s\", %sf, %s, %s)",
uiDefaultParentName, String.valueOf(sizeOffset), bold, italic);
}
}
}
class Border {
enum BorderType {
@XmlEnumValue("empty") EMPTY,
@XmlEnumValue("painter") PAINTER
}
@XmlAttribute private BorderType type;
@XmlAttribute private String painter;
@XmlAttribute private int top;
@XmlAttribute private int left;
@XmlAttribute private int bottom;
@XmlAttribute private int right;
public String write() {
switch (type) {
case PAINTER:
return String.format("new PainterBorder(\"%s\", new Insets(%d, %d, %d, %d))",
painter, top, left, bottom, right);
case EMPTY:
return String.format("BorderFactory.createEmptyBorder(%d, %d, %d, %d)",
top, left, bottom, right);
default:
return "### Look, here's an unknown border! $$$";
}
}
}
class Insets {
@XmlAttribute int top;
@XmlAttribute int left;
@XmlAttribute int bottom;
@XmlAttribute int right;
public Insets() {
this(0, 0, 0, 0);
}
public Insets(int top, int left, int bottom, int right) {
this.top = top;
this.left = left;
this.bottom = bottom;
this.right = right;
}
public String write(boolean uiResource) {
String uiSuffix = (uiResource ? "UIResource" : "");
return String.format("new Insets%s(%d, %d, %d, %d)",
uiSuffix, top, left, bottom, right);
}
}
class Dimension {
@XmlAttribute int width;
@XmlAttribute int height;
public String write(boolean uiResource) {
String uiSuffix = (uiResource ? "UIResource" : "");
return String.format("new Dimension%s(%d, %d)", uiSuffix, width, height);
}
}
class Canvas {
@XmlElement private Dimension size;
public Dimension getSize() { return size; }
@XmlElement(name="layer") private List<Layer> layers;
public List<Layer> getLayers() { return layers; }
@XmlElement private Insets stretchingInsets = null;
public Insets getStretchingInsets() { return stretchingInsets; }
public boolean isBlank() {
return layers.size() == 0 || (layers.size() == 1 && layers.get(0).isEmpty());
}
}
class Layer {
/** List of shapes in this layer, first shape is painted on top */
@XmlElements({
@XmlElement(name = "ellipse", type = Ellipse.class),
@XmlElement(name = "path", type = Path.class),
@XmlElement(name = "rectangle", type = Rectangle.class)
})
@XmlElementWrapper(name="shapes")
private List<Shape> shapes = new ArrayList<Shape>();
public List<Shape> getShapes() { return shapes; }
public boolean isEmpty() {
return shapes.isEmpty();
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import java.awt.Font;
import javax.xml.bind.annotation.XmlAttribute;
class Typeface {
public enum DeriveStyle {
Default, Off, On;
@Override public String toString() {
switch (this) {
default: return "null";
case On: return "true";
case Off: return "false";
}
}
}
@XmlAttribute private String uiDefaultParentName;
@XmlAttribute(name="family") private String name;
@XmlAttribute private int size;
@XmlAttribute private DeriveStyle bold = DeriveStyle.Default;
@XmlAttribute private DeriveStyle italic = DeriveStyle.Default;
@XmlAttribute private float sizeOffset = 1f;
public boolean isAbsolute() {
return uiDefaultParentName == null;
}
public String write() {
if (isAbsolute()) {
int style = Font.PLAIN;
if (bold == DeriveStyle.On) {
style = style | Font.BOLD;
}
if (italic == DeriveStyle.On) {
style = style | Font.ITALIC;
}
return String.format(
"new javax.swing.plaf.FontUIResource(\"%s\", %d, %d)",
name, style, size);
} else {
return String.format(
"new DerivedFont(\"%s\", %sf, %s, %s)",
uiDefaultParentName, String.valueOf(sizeOffset), bold, italic);
}
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlElement;
class UIColor extends UIDefault<Matte> {
@XmlElement
public void setMatte(Matte m) {
setValue(m);
}
public String write() {
return String.format(" addColor(d, \"%s\", %s);\n",
getName(), getValue().write());
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
class UIComponent extends UIRegion {
@XmlAttribute private String componentName;
@XmlElement(name="stateType")
@XmlElementWrapper(name="stateTypes")
private List<UIStateType> stateTypes = new ArrayList<UIStateType>();
public List<UIStateType> getStateTypes() { return stateTypes; }
@Override public String getKey() {
if (key == null || "".equals(key)) {
if (componentName == null || "".equals(componentName)) {
return name;
} else {
return "\"" + componentName + "\"";
}
} else {
return key;
}
}
}
......@@ -26,7 +26,6 @@
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
public class UIDefault<T> {
@XmlAttribute private String name;
......@@ -44,83 +43,3 @@ public class UIDefault<T> {
this.value = value;
}
}
class UIColor extends UIDefault<Matte> {
@XmlElement
public void setMatte(Matte m) {
setValue(m);
}
public String write() {
return String.format(" addColor(d, \"%s\", %s);\n",
getName(), getValue().write());
}
}
class UIFont extends UIDefault<Typeface> {
@XmlElement
public void setTypeface(Typeface t) {
setValue(t);
}
public String write() {
return String.format(" d.put(\"%s\", %s);\n",
getName(), getValue().write());
}
}
class UIProperty extends UIDefault<String> {
public static enum PropertyType {
BOOLEAN, INT, FLOAT, DOUBLE, STRING, FONT, COLOR, INSETS, DIMENSION, BORDER
}
@XmlAttribute private PropertyType type;
@XmlElement private Border border;
@XmlElement private Dimension dimension;
@XmlElement private Insets insets;
@XmlElement private Matte matte;
@XmlElement private Typeface typeface;
@XmlAttribute
@Override public void setValue(String value) {
super.setValue(value);
}
public String write(String prefix) {
switch (type) {
case BOOLEAN:
return String.format(" d.put(\"%s%s\", Boolean.%s);\n",
prefix, getName(), getValue().toUpperCase()); ///autobox
case STRING:
return String.format(" d.put(\"%s%s\", \"%s\");\n",
prefix, getName(), getValue());
case INT:
return String.format(" d.put(\"%s%s\", new Integer(%s));\n",
prefix, getName(), getValue());
case FLOAT:
return String.format(" d.put(\"%s%s\", new Float(%sf));\n",
prefix, getName(), getValue());
case DOUBLE:
return String.format(" d.put(\"%s%s\", new Double(%s));\n",
prefix, getName(), getValue());
case COLOR:
return String.format(" addColor(d, \"%s%s\", %s);\n",
prefix, getName(), matte.write());
case FONT:
return String.format(" d.put(\"%s%s\", %s);\n",
prefix, getName(), typeface.write());
case INSETS:
return String.format(" d.put(\"%s%s\", %s);\n",
prefix, getName(), insets.write(true));
case DIMENSION:
return String.format(" d.put(\"%s%s\", new DimensionUIResource(%d, %d));\n",
prefix, getName(), dimension.width, dimension.height);
case BORDER:
return String.format(" d.put(\"%s%s\", new BorderUIResource(%s));\n",
prefix, getName(), border.write());
default:
return "### Look, something's wrong with UIProperty.write() $$$";
}
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlElement;
class UIFont extends UIDefault<Typeface> {
@XmlElement
public void setTypeface(Typeface t) {
setValue(t);
}
public String write() {
return String.format(" d.put(\"%s\", %s);\n",
getName(), getValue().write());
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
class UIIconRegion extends UIRegion {
@XmlAttribute private String basicKey;
@Override public void write(StringBuilder sb, StringBuilder styleBuffer, UIComponent comp, String prefix, String pkg) {
Dimension size = null;
String fileNamePrefix = Utils.normalize(prefix) + "Painter";
// write states ui defaults
for (UIState state : backgroundStates) {
Canvas canvas = state.getCanvas();
if (!canvas.isBlank()) {
state.write(sb, prefix, pkg, fileNamePrefix, getKey());
size = canvas.getSize();
}
}
if (size != null) {
// Put SynthIconImpl wrapper in UiDefaults
String k = (basicKey == null ? prefix + "." + getKey() : basicKey);
sb.append(String.format(
" d.put(\"%s\", new NimbusIcon(\"%s\", \"%sPainter\", %d, %d));\n",
k, prefix, getKey(), size.width, size.height));
}
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
class UIProperty extends UIDefault<String> {
public static enum PropertyType {
BOOLEAN, INT, FLOAT, DOUBLE, STRING, FONT, COLOR, INSETS, DIMENSION, BORDER
}
@XmlAttribute private PropertyType type;
@XmlElement private Border border;
@XmlElement private Dimension dimension;
@XmlElement private Insets insets;
@XmlElement private Matte matte;
@XmlElement private Typeface typeface;
@XmlAttribute
@Override public void setValue(String value) {
super.setValue(value);
}
public String write(String prefix) {
switch (type) {
case BOOLEAN:
return String.format(" d.put(\"%s%s\", Boolean.%s);\n",
prefix, getName(), getValue().toUpperCase()); ///autobox
case STRING:
return String.format(" d.put(\"%s%s\", \"%s\");\n",
prefix, getName(), getValue());
case INT:
return String.format(" d.put(\"%s%s\", new Integer(%s));\n",
prefix, getName(), getValue());
case FLOAT:
return String.format(" d.put(\"%s%s\", new Float(%sf));\n",
prefix, getName(), getValue());
case DOUBLE:
return String.format(" d.put(\"%s%s\", new Double(%s));\n",
prefix, getName(), getValue());
case COLOR:
return String.format(" addColor(d, \"%s%s\", %s);\n",
prefix, getName(), matte.write());
case FONT:
return String.format(" d.put(\"%s%s\", %s);\n",
prefix, getName(), typeface.write());
case INSETS:
return String.format(" d.put(\"%s%s\", %s);\n",
prefix, getName(), insets.write(true));
case DIMENSION:
return String.format(" d.put(\"%s%s\", new DimensionUIResource(%d, %d));\n",
prefix, getName(), dimension.width, dimension.height);
case BORDER:
return String.format(" d.put(\"%s%s\", new BorderUIResource(%s));\n",
prefix, getName(), border.write());
default:
return "### Look, something's wrong with UIProperty.write() $$$";
}
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlElements;
class UIRegion {
@XmlAttribute protected String name;
@XmlAttribute protected String key;
@XmlAttribute private boolean opaque = false;
@XmlElement private Insets contentMargins = new Insets(0, 0, 0, 0);
@XmlElement(name="state")
@XmlElementWrapper(name="backgroundStates")
protected List<UIState> backgroundStates = new ArrayList<UIState>();
public List<UIState> getBackgroundStates() { return backgroundStates; }
@XmlElement(name="state")
@XmlElementWrapper(name="foregroundStates")
protected List<UIState> foregroundStates = new ArrayList<UIState>();
public List<UIState> getForegroundStates() { return foregroundStates; }
@XmlElement(name="state")
@XmlElementWrapper(name="borderStates")
protected List<UIState> borderStates = new ArrayList<UIState>();
public List<UIState> getBorderStates() { return borderStates; }
@XmlElement private UIStyle style = new UIStyle();
@XmlElements({
@XmlElement(name = "region", type = UIRegion.class),
@XmlElement(name = "uiComponent", type = UIComponent.class),
@XmlElement(name = "uiIconRegion", type = UIIconRegion.class)
})
@XmlElementWrapper(name="regions")
private List<UIRegion> subRegions = new ArrayList<UIRegion>();
public List<UIRegion> getSubRegions() { return subRegions; }
protected void initStyles(UIStyle parentStyle) {
style.setParentStyle(parentStyle);
for (UIState state: backgroundStates) {
state.getStyle().setParentStyle(this.style);
}
for (UIState state: foregroundStates) {
state.getStyle().setParentStyle(this.style);
}
for (UIState state: borderStates) {
state.getStyle().setParentStyle(this.style);
}
for (UIRegion region: subRegions) {
region.initStyles(this.style);
}
}
public String getKey() {
return key == null || "".equals(key) ? name : key;
}
private boolean hasCanvas() {
for (UIState s : backgroundStates) {
if (s.hasCanvas()) return true;
}
for (UIState s : borderStates) {
if (s.hasCanvas()) return true;
}
for (UIState s : foregroundStates) {
if (s.hasCanvas()) return true;
}
for (UIRegion r: subRegions) {
if (r.hasCanvas()) return true;
}
return false;
}
public void write(StringBuilder sb, StringBuilder styleBuffer,
UIComponent comp, String prefix, String pkg) {
// write content margins
sb.append(String.format(" d.put(\"%s.contentMargins\", %s);\n",
prefix, contentMargins.write(true)));
// write opaque if true
if (opaque) {
sb.append(String.format(" d.put(\"%s.opaque\", Boolean.TRUE);\n", prefix));
}
// register component with LAF
String regionCode = "Region." + Utils.regionNameToCaps(name);
styleBuffer.append(String.format(" register(%s, \"%s\");\n",
regionCode, prefix));
//write the State, if necessary
StringBuffer regString = new StringBuffer();
List<UIStateType> types = comp.getStateTypes();
if (types != null && types.size() > 0) {
for (UIStateType type : types) {
regString.append(type.getKey());
regString.append(",");
}
//remove the last ","
regString.deleteCharAt(regString.length() - 1);
}
if (! regString.equals("Enabled,MouseOver,Pressed,Disabled,Focused,Selected,Default") && types.size() > 0) {
//there were either custom states, or the normal states were in a custom order
//so go ahead and write out prefix.State
sb.append(String.format(" d.put(\"%s.States\", \"%s\");\n",
prefix, regString));
}
// write out any custom states, if necessary
for (UIStateType type : types) {
String synthState = type.getKey();
if (! "Enabled".equals(synthState) &&
! "MouseOver".equals(synthState) &&
! "Pressed".equals(synthState) &&
! "Disabled".equals(synthState) &&
! "Focused".equals(synthState) &&
! "Selected".equals(synthState) &&
! "Default".equals(synthState)) {
//what we have here, gentlemen, is a bona-fide custom state.
//if the type is not one of the standard types, then construct a name for
//the new type, and write out a new subclass of State.
String className = Utils.normalize(prefix) + synthState + "State";
sb.append(String.format(" d.put(\"%s.%s\", new %s());\n",
prefix, synthState, className));
String body = type.getCodeSnippet();
Map<String, String> variables = Generator.getVariables();
variables.put("STATE_NAME", className);
variables.put("STATE_KEY", synthState);
variables.put("BODY", body);
Generator.writeSrcFile("StateImpl", variables, className);
}
}
// write style
sb.append(style.write(prefix + '.'));
String fileName = Utils.normalize(prefix) + "Painter";
boolean hasCanvas = hasCanvas();
if (hasCanvas) {
PainterGenerator.writePainter(this, fileName);
}
// write states ui defaults
for (UIState state : backgroundStates) {
state.write(sb, prefix, pkg, fileName, "background");
}
for (UIState state : foregroundStates) {
state.write(sb, prefix, pkg, fileName, "foreground");
}
for (UIState state : borderStates) {
state.write(sb, prefix, pkg, fileName, "border");
}
// handle sub regions
for (UIRegion subreg : subRegions) {
String p = prefix;
if (! (subreg instanceof UIIconRegion)) {
p = prefix + ":" + Utils.escape(subreg.getKey());
}
UIComponent c = comp;
if (subreg instanceof UIComponent) {
c = (UIComponent) subreg;
}
subreg.write(sb, styleBuffer, c, p, pkg);
}
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
class UIState {
@XmlAttribute private String stateKeys;
public String getStateKeys() { return stateKeys; }
/** Indicates whether to invert the meaning of the 9-square stretching insets */
@XmlAttribute private boolean inverted;
/** A cached string representing the list of stateKeys deliminated with "+" */
private String cachedName = null;
@XmlElement private Canvas canvas;
public Canvas getCanvas() { return canvas; }
@XmlElement private UIStyle style;
public UIStyle getStyle() { return style; }
public boolean hasCanvas() {
return ! canvas.isBlank();
}
public static List<String> stringToKeys(String keysString) {
return Arrays.asList(keysString.split("\\+"));
}
public String getName() {
if (cachedName == null) {
StringBuilder buf = new StringBuilder();
List<String> keys = stringToKeys(stateKeys);
Collections.sort(keys);
for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
buf.append(iter.next());
if (iter.hasNext()) {
buf.append('+');
}
}
cachedName = buf.toString();
}
return cachedName;
}
public void write(StringBuilder sb, String prefix, String pkg, String fileNamePrefix, String painterPrefix) {
String statePrefix = prefix + "[" + getName() + "]";
// write state style
sb.append(style.write(statePrefix + '.'));
// write painter
if (hasCanvas()) {
writeLazyPainter(sb, statePrefix, pkg, fileNamePrefix, painterPrefix);
}
}
private void writeLazyPainter(StringBuilder sb, String statePrefix, String packageNamePrefix, String fileNamePrefix, String painterPrefix) {
String cacheModeString = "AbstractRegionPainter.PaintContext.CacheMode." + style.getCacheMode();
String stateConstant = Utils.statesToConstantName(painterPrefix + "_" + stateKeys);
sb.append(String.format(
" d.put(\"%s.%sPainter\", new LazyPainter(\"%s.%s\", %s.%s, %s, %s, %b, %s, %s, %s));\n",
statePrefix, painterPrefix, packageNamePrefix, fileNamePrefix,
fileNamePrefix, stateConstant, canvas.getStretchingInsets().write(false),
canvas.getSize().write(false), inverted, cacheModeString,
Utils.formatDouble(style.getMaxHozCachedImgScaling()),
Utils.formatDouble(style.getMaxVertCachedImgScaling())));
}
}
/*
* Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.generatenimbus;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
class UIStateType {
@XmlAttribute private String key;
public String getKey() { return key; }
@XmlElement private String codeSnippet;
public String getCodeSnippet() { return codeSnippet; }
}
......@@ -26,15 +26,9 @@
package build.tools.generatenimbus;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlElements;
class UIStyle {
......@@ -115,285 +109,3 @@ class UIStyle {
return sb.toString();
}
}
class UIRegion {
@XmlAttribute protected String name;
@XmlAttribute protected String key;
@XmlAttribute private boolean opaque = false;
@XmlElement private Insets contentMargins = new Insets(0, 0, 0, 0);
@XmlElement(name="state")
@XmlElementWrapper(name="backgroundStates")
protected List<UIState> backgroundStates = new ArrayList<UIState>();
public List<UIState> getBackgroundStates() { return backgroundStates; }
@XmlElement(name="state")
@XmlElementWrapper(name="foregroundStates")
protected List<UIState> foregroundStates = new ArrayList<UIState>();
public List<UIState> getForegroundStates() { return foregroundStates; }
@XmlElement(name="state")
@XmlElementWrapper(name="borderStates")
protected List<UIState> borderStates = new ArrayList<UIState>();
public List<UIState> getBorderStates() { return borderStates; }
@XmlElement private UIStyle style = new UIStyle();
@XmlElements({
@XmlElement(name = "region", type = UIRegion.class),
@XmlElement(name = "uiComponent", type = UIComponent.class),
@XmlElement(name = "uiIconRegion", type = UIIconRegion.class)
})
@XmlElementWrapper(name="regions")
private List<UIRegion> subRegions = new ArrayList<UIRegion>();
public List<UIRegion> getSubRegions() { return subRegions; }
protected void initStyles(UIStyle parentStyle) {
style.setParentStyle(parentStyle);
for (UIState state: backgroundStates) {
state.getStyle().setParentStyle(this.style);
}
for (UIState state: foregroundStates) {
state.getStyle().setParentStyle(this.style);
}
for (UIState state: borderStates) {
state.getStyle().setParentStyle(this.style);
}
for (UIRegion region: subRegions) {
region.initStyles(this.style);
}
}
public String getKey() {
return key == null || "".equals(key) ? name : key;
}
private boolean hasCanvas() {
for (UIState s : backgroundStates) {
if (s.hasCanvas()) return true;
}
for (UIState s : borderStates) {
if (s.hasCanvas()) return true;
}
for (UIState s : foregroundStates) {
if (s.hasCanvas()) return true;
}
for (UIRegion r: subRegions) {
if (r.hasCanvas()) return true;
}
return false;
}
public void write(StringBuilder sb, StringBuilder styleBuffer,
UIComponent comp, String prefix, String pkg) {
// write content margins
sb.append(String.format(" d.put(\"%s.contentMargins\", %s);\n",
prefix, contentMargins.write(true)));
// write opaque if true
if (opaque) {
sb.append(String.format(" d.put(\"%s.opaque\", Boolean.TRUE);\n", prefix));
}
// register component with LAF
String regionCode = "Region." + Utils.regionNameToCaps(name);
styleBuffer.append(String.format(" register(%s, \"%s\");\n",
regionCode, prefix));
//write the State, if necessary
StringBuffer regString = new StringBuffer();
List<UIStateType> types = comp.getStateTypes();
if (types != null && types.size() > 0) {
for (UIStateType type : types) {
regString.append(type.getKey());
regString.append(",");
}
//remove the last ","
regString.deleteCharAt(regString.length() - 1);
}
if (! regString.equals("Enabled,MouseOver,Pressed,Disabled,Focused,Selected,Default") && types.size() > 0) {
//there were either custom states, or the normal states were in a custom order
//so go ahead and write out prefix.State
sb.append(String.format(" d.put(\"%s.States\", \"%s\");\n",
prefix, regString));
}
// write out any custom states, if necessary
for (UIStateType type : types) {
String synthState = type.getKey();
if (! "Enabled".equals(synthState) &&
! "MouseOver".equals(synthState) &&
! "Pressed".equals(synthState) &&
! "Disabled".equals(synthState) &&
! "Focused".equals(synthState) &&
! "Selected".equals(synthState) &&
! "Default".equals(synthState)) {
//what we have here, gentlemen, is a bona-fide custom state.
//if the type is not one of the standard types, then construct a name for
//the new type, and write out a new subclass of State.
String className = Utils.normalize(prefix) + synthState + "State";
sb.append(String.format(" d.put(\"%s.%s\", new %s());\n",
prefix, synthState, className));
String body = type.getCodeSnippet();
Map<String, String> variables = Generator.getVariables();
variables.put("STATE_NAME", className);
variables.put("STATE_KEY", synthState);
variables.put("BODY", body);
Generator.writeSrcFile("StateImpl", variables, className);
}
}
// write style
sb.append(style.write(prefix + '.'));
String fileName = Utils.normalize(prefix) + "Painter";
boolean hasCanvas = hasCanvas();
if (hasCanvas) {
PainterGenerator.writePainter(this, fileName);
}
// write states ui defaults
for (UIState state : backgroundStates) {
state.write(sb, prefix, pkg, fileName, "background");
}
for (UIState state : foregroundStates) {
state.write(sb, prefix, pkg, fileName, "foreground");
}
for (UIState state : borderStates) {
state.write(sb, prefix, pkg, fileName, "border");
}
// handle sub regions
for (UIRegion subreg : subRegions) {
String p = prefix;
if (! (subreg instanceof UIIconRegion)) {
p = prefix + ":" + Utils.escape(subreg.getKey());
}
UIComponent c = comp;
if (subreg instanceof UIComponent) {
c = (UIComponent) subreg;
}
subreg.write(sb, styleBuffer, c, p, pkg);
}
}
}
class UIIconRegion extends UIRegion {
@XmlAttribute private String basicKey;
@Override public void write(StringBuilder sb, StringBuilder styleBuffer, UIComponent comp, String prefix, String pkg) {
Dimension size = null;
String fileNamePrefix = Utils.normalize(prefix) + "Painter";
// write states ui defaults
for (UIState state : backgroundStates) {
Canvas canvas = state.getCanvas();
if (!canvas.isBlank()) {
state.write(sb, prefix, pkg, fileNamePrefix, getKey());
size = canvas.getSize();
}
}
if (size != null) {
// Put SynthIconImpl wrapper in UiDefaults
String k = (basicKey == null ? prefix + "." + getKey() : basicKey);
sb.append(String.format(
" d.put(\"%s\", new NimbusIcon(\"%s\", \"%sPainter\", %d, %d));\n",
k, prefix, getKey(), size.width, size.height));
}
}
}
class UIComponent extends UIRegion {
@XmlAttribute private String componentName;
@XmlElement(name="stateType")
@XmlElementWrapper(name="stateTypes")
private List<UIStateType> stateTypes = new ArrayList<UIStateType>();
public List<UIStateType> getStateTypes() { return stateTypes; }
@Override public String getKey() {
if (key == null || "".equals(key)) {
if (componentName == null || "".equals(componentName)) {
return name;
} else {
return "\"" + componentName + "\"";
}
} else {
return key;
}
}
}
class UIState {
@XmlAttribute private String stateKeys;
public String getStateKeys() { return stateKeys; }
/** Indicates whether to invert the meaning of the 9-square stretching insets */
@XmlAttribute private boolean inverted;
/** A cached string representing the list of stateKeys deliminated with "+" */
private String cachedName = null;
@XmlElement private Canvas canvas;
public Canvas getCanvas() { return canvas; }
@XmlElement private UIStyle style;
public UIStyle getStyle() { return style; }
public boolean hasCanvas() {
return ! canvas.isBlank();
}
public static List<String> stringToKeys(String keysString) {
return Arrays.asList(keysString.split("\\+"));
}
public String getName() {
if (cachedName == null) {
StringBuilder buf = new StringBuilder();
List<String> keys = stringToKeys(stateKeys);
Collections.sort(keys);
for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
buf.append(iter.next());
if (iter.hasNext()) {
buf.append('+');
}
}
cachedName = buf.toString();
}
return cachedName;
}
public void write(StringBuilder sb, String prefix, String pkg, String fileNamePrefix, String painterPrefix) {
String statePrefix = prefix + "[" + getName() + "]";
// write state style
sb.append(style.write(statePrefix + '.'));
// write painter
if (hasCanvas()) {
writeLazyPainter(sb, statePrefix, pkg, fileNamePrefix, painterPrefix);
}
}
private void writeLazyPainter(StringBuilder sb, String statePrefix, String packageNamePrefix, String fileNamePrefix, String painterPrefix) {
String cacheModeString = "AbstractRegionPainter.PaintContext.CacheMode." + style.getCacheMode();
String stateConstant = Utils.statesToConstantName(painterPrefix + "_" + stateKeys);
sb.append(String.format(
" d.put(\"%s.%sPainter\", new LazyPainter(\"%s.%s\", %s.%s, %s, %s, %b, %s, %s, %s));\n",
statePrefix, painterPrefix, packageNamePrefix, fileNamePrefix,
fileNamePrefix, stateConstant, canvas.getStretchingInsets().write(false),
canvas.getSize().write(false), inverted, cacheModeString,
Utils.formatDouble(style.getMaxHozCachedImgScaling()),
Utils.formatDouble(style.getMaxVertCachedImgScaling())));
}
}
class UIStateType {
@XmlAttribute private String key;
public String getKey() { return key; }
@XmlElement private String codeSnippet;
public String getCodeSnippet() { return codeSnippet; }
}
......@@ -312,7 +312,8 @@ $(eval $(call SetupJavaCompilation,BUILD_JDK,\
JDK_BASE_HEADER_CLASSES:=java.lang.Integer \
java.lang.Long \
java.net.SocketOptions \
sun.nio.ch.IOStatus
sun.nio.ch.IOStatus \
java.io.FileSystem
JDK_BASE_HEADER_JAVA_FILES:=$(patsubst %,$(JDK_TOPDIR)/src/share/classes/%.java,\
$(subst .,/,$(JDK_BASE_HEADER_CLASSES)))
......
......@@ -1540,96 +1540,6 @@ BUILD_LIBRARIES += $(BUILD_LIBJAWT)
##########################################################################################
ifndef OPENJDK
ifneq ($(OPENJDK_TARGET_OS), macosx)
LIBJDBCODBC_DIR :=$(JDK_OUTPUTDIR)/objs/libjdbcodbc
LIBJDBCODBC_NAME :=$(LIBRARY_PREFIX)JdbcOdbc$(SHARED_LIBRARY_SUFFIX)
LIBJDBCODBC_CFLAGS:=
LIBJDBCODBC_LIBS :=
LIBJDBCODBC_LDFLAGS:=
ifeq ($(OPENJDK_TARGET_OS), windows)
LIBJDBCODBC_LDFLAGS:=$(LDFLAGS_JDKLIB)
LIBJDBCODBC_LIBS += odbc32.lib odbccp32.lib $(WIN_JAVA_LIB) advapi32.lib
else
LIBJDBCODBC_CFLAGS:=-DUNIX
#
# This mimics "current" build system exactly. Link against fake -lodbcinst -lodbc
# but...those are linked with the -soname, causing the dependency to be dropped on linux (gnu ld)
# but kept with other linker (solaris)
#
# IMO very weird behaviour...very weird
#
LIBJDBCODBC_LDFLAGS:=$(patsubst defs,nodefs,$(LDFLAGS_JDKLIB)) \
-Xlinker -z -Xlinker nodefs
LIBJDBCODBC_LIBS += -L$(LIBJDBCODBC_DIR) -lodbcinst -lodbc
LIBJDBCODBC_SONAME:=$(call SET_SHARED_LIBRARY_NAME,$(LIBJDBCODBC_NAME))
endif
$(eval $(call SetupNativeCompilation,BUILD_LIBJDBCODBC,\
LIBRARY:=JdbcOdbc,\
OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
SRC:=$(JDK_TOPDIR)/src/closed/share/classes/sun/jdbc/odbc,\
EXCLUDE_FILES:=dummyodbc.c,\
LANG:=C,\
OPTIMIZATION:=LOW, \
CFLAGS:=$(LIBJDBCODBC_CFLAGS) $(CFLAGS_JDKLIB) \
$(SHARED_LIBRARY_FLAGS),\
LDFLAGS:=$(LIBJDBCODBC_LDFLAGS) \
$(call SET_SHARED_LIBRARY_ORIGIN) $(LIBJDBCODBC_LIBS),\
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) $(LIBJDBCODBC_SONAME),\
VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
RC_FLAGS:=$(RC_FLAGS)\
/D "JDK_FNAME=JdbcOdbc.dll" \
/D "JDK_INTERNAL_NAME=JdbcOdbc" \
/D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(LIBJDBCODBC_DIR),\
DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
$(BUILD_LIBJDBCODBC) : $(BUILD_LIBJAVA)
BUILD_LIBRARIES += $(BUILD_LIBJDBCODBC)
ifneq ($(OPENJDK_TARGET_OS), windows)
$(eval $(call SetupNativeCompilation,BUILD_FAKEODBCINST,\
LIBRARY:=odbcinst,\
OUTPUT_DIR:=$(LIBJDBCODBC_DIR),\
SRC:=$(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc,\
INCLUDE_FILES:=dummyodbc1.c,\
LANG:=C,\
OPTIMIZATION:=LOW, \
CFLAGS:=$(CFLAGS_JDKLIB),\
LDFLAGS:=$(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN) $(LIBJDBCODBC_LDFLAGS),\
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) $(LIBJDBCODBC_SONAME),\
OBJECT_DIR:=$(LIBJDBCODBC_DIR)))
$(eval $(call SetupNativeCompilation,BUILD_FAKEODBC,\
LIBRARY:=odbc,\
OUTPUT_DIR:=$(LIBJDBCODBC_DIR),\
SRC:=$(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc,\
INCLUDE_FILES:=dummyodbc2.c,\
LANG:=C,\
OPTIMIZATION:=LOW, \
CFLAGS:=$(LIBJDBCODBC_CFLAGS) $(CFLAGS_JDKLIB),\
LDFLAGS:=$(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN) $(LIBJDBCODBC_LDFLAGS),\
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) $(LIBJDBCODBC_SONAME),\
OBJECT_DIR:=$(LIBJDBCODBC_DIR)))
$(BUILD_FAKEODBCINST) $(BUILD_FAKEODBC) : \
$(BUILD_LIBJAVA)
$(BUILD_LIBJDBCODBC) : $(BUILD_FAKEODBCINST) $(BUILD_FAKEODBC)
endif
endif
endif
##########################################################################################
LIBINSTRUMENT_SRC :=$(JDK_TOPDIR)/src/share/instrument \
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument
......
......@@ -188,12 +188,6 @@ ifdef OPENJDK
ALL_META-INF_DIRS:=$(filter-out %com/sun/script/javascript/META-INF,$(ALL_META-INF_DIRS))
endif
ifndef OPENJDK
ifneq ($(OPENJDK_TARGET_OS), macosx)
ALL_META-INF_DIRS += $(JDK_TOPDIR)/src/closed/share/classes/sun/jdbc/odbc/META-INF
endif
endif
ifndef OPENJDK
ALL_META-INF_DIRS += $(JDK_TOPDIR)/src/closed/share/classes/sun/java2d/cmm/kcms/META-INF
endif
......
......@@ -74,10 +74,46 @@ JARS+=$(JDK_OUTPUTDIR)/lib/ext/dnsns.jar
##########################################################################################
LOCALEDATA_INCLUDE_LOCALES := ar hi iw ja ko th vi zh
LOCALEDATA_INCLUDE_LOCALES := ar be bg ca cs da de el es et fi fr ga hi hr hu in is it \
iw ja ko lt lv mk ms mt nl no pl pt ro ru sk sl sq sr sv \
th tr uk vi zh
LOCALEDATA_INCLUDES := $(addprefix sun/text/resources/,$(LOCALEDATA_INCLUDE_LOCALES)) \
$(addprefix sun/util/resources/,$(LOCALEDATA_INCLUDE_LOCALES))
# For non-US English locale data
LOCALEDATA_INCLUDES += \
sun/text/resources/en/FormatData_en_AU.class \
sun/text/resources/en/FormatData_en_CA.class \
sun/text/resources/en/FormatData_en_GB.class \
sun/text/resources/en/FormatData_en_IE.class \
sun/text/resources/en/FormatData_en_IN.class \
sun/text/resources/en/FormatData_en_MT.class \
sun/text/resources/en/FormatData_en_NZ.class \
sun/text/resources/en/FormatData_en_PH.class \
sun/text/resources/en/FormatData_en_SG.class \
sun/text/resources/en/FormatData_en_ZA.class \
sun/util/resources/en/CalendarData_en_GB.class \
sun/util/resources/en/CalendarData_en_IE.class \
sun/util/resources/en/CalendarData_en_MT.class \
sun/util/resources/en/CurrencyNames_en_AU.class \
sun/util/resources/en/CurrencyNames_en_CA.class \
sun/util/resources/en/CurrencyNames_en_GB.class \
sun/util/resources/en/CurrencyNames_en_IE.class \
sun/util/resources/en/CurrencyNames_en_IN.class \
sun/util/resources/en/CurrencyNames_en_MT.class \
sun/util/resources/en/CurrencyNames_en_NZ.class \
sun/util/resources/en/CurrencyNames_en_PH.class \
sun/util/resources/en/CurrencyNames_en_SG.class \
sun/util/resources/en/CurrencyNames_en_ZA.class \
sun/util/resources/en/LocaleNames_en_MT.class \
sun/util/resources/en/LocaleNames_en_PH.class \
sun/util/resources/en/LocaleNames_en_SG.class \
sun/util/resources/en/TimeZoneNames_en_CA.class \
sun/util/resources/en/TimeZoneNames_en_GB.class \
sun/util/resources/en/TimeZoneNames_en_IE.class
$(eval $(call SetupArchive,BUILD_LOCALEDATA_JAR,,\
SRCS:=$(JDK_OUTPUTDIR)/classes,\
SUFFIXES:=.class _dict _th,\
......@@ -249,7 +285,6 @@ endif
ifeq ($(OPENJDK_TARGET_OS), macosx)
RT_JAR_EXCLUDES += com/sun/nio/sctp \
sun/nio/ch/sctp \
sun/jdbc \
sun/nio/ch/DevPollArrayWrapper\$$$$Updator.class \
sun/nio/ch/DevPollArrayWrapper.class \
sun/nio/ch/DevPollSelectorImpl.class \
......
......@@ -50,26 +50,26 @@ ifneq (,$(MISSING_RESOURCES)$(NEW_RESOURCES))
$(shell $(RM) $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/locale/provider/LocaleDataMetaInfo.java)
endif
# The non-euro zone locales have to be separated from the euro-zone locales.
NON_EURO_LOCALES:=ar% hi% iw% ja% ko% th% vi% zh%
# The US locales
US_LOCALES:=en en-US
# ja-JP-JP and th-TH-TH need to be manually added, as they don't have any resource files.
ALL_NON_EURO_LOCALES:=ja-JP-JP th-TH-TH
ALL_NON_US_LOCALES:=ja-JP-JP th-TH-TH
SED_ARGS:=-e 's|$(HASH)warn This file is preprocessed before being compiled|// -- This file was mechanically generated: Do not edit! -- //|g'
# This macro creates a sed expression that substitues for example:
# #FormatData_EuroLocales# with: be be_BY bg bg_BG ca ca_ES... and some more.
# #FormatData_USLocales# with: en and/or en_US.
define CaptureLocale
$1_LOCALES := $$(subst _,-,$$(filter-out $1,$$(subst $1_,,$$(filter $1_%,$(LOCALE_RESOURCES)))))
$1_EURO_LOCALES := $$(filter-out $(NON_EURO_LOCALES),$$($1_LOCALES))
$1_NON_EURO_LOCALES := $$(filter $(NON_EURO_LOCALES),$$($1_LOCALES))
$1_US_LOCALES := $$(filter $(US_LOCALES),$$($1_LOCALES))
$1_NON_US_LOCALES := $$(filter-out $(US_LOCALES),$$($1_LOCALES))
ALL_EURO_LOCALES += $$($1_EURO_LOCALES)
ALL_NON_EURO_LOCALES += $$($1_NON_EURO_LOCALES)
ALL_US_LOCALES += $$($1_US_LOCALES)
ALL_NON_US_LOCALES += $$($1_NON_US_LOCALES)
SED_ARGS+= -e 's/$$(HASH)$1_EuroLocales$$(HASH)/ $$($1_EURO_LOCALES)/g'
SED_ARGS+= -e 's/$$(HASH)$1_NonEuroLocales$$(HASH)/ $$($1_NON_EURO_LOCALES)/g'
SED_ARGS+= -e 's/$$(HASH)$1_USLocales$$(HASH)/ $$($1_US_LOCALES)/g'
SED_ARGS+= -e 's/$$(HASH)$1_NonUSLocales$$(HASH)/ $$($1_NON_US_LOCALES)/g'
endef
#sun.text.resources.FormatData
......@@ -90,8 +90,8 @@ $(eval $(call CaptureLocale,CurrencyNames))
#sun.util.resources.CalendarData
$(eval $(call CaptureLocale,CalendarData))
SED_ARGS+= -e 's/$(HASH)AvailableLocales_EuroLocales$(HASH)/$(sort $(ALL_EURO_LOCALES))/g'
SED_ARGS+= -e 's/$(HASH)AvailableLocales_NonEuroLocales$(HASH)/$(sort $(ALL_NON_EURO_LOCALES))/g'
SED_ARGS+= -e 's/$(HASH)AvailableLocales_USLocales$(HASH)/$(sort $(ALL_US_LOCALES))/g'
SED_ARGS+= -e 's/$(HASH)AvailableLocales_NonUSLocales$(HASH)/$(sort $(ALL_NON_US_LOCALES))/g'
$(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/locale/provider/LocaleDataMetaInfo.java: \
$(JDK_TOPDIR)/src/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template
......
......@@ -77,32 +77,6 @@ endif
##########################################################################################
ifndef OPENJDK
ifneq ($(OPENJDK_TARGET_OS), windows)
ifneq ($(OPENJDK_TARGET_OS), macosx)
# These file(s) are needed for building fake .so libs on !windows for jdbcodbc
$(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc/dummyodbc1.c :
$(MKDIR) -p $(@D)
$(RM) $@
$(ECHO) Creating $@
$(PRINTF) "void dummyOdbc(void){}\n" > $@
$(ECHO) Created $@
$(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc/dummyodbc2.c :
$(MKDIR) -p $(@D)
$(RM) $@
$(ECHO) Creating $@
$(PRINTF) "void dummyOdbc(void){}\n" > $@
$(ECHO) Created $@
GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc/dummyodbc1.c $(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc/dummyodbc2.c
endif
endif
endif
##########################################################################################
GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc_misc/sun/nio/ch/SocketOptionRegistry.java
GENSRC_SOR_SRC := $(JDK_TOPDIR)/src/share/native/sun/nio/ch
......
#
# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1997, 2012, Oracle and/or its affiliates. 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
......@@ -87,7 +87,6 @@ SUNWprivate_1.1 {
Java_java_io_FileOutputStream_open;
Java_java_io_FileOutputStream_write;
Java_java_io_FileOutputStream_writeBytes;
Java_java_io_FileSystem_getFileSystem;
Java_java_io_ObjectInputStream_bytesToDoubles;
Java_java_io_ObjectInputStream_bytesToFloats;
Java_java_io_ObjectOutputStream_doublesToBytes;
......
......@@ -379,6 +379,19 @@ public class AquaFileChooserUI extends FileChooserUI {
}
}
updateButtonState(getFileChooser());
} else if (prop.equals(JFileChooser.SELECTED_FILES_CHANGED_PROPERTY)) {
JFileChooser fileChooser = getFileChooser();
if (!fileChooser.isDirectorySelectionEnabled()) {
final File[] files = (File[]) e.getNewValue();
if (files != null) {
for (int selectedRow : fFileList.getSelectedRows()) {
File file = (File) fFileList.getValueAt(selectedRow, 0);
if (fileChooser.isTraversable(file)) {
fFileList.removeSelectedIndex(selectedRow);
}
}
}
}
} else if (prop.equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)) {
fFileList.clearSelection();
final File currentDirectory = getFileChooser().getCurrentDirectory();
......
......@@ -33,9 +33,7 @@ import java.awt.DisplayMode;
import sun.java2d.opengl.CGLGraphicsConfig;
import sun.awt.FullScreenCapable;
public class CGraphicsDevice extends GraphicsDevice {
public final class CGraphicsDevice extends GraphicsDevice {
// CoreGraphics display ID
private final int displayID;
......@@ -108,11 +106,6 @@ public class CGraphicsDevice extends GraphicsDevice {
return nativeGetYResolution(displayID);
}
public int getScreenResolution() {
// TODO: report non-72 value when HiDPI is turned on
return 72;
}
private static native double nativeGetXResolution(int displayID);
private static native double nativeGetYResolution(int displayID);
......@@ -194,6 +187,9 @@ public class CGraphicsDevice extends GraphicsDevice {
@Override
public void setDisplayMode(DisplayMode dm) {
if (dm == null) {
throw new IllegalArgumentException("Invalid display mode");
}
nativeSetDisplayMode(displayID, dm.getWidth(), dm.getHeight(), dm.getBitDepth(), dm.getRefreshRate());
if (isFullScreenSupported() && getFullScreenWindow() != null) {
getFullScreenWindow().setSize(dm.getWidth(), dm.getHeight());
......
......@@ -65,7 +65,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
private static native void nativeDispose(long nsWindowPtr);
private static native CPlatformWindow nativeGetTopmostPlatformWindowUnderMouse();
private static native int nativeGetNSWindowDisplayID_AppKitThread(long nsWindowPtr);
private static native int nativeGetNSWindowDisplayID(long nsWindowPtr);
// Loger to report issues happened during execution but that do not affect functionality
private static final PlatformLogger logger = PlatformLogger.getLogger("sun.lwawt.macosx.CPlatformWindow");
......@@ -444,7 +444,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
public GraphicsDevice getGraphicsDevice() {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
CGraphicsEnvironment cge = (CGraphicsEnvironment)ge;
int displayID = nativeGetNSWindowDisplayID_AppKitThread(getNSWindowPtr());
int displayID = nativeGetNSWindowDisplayID(getNSWindowPtr());
GraphicsDevice gd = cge.getScreenDevice(displayID);
if (gd == null) {
// this could possibly happen during device removal
......
......@@ -26,6 +26,7 @@
package sun.lwawt.macosx;
import sun.awt.SunToolkit;
import sun.lwawt.macosx.event.NSEvent;
import javax.swing.*;
import java.awt.*;
......@@ -42,6 +43,16 @@ public class CTrayIcon extends CFRetainedResource implements TrayIconPeer {
private JDialog messageDialog;
private DialogEventHandler handler;
// In order to construct MouseEvent object, we need to specify a
// Component target. Because TrayIcon isn't Component's subclass,
// we use this dummy frame instead
private final Frame dummyFrame;
// A bitmask that indicates what mouse buttons produce MOUSE_CLICKED events
// on MOUSE_RELEASE. Click events are only generated if there were no drag
// events between MOUSE_PRESSED and MOUSE_RELEASED for particular button
private static int mouseClickButtons = 0;
CTrayIcon(TrayIcon target) {
super(0, true);
......@@ -49,6 +60,7 @@ public class CTrayIcon extends CFRetainedResource implements TrayIconPeer {
this.handler = null;
this.target = target;
this.popup = target.getPopupMenu();
this.dummyFrame = new Frame();
setPtr(createModel());
//if no one else is creating the peer.
......@@ -119,6 +131,8 @@ public class CTrayIcon extends CFRetainedResource implements TrayIconPeer {
disposeMessageDialog();
}
dummyFrame.dispose();
LWCToolkit.targetDisposedPeer(target, this);
target = null;
......@@ -161,17 +175,78 @@ public class CTrayIcon extends CFRetainedResource implements TrayIconPeer {
private native void setNativeImage(final long model, final long nsimage, final boolean autosize);
//invocation from the AWTTrayIcon.m
public void performAction() {
private void postEvent(final AWTEvent event) {
SunToolkit.executeOnEventHandlerThread(target, new Runnable() {
public void run() {
final String cmd = target.getActionCommand();
final ActionEvent event = new ActionEvent(target, ActionEvent.ACTION_PERFORMED, cmd);
SunToolkit.postEvent(SunToolkit.targetToAppContext(target), event);
}
});
}
//invocation from the AWTTrayIcon.m
private void handleMouseEvent(NSEvent nsEvent) {
int buttonNumber = nsEvent.getButtonNumber();
final SunToolkit tk = (SunToolkit)Toolkit.getDefaultToolkit();
if ((buttonNumber > 2 && !tk.areExtraMouseButtonsEnabled())
|| buttonNumber > tk.getNumberOfButtons() - 1) {
return;
}
int jeventType = NSEvent.nsToJavaEventType(nsEvent.getType());
int jbuttonNumber = MouseEvent.NOBUTTON;
int jclickCount = 0;
if (jeventType != MouseEvent.MOUSE_MOVED) {
jbuttonNumber = NSEvent.nsToJavaButton(buttonNumber);
jclickCount = nsEvent.getClickCount();
}
int jmodifiers = NSEvent.nsToJavaMouseModifiers(buttonNumber,
nsEvent.getModifierFlags());
boolean isPopupTrigger = NSEvent.isPopupTrigger(jmodifiers);
int eventButtonMask = (jbuttonNumber > 0)?
MouseEvent.getMaskForButton(jbuttonNumber) : 0;
long when = System.currentTimeMillis();
if (jeventType == MouseEvent.MOUSE_PRESSED) {
mouseClickButtons |= eventButtonMask;
} else if (jeventType == MouseEvent.MOUSE_DRAGGED) {
mouseClickButtons = 0;
}
// The MouseEvent's coordinates are relative to screen
int absX = nsEvent.getAbsX();
int absY = nsEvent.getAbsY();
MouseEvent mouseEvent = new MouseEvent(dummyFrame, jeventType, when,
jmodifiers, absX, absY, absX, absY, jclickCount, isPopupTrigger,
jbuttonNumber);
mouseEvent.setSource(target);
postEvent(mouseEvent);
// fire ACTION event
if (jeventType == MouseEvent.MOUSE_PRESSED && isPopupTrigger) {
final String cmd = target.getActionCommand();
final ActionEvent event = new ActionEvent(target,
ActionEvent.ACTION_PERFORMED, cmd);
postEvent(event);
}
// synthesize CLICKED event
if (jeventType == MouseEvent.MOUSE_RELEASED) {
if ((mouseClickButtons & eventButtonMask) != 0) {
MouseEvent clickEvent = new MouseEvent(dummyFrame,
MouseEvent.MOUSE_CLICKED, when, jmodifiers, absX, absY,
absX, absY, jclickCount, isPopupTrigger, jbuttonNumber);
clickEvent.setSource(target);
postEvent(clickEvent);
}
mouseClickButtons &= ~eventButtonMask;
}
}
private native Point2D nativeGetIconLocation(long trayIconModel);
public void displayMessageOnEDT(String caption, String text,
......@@ -256,6 +331,9 @@ public class CTrayIcon extends CFRetainedResource implements TrayIconPeer {
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
dialog.setModal(false);
dialog.setModalExclusionType(Dialog.ModalExclusionType.TOOLKIT_EXCLUDE);
dialog.setAlwaysOnTop(true);
dialog.setAutoRequestFocus(false);
dialog.setResizable(false);
dialog.setContentPane(op);
......
......@@ -53,7 +53,7 @@ class NamedCursor extends Cursor {
/**
* Mac OS X Cocoa-based AWT Toolkit.
*/
public class LWCToolkit extends LWToolkit {
public final class LWCToolkit extends LWToolkit {
// While it is possible to enumerate all mouse devices
// and query them for the number of buttons, the code
// that does it is rather complex. Instead, we opt for
......@@ -278,7 +278,6 @@ public class LWCToolkit extends LWToolkit {
return new CMouseInfoPeer();
}
@Override
protected int getScreenHeight() {
return GraphicsEnvironment.getLocalGraphicsEnvironment()
......@@ -333,8 +332,9 @@ public class LWCToolkit extends LWToolkit {
@Override
public int getScreenResolution() throws HeadlessException {
return ((CGraphicsDevice) GraphicsEnvironment
.getLocalGraphicsEnvironment().getDefaultScreenDevice()).getScreenResolution();
return (int) ((CGraphicsDevice) GraphicsEnvironment
.getLocalGraphicsEnvironment().getDefaultScreenDevice())
.getXResolution();
}
@Override
......
......@@ -324,6 +324,13 @@ AWT_ASSERT_APPKIT_THREAD;
}
}
+ (NSNumber *) getNSWindowDisplayID_AppKitThread:(NSWindow *)window {
AWT_ASSERT_APPKIT_THREAD;
NSScreen *screen = [window screen];
NSDictionary *deviceDescription = [screen deviceDescription];
return [deviceDescription objectForKey:@"NSScreenNumber"];
}
- (void) dealloc {
AWT_ASSERT_APPKIT_THREAD;
......@@ -1113,19 +1120,22 @@ JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSynthesizeMou
* Signature: (J)I
*/
JNIEXPORT jint JNICALL
Java_sun_lwawt_macosx_CPlatformWindow_nativeGetNSWindowDisplayID_1AppKitThread
Java_sun_lwawt_macosx_CPlatformWindow_nativeGetNSWindowDisplayID
(JNIEnv *env, jclass clazz, jlong windowPtr)
{
jint ret; // CGDirectDisplayID
__block jint ret; // CGDirectDisplayID
JNF_COCOA_ENTER(env);
AWT_ASSERT_APPKIT_THREAD;
NSWindow *window = OBJC(windowPtr);
NSScreen *screen = [window screen];
NSDictionary *deviceDescription = [screen deviceDescription];
NSNumber *displayID = [deviceDescription objectForKey:@"NSScreenNumber"];
ret = (jint)[displayID intValue];
if ([NSThread isMainThread]) {
ret = (jint)[[AWTWindow getNSWindowDisplayID_AppKitThread: window] intValue];
} else {
[JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
ret = (jint)[[AWTWindow getNSWindowDisplayID_AppKitThread: window] intValue];
}];
}
JNF_COCOA_EXIT(env);
......
......@@ -53,6 +53,7 @@ extern "C" {
- (jobject) peer;
- (void) setImage:(NSImage *) imagePtr sizing:(BOOL)autosize;
- (NSPoint) getLocationOnScreen;
- (void) deliverJavaMouseEvent:(NSEvent*) event;
@end //AWTTrayIcon
......@@ -68,6 +69,7 @@ extern "C" {
-(id)initWithTrayIcon:(AWTTrayIcon *)theTrayIcon;
-(void)setHighlighted:(BOOL)aFlag;
-(void)setImage:(NSImage*)anImage;
-(void)setTrayIcon:(AWTTrayIcon*)theTrayIcon;
@end //AWTTrayIconView
......
......@@ -29,6 +29,7 @@
#import "CTrayIcon.h"
#import "ThreadUtilities.h"
#include "GeomUtilities.h"
#import "LWCToolkit.h"
#define kImageInset 4.0
......@@ -76,8 +77,9 @@ static NSSize ScaledImageSizeForStatusBar(NSSize imageSize) {
// Its a bad idea to force the item to release our view by setting
// the item's view to nil: it can lead to a crash in some scenarios.
// The item will release the view later on, so just set the view's image
// to nil since we are done with it.
// and tray icon to nil since we are done with it.
[view setImage: nil];
[view setTrayIcon: nil];
[view release];
[theItem release];
......@@ -115,6 +117,45 @@ static NSSize ScaledImageSizeForStatusBar(NSSize imageSize) {
return [[view window] convertBaseToScreen: NSZeroPoint];
}
-(void) deliverJavaMouseEvent: (NSEvent *) event {
[AWTToolkit eventCountPlusPlus];
JNIEnv *env = [ThreadUtilities getJNIEnv];
NSPoint eventLocation = [event locationInWindow];
NSPoint localPoint = [view convertPoint: eventLocation fromView: nil];
localPoint.y = [view bounds].size.height - localPoint.y;
NSPoint absP = [NSEvent mouseLocation];
NSEventType type = [event type];
NSRect screenRect = [[NSScreen mainScreen] frame];
absP.y = screenRect.size.height - absP.y;
jint clickCount;
clickCount = [event clickCount];
static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/event/NSEvent");
static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IIIIIIIIDD)V");
jobject jEvent = JNFNewObject(env, jctor_NSEvent,
[event type],
[event modifierFlags],
clickCount,
[event buttonNumber],
(jint)localPoint.x, (jint)localPoint.y,
(jint)absP.x, (jint)absP.y,
[event deltaY],
[event deltaX]);
if (jEvent == nil) {
// Unable to create event by some reason.
return;
}
static JNF_CLASS_CACHE(jc_TrayIcon, "sun/lwawt/macosx/CTrayIcon");
static JNF_MEMBER_CACHE(jm_handleMouseEvent, jc_TrayIcon, "handleMouseEvent", "(Lsun/lwawt/macosx/event/NSEvent;)V");
JNFCallVoidMethod(env, peer, jm_handleMouseEvent, jEvent);
}
@end //AWTTrayIcon
//================================================
......@@ -123,7 +164,7 @@ static NSSize ScaledImageSizeForStatusBar(NSSize imageSize) {
-(id)initWithTrayIcon:(AWTTrayIcon *)theTrayIcon {
self = [super initWithFrame:NSMakeRect(0, 0, 1, 1)];
trayIcon = theTrayIcon;
[self setTrayIcon: theTrayIcon];
isHighlighted = NO;
image = nil;
......@@ -153,6 +194,10 @@ static NSSize ScaledImageSizeForStatusBar(NSSize imageSize) {
}
}
-(void)setTrayIcon:(AWTTrayIcon*)theTrayIcon {
trayIcon = theTrayIcon;
}
- (void)menuWillOpen:(NSMenu *)menu
{
[self setHighlighted:YES];
......@@ -191,30 +236,57 @@ static NSSize ScaledImageSizeForStatusBar(NSSize imageSize) {
];
}
- (void) mouseDown:(NSEvent *)e {
//find CTrayIcon.getPopupMenuModel method and call it to get popup menu ptr.
JNIEnv *env = [ThreadUtilities getJNIEnv];
static JNF_CLASS_CACHE(jc_CTrayIcon, "sun/lwawt/macosx/CTrayIcon");
static JNF_MEMBER_CACHE(jm_getPopupMenuModel, jc_CTrayIcon, "getPopupMenuModel", "()J");
static JNF_MEMBER_CACHE(jm_performAction, jc_CTrayIcon, "performAction", "()V");
jlong res = JNFCallLongMethod(env, trayIcon.peer, jm_getPopupMenuModel);
if (res != 0) {
CPopupMenu *cmenu = jlong_to_ptr(res);
NSMenu* menu = [cmenu menu];
[menu setDelegate:self];
[trayIcon.theItem popUpStatusItemMenu:menu];
[self setNeedsDisplay:YES];
} else {
JNFCallVoidMethod(env, trayIcon.peer, jm_performAction);
- (void)mouseDown:(NSEvent *)event {
[trayIcon deliverJavaMouseEvent: event];
// don't show the menu on ctrl+click: it triggers ACTION event, like right click
if (([event modifierFlags] & NSControlKeyMask) == 0) {
//find CTrayIcon.getPopupMenuModel method and call it to get popup menu ptr.
JNIEnv *env = [ThreadUtilities getJNIEnv];
static JNF_CLASS_CACHE(jc_CTrayIcon, "sun/lwawt/macosx/CTrayIcon");
static JNF_MEMBER_CACHE(jm_getPopupMenuModel, jc_CTrayIcon, "getPopupMenuModel", "()J");
jlong res = JNFCallLongMethod(env, trayIcon.peer, jm_getPopupMenuModel);
if (res != 0) {
CPopupMenu *cmenu = jlong_to_ptr(res);
NSMenu* menu = [cmenu menu];
[menu setDelegate:self];
[trayIcon.theItem popUpStatusItemMenu:menu];
[self setNeedsDisplay:YES];
}
}
}
- (void) rightMouseDown:(NSEvent *)e {
// Call CTrayIcon.performAction() method on right mouse press
JNIEnv *env = [ThreadUtilities getJNIEnv];
static JNF_CLASS_CACHE(jc_CTrayIcon, "sun/lwawt/macosx/CTrayIcon");
static JNF_MEMBER_CACHE(jm_performAction, jc_CTrayIcon, "performAction", "()V");
JNFCallVoidMethod(env, trayIcon.peer, jm_performAction);
- (void) mouseUp:(NSEvent *)event {
[trayIcon deliverJavaMouseEvent: event];
}
- (void) mouseDragged:(NSEvent *)event {
[trayIcon deliverJavaMouseEvent: event];
}
- (void) rightMouseDown:(NSEvent *)event {
[trayIcon deliverJavaMouseEvent: event];
}
- (void) rightMouseUp:(NSEvent *)event {
[trayIcon deliverJavaMouseEvent: event];
}
- (void) rightMouseDragged:(NSEvent *)event {
[trayIcon deliverJavaMouseEvent: event];
}
- (void) otherMouseDown:(NSEvent *)event {
[trayIcon deliverJavaMouseEvent: event];
}
- (void) otherMouseUp:(NSEvent *)event {
[trayIcon deliverJavaMouseEvent: event];
}
- (void) otherMouseDragged:(NSEvent *)event {
[trayIcon deliverJavaMouseEvent: event];
}
......
/*
* Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008, 2012, Oracle and/or its affiliates. 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,9 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.security.AccessControlContext;
import java.security.AccessController;
import java.security.PrivilegedAction;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
......@@ -46,6 +49,8 @@ import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import sun.misc.SharedSecrets;
/**
* The main class to parse JavaBeans XML archive.
*
......@@ -56,11 +61,10 @@ import org.xml.sax.helpers.DefaultHandler;
* @see ElementHandler
*/
public final class DocumentHandler extends DefaultHandler {
private final Map<String, Class<? extends ElementHandler>> handlers = new HashMap<String, Class<? extends ElementHandler>>();
private final Map<String, Object> environment = new HashMap<String, Object>();
private final List<Object> objects = new ArrayList<Object>();
private final AccessControlContext acc = AccessController.getContext();
private final Map<String, Class<? extends ElementHandler>> handlers = new HashMap<>();
private final Map<String, Object> environment = new HashMap<>();
private final List<Object> objects = new ArrayList<>();
private Reference<ClassLoader> loader;
private ExceptionListener listener;
......@@ -351,23 +355,32 @@ public final class DocumentHandler extends DefaultHandler {
*
* @param input the input source to parse
*/
public void parse(InputSource input) {
try {
SAXParserFactory.newInstance().newSAXParser().parse(input, this);
public void parse(final InputSource input) {
if ((this.acc == null) && (null != System.getSecurityManager())) {
throw new SecurityException("AccessControlContext is not set");
}
catch (ParserConfigurationException exception) {
handleException(exception);
}
catch (SAXException wrapper) {
Exception exception = wrapper.getException();
if (exception == null) {
exception = wrapper;
AccessControlContext stack = AccessController.getContext();
SharedSecrets.getJavaSecurityAccess().doIntersectionPrivilege(new PrivilegedAction<Void>() {
public Void run() {
try {
SAXParserFactory.newInstance().newSAXParser().parse(input, DocumentHandler.this);
}
catch (ParserConfigurationException exception) {
handleException(exception);
}
catch (SAXException wrapper) {
Exception exception = wrapper.getException();
if (exception == null) {
exception = wrapper;
}
handleException(exception);
}
catch (IOException exception) {
handleException(exception);
}
return null;
}
handleException(exception);
}
catch (IOException exception) {
handleException(exception);
}
}, stack, this.acc);
}
/**
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册