提交 8b097be3 编写于 作者: O ohair

Merge

......@@ -74,7 +74,6 @@ import -- copy in the pre-built components (e.g. VM) \n\
import_product -- copy in the product components \n\
import_fastdebug -- copy in the fastdebug components \n\
import_debug -- copy in the debug components \n\
modules -- build the jdk and jre module images (experimental) \n\
create_links -- create softlinks in Solaris 32bit build to 64bit dirs \n\
"
......@@ -261,7 +260,6 @@ docs:: sanity-docs post-sanity-docs
# Release engineering targets.
#
include $(BUILDDIR)/common/Release.gmk
include $(BUILDDIR)/common/Modules.gmk
#
# Cscope targets.
......
......@@ -249,7 +249,7 @@ $(JAR_DESTFILE): $(UNSIGNED_DIR)/sunjce_provider.jar
else
$(JAR_DESTFILE): $(SIGNED_DIR)/sunjce_provider.jar
endif
$(install-non-module-file)
$(install-file)
ifndef OPENJDK
install-prebuilt:
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../../..
MODULE = pack200
PACKAGE = com.sun.java.util.jar.pack
LIBRARY = unpack
PRODUCT = sun
......@@ -156,7 +155,6 @@ ifdef MT
endif
$(CP) $(TEMPDIR)/unpack200$(EXE_SUFFIX) $(UNPACK_EXE)
@$(call binary_file_verification,$@)
$(install-module-file)
ifeq ($(PLATFORM), windows)
$(RES):: $(VERSIONINFO_RESOURCE)
......
......@@ -29,7 +29,6 @@
# to a collision of rules with Classes.gmk and Library.gmk
BUILDDIR = ../../../../..
MODULE = pack200
PACKAGE = com.sun.java.util.jar.pack
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../../..
MODULE = jndi-cosnaming
PACKAGE = com.sun.jndi.cosnaming
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../../..
MODULE = jndi-dns
PACKAGE = com.sun.jndi.dns
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../../..
MODULE = jndi-ldap
PACKAGE = com.sun.jndi.ldap
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../../../..
MODULE = jndi-rmiregistry
PACKAGE = com.sun.jndi.rmi.registry
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../../..
MODULE = sctp
PACKAGE = com.sun.nio.sctp
LIBRARY = sctp
PRODUCT = sun
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../../../..
MODULE = security-xmldsig
PACKAGE = com.sun.org.apache.xml
PRODUCT = xml
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../..
MODULE = jdbc-enterprise
PACKAGE = com.sun.rowset
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -25,7 +25,6 @@
BUILDDIR = ../../..
MODULE = scripting-rhino
PACKAGE = com.sun.script
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -26,7 +26,6 @@
# Makefile for building auth modules.
BUILDDIR = ../../../../..
MODULE = security-auth
PACKAGE = com.sun.security.auth.module
PRODUCT = sun
......
......@@ -22,7 +22,6 @@
# questions.
BUILDDIR = ../../..
MODULE = servicetag
PACKAGE = com.sun.servicetag
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -25,7 +25,6 @@
BUILDDIR = ../../../..
MODULE = attach
PACKAGE = com.sun.tools.attach
LIBRARY = attach
PRODUCT = sun
......@@ -66,8 +65,7 @@ $(SERVICEDIR)/%: $(SHARE_SRC)/classes/sun/tools/attach/META-INF/services/%
@$(MKDIR) -p $(@D)
@$(RM) $@
@$(CAT) $< | $(SED) -e "s/^#\[$(PLATFORM)\]//" > $@
@$(install-module-file)
.PHONY: copy-files
......
......@@ -224,9 +224,6 @@ INCLUDEDIR = $(OUTPUTDIR)/include
# for generated class files
CLASSBINDIR = $(OUTPUTDIR)/classes
DEMOCLASSDIR = $(OUTPUTDIR)/democlasses
# for modules
MODULES_DIR = $(OUTPUTDIR)/modules
ABS_MODULES_DIR = $(ABS_OUTPUTDIR)/modules
# for generated tool class files
BUILDTOOLCLASSDIR = $(OUTPUTDIR)/btclasses
# for build tool jar files
......@@ -297,22 +294,6 @@ ifneq ($(LIBRARY),)
endif
endif
#
# Build units may or may not define MODULE. Default to "other".
#
# MODULE variable defines the lowest-level module name that
# might or might not be the name of the modules created in
# the modules build (see make/modules/modules.config and
# modules.group).
#
MODULES_TEMPDIR = $(OUTPUTDIR)/tmp/modules
ABS_MODULES_TEMPDIR = $(ABS_OUTPUTDIR)/tmp/modules
ifndef MODULE
MODULE = other
endif
override MODULE_DEST_DIR = $(MODULES_TEMPDIR)/$(MODULE)
# the use of += above makes a space separated list which we need to
# remove for filespecs.
#
......@@ -422,52 +403,13 @@ PKGDIR = $(subst .,/,$(PACKAGE))
#
include $(JDK_MAKE_SHARED_DIR)/Defs-java.gmk
#
# Macros to find the module that $@ belongs to
#
UNIQUE_PATH_PATTERN = $(subst /,.,$(UNIQUE_PATH))
MODULE_PATH_PATTERN = -e 's%.*\/classes\/%classes\/%' \
-e 's%.*\/$(UNIQUE_PATH_PATTERN)\/%classes\/%' \
-e 's%.*\/lib\/%lib\/%' \
-e 's%.*\/bin\/%bin\/%' \
-e 's%.*\/include\/%include\/%' \
-e 's%.*\/demo\/%demo\/%' \
-e 's%.*\/sample\/%sample\/%'
# Install a file to its module
define install-module-file
dest=`echo $(@D)/ | $(SED) $(MODULE_PATH_PATTERN)` ; \
$(MKDIR) -p $(MODULE_DEST_DIR)/$$dest; \
$(CP) -f $@ $(MODULE_DEST_DIR)/$$dest
endef
# Install all files from the directory to its module
define install-module-dir
dest=`echo $(@D)/ | $(SED) $(MODULE_PATH_PATTERN)` ; \
$(MKDIR) -p $(MODULE_DEST_DIR)/$$dest; \
$(CP) -rf $(@D)/* $(MODULE_DEST_DIR)/$$dest
endef
# chmod the file in its module
define chmod-module-file
dest=`echo $@ | $(SED) $(MODULE_PATH_PATTERN)` ; \
$(CHMOD) $1 $(MODULE_DEST_DIR)/$$dest
endef
# install a sym link in its module
define install-module-sym-link
dest=`echo $@ | $(SED) $(MODULE_PATH_PATTERN)` ; \
$(LN) -sf $1 $(MODULE_DEST_DIR)/$$dest
endef
# Run MAKE $@ for a launcher:
# $(call make-launcher, name, mainclass, java-args, main-args)
define make-launcher
$(CD) $(BUILDDIR)/launchers && \
$(MAKE) -f Makefile.launcher \
MODULE=$(MODULE) \
PROGRAM=$(strip $1) \
MAIN_CLASS=$(strip $2) \
MAIN_JAVA_ARGS="$(strip $3)" \
......@@ -488,28 +430,18 @@ endef
define install-file
$(prep-target)
$(CP) $< $@
@$(install-module-file)
endef
define chmod-file
$(CHMOD) $1 $@
@$(call chmod-module-file, $1)
endef
define install-sym-link
$(LN) -s $1 $@
@$(call install-module-sym-link, $1)
endef
#
# Marcos for files not belonging to any module
define install-non-module-file
$(prep-target)
$(CP) $< $@
endef
define install-manifest-file
$(install-non-module-file)
$(install-file)
endef
# Cleanup rule for after debug java run (hotspot.log file is left around)
......@@ -577,7 +509,6 @@ endef
define install-import-file
$(install-importonly-file)
@$(install-module-file)
endef
.PHONY: all build clean clobber
......@@ -25,8 +25,6 @@
# JDK Demo building jar file.
MODULE = demos
# Some names are defined with LIBRARY inside the Defs.gmk file
LIBRARY=$(DEMONAME)
OBJDIR=$(TEMPDIR)/$(DEMONAME)
......
......@@ -168,18 +168,9 @@ $(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lcf
$(OTHER_LCF) $(JAVALIB) $(LDLIBS)
$(CP) $(OBJDIR)/$(@F) $@
@$(call binary_file_verification,$@)
$(install-module-file)
$(CP) $(OBJDIR)/$(LIBRARY).map $(@D)
$(CP) $(OBJDIR)/$(LIBRARY).pdb $(@D)
$(ACTUAL_LIBRARY):: $(ACTUAL_LIBRARY_DIR)/$(LIBRARY).map $(ACTUAL_LIBRARY_DIR)/$(LIBRARY).pdb
$(ACTUAL_LIBRARY_DIR)/%.map: FORCE
$(install-module-file)
$(ACTUAL_LIBRARY_DIR)/%.pdb: FORCE
$(install-module-file)
endif # LIBRARY
$(OBJDIR)/$(LIBRARY).lcf: $(OBJDIR)/$(LIBRARY).res $(COMPILE_FILES_o) $(FILES_m)
......@@ -235,7 +226,6 @@ ifeq ($(LIBRARY), fdlibm)
else # LIBRARY
$(LINKER) $(SHARED_LIBRARY_FLAG) -o $@ $(FILES_o) $(LDLIBS)
@$(call binary_file_verification,$@)
$(install-module-file)
ifeq ($(WRITE_LIBVERSION),true)
$(MCS) -d -a "$(FULL_VERSION)" $@
endif # WRITE_LIBVERSION
......
#
# Copyright (c) 2009, 2010, 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.
#
JDK_MODULE_IMAGE_DIR = $(ABS_OUTPUTDIR)/jdk-module-image
JRE_MODULE_IMAGE_DIR = $(ABS_OUTPUTDIR)/jre-module-image
#
# modules Target to build jdk and jre module image
#
# There is one jar file per module containing classes only.
# All module jars are currently placed under jre/lib directory.
#
# Open issues that need further investigation:
# 1. Classes in jre/lib/ext/dnsns.jar are currently put in jre/lib/jndi-dns
# module. META-INF/services file is not installed.
# 2. Signed jars
# For JDK build, signed jars are copied to the build.
# All jars in the module image are unsigned.
MODULE_IMAGEBINDIR = bin
#
# Targets.
#
INITIAL_MODULE_IMAGE_JRE=initial-module-image-jre
INITIAL_MODULE_IMAGE_JDK=initial-module-image-jdk
ifeq ($(PLATFORM), solaris)
ifeq ($(ARCH_DATA_MODEL), 64)
INITIAL_MODULE_IMAGE_JRE=initial-module-image-jre-sol64
INITIAL_MODULE_IMAGE_JDK=initial-module-image-jdk-sol64
endif
endif
modules modules-clobber \
initial-module-image-jre initial-module-image-jdk \
initial-module-image-jre-sol64 initial-module-image-jdk-sol64 \
trim-module-image-jre trim-module-image-jdk \
process-module-image-jre process-module-image-jdk ::
@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
# Order is important here, trim jre after jdk image is created
modules:: gen-modules \
sanity-module-images post-sanity-module-images \
$(INITIAL_MODULE_IMAGE_JRE) $(INITIAL_MODULE_IMAGE_JDK) \
trim-module-image-jre trim-module-image-jdk \
process-module-image-jre process-module-image-jdk
# Don't use these
module-image-jre:: initial-module-image-jre trim-module-image-jre process-module-image-jre
module-image-jdk:: initial-module-image-jdk trim-module-image-jdk process-module-image-jdk
#
# Paths to these files we need
JDK_MODULE_DOCFILES = $(IMAGE_DOCLIST_JDK:%=$(JDK_MODULE_IMAGE_DIR)/%)
JRE_MODULE_DOCFILES = $(IMAGE_DOCLIST_JRE:%=$(JRE_MODULE_IMAGE_DIR)/%)
###### RULES
# JDK files
$(JDK_MODULE_IMAGE_DIR)/%: $(SHARE_JDK_DOC_SRC)/%
$(process-doc-file)
# JRE files
$(JRE_MODULE_IMAGE_DIR)/%: $(SHARE_JRE_DOC_SRC)/%
$(process-doc-file)
ifeq ($(PLATFORM), windows)
$(JRE_MODULE_IMAGE_DIR)/README.txt: $(SHARE_JRE_DOC_SRC)/README
$(process-doc-file)
endif
######################################################
# JRE Image
######################################################
MODULES_LIST = $(MODULES_TEMPDIR)/classlist/modules.list
# Modules in the jre/lib/security directory
POLICY_MODULES = US_export_policy local_policy
# Modules in the modules/ext directory
EXT_MODULES = localedata security-sunec security-sunjce
# Build PKCS#11 on all platforms except 64-bit Windows.
PKCS11 = security-sunpkcs11
ifeq ($(ARCH_DATA_MODEL), 64)
ifeq ($(PLATFORM), windows)
PKCS11 =
endif
endif
EXT_MODULES += $(PKCS11)
# Build Microsoft CryptoAPI provider only on (non-64-bit) Windows platform.
ifeq ($(PLATFORM), windows)
ifneq ($(ARCH_DATA_MODEL), 64)
EXT_MODULES += security-sunmscapi
endif
endif
# Modules for JDK only
JDK_MODULES = tools
gen-modules:
$(CD) modules; $(MAKE) all
initial-module-image-jre-setup:
$(RM) -r $(JRE_MODULE_IMAGE_DIR)
$(MKDIR) -p $(JRE_MODULE_IMAGE_DIR)
# 64-bit solaris jre image contains only the 64-bit add-on files.
initial-module-image-jre-sol64:: initial-module-image-jre-setup
@# Use tar instead of cp to preserve the symbolic links
for dir in bin lib ; do \
( $(CD) $(OUTPUTDIR) && \
$(TAR) cf - `$(FIND) $$dir -name '$(ARCH)' -print` | \
($(CD) $(JRE_MODULE_IMAGE_DIR) && $(TAR) xf -) ) ; \
done
@# Remove some files from the jre area
for t in $(NOTJRETOOLS) ; do \
$(RM) $(JRE_MODULE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \
done
$(RM) `$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'orb.idl'`
$(RM) `$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'ir.idl'`
# Construct an initial jre image (initial jdk jre) no trimming or stripping
initial-module-image-jre:: initial-module-image-jre-setup \
$(JRE_MODULE_DOCFILES) \
$(BUILDMETAINDEX_JARFILE)
@# Copy in bin directory
$(CD) $(OUTPUTDIR) && $(FIND) bin -depth | $(CPIO) -pdum $(JRE_MODULE_IMAGE_DIR)
@# CTE plugin security change require new empty directory lib/applet
$(MKDIR) -p $(JRE_MODULE_IMAGE_DIR)/lib/applet
@# Copy files but not .jar in lib directory
$(CD) $(OUTPUTDIR) && $(FIND) lib -depth | $(EGREP) -v ".jar$$" | $(CPIO) -pdum $(JRE_MODULE_IMAGE_DIR)
@#
@# copy modules to jre/lib
@#
for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \
$(CP) $(MODULES_DIR)/$$m/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib ; \
done
$(MKDIR) -p $(JRE_MODULE_IMAGE_DIR)/lib/ext
for m in $(EXT_MODULES) ; do \
$(MV) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib/ext ; \
done
for m in $(POLICY_MODULES) ; do \
$(MV) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib/security; \
done
@# Remove jdk modules
for m in $(JDK_MODULES) ; do \
$(RM) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar ; \
done
@# Make sure all directories are read/execute for everyone
$(CHMOD) a+rx `$(FIND) $(JRE_MODULE_IMAGE_DIR) -type d`
@# Remove some files from the jre area
for t in $(NOTJRETOOLS) ; do \
$(RM) $(JRE_MODULE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \
done
@# Remove orb.idl and ir.idl from jre
$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'orb.idl' -exec $(RM) \{} \;
$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'ir.idl' -exec $(RM) \{} \;
@# Generate meta-index to make boot and extension class loaders lazier
$(CD) $(JRE_MODULE_IMAGE_DIR)/lib && \
$(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \
-o meta-index *.jar
@$(CD) $(JRE_MODULE_IMAGE_DIR)/lib && $(java-vm-cleanup)
$(CD) $(JRE_MODULE_IMAGE_DIR)/lib/ext && \
$(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \
-o meta-index *.jar
@$(CD) $(JRE_MODULE_IMAGE_DIR)/lib/ext && $(java-vm-cleanup)
ifeq ($(PLATFORM), windows)
@# Remove certain *.lib files
$(CD) $(JRE_MODULE_IMAGE_DIR)/lib && \
$(RM) java.$(LIB_SUFFIX) jvm.$(LIB_SUFFIX) \
awt.$(LIB_SUFFIX) jawt.$(LIB_SUFFIX)
ifeq ($(ARCH_DATA_MODEL), 32)
@# The Java Kernel JRE image ships with a special VM. It is not included
@# in the full JRE image, so remove it. Also, is it only for 32-bit windows.
$(CD) $(JRE_MODULE_IMAGE_DIR)/bin && $(RM) -r kernel
endif
endif # Windows
ifneq ($(PLATFORM), windows)
$(call copy-man-pages,$(JRE_MODULE_IMAGE_DIR),$(JRE_MAN_PAGES))
endif # !windows
# Trim out any extra files not for the jre shipment but wanted in the jdk jre.
# (Note the jdk WILL want the jre image before this trimming)
# Removes server VM on Windows 32bit.
# Remove certain shared libraries that should not be in the jre image
# but should be in the jdk jre image.
trim-module-image-jre::
ifeq ($(PLATFORM), windows)
ifeq ($(ARCH_DATA_MODEL), 32)
$(RM) -r $(JRE_MODULE_IMAGE_DIR)/bin/server
endif
ifdef NOTJRE_SHARED_LIBS
for l in $(NOTJRE_SHARED_LIBS) ; do \
$(RM) $(JRE_MODULE_IMAGE_DIR)/bin/$$l ; \
done ;
endif
else # PLATFORM
ifdef NOTJRE_SHARED_LIBS
for l in $(NOTJRE_SHARED_LIBS) ; do \
$(RM) $(JRE_MODULE_IMAGE_DIR)/lib/$(LIBARCH)/$$l ; \
done ;
endif
endif # PLATFORM
# Get list of all Elf files in the jre
JRE_MODULE_ELF_LIST=$(MODULES_TEMPDIR)/jre-elf-files.list
$(JRE_MODULE_ELF_LIST):
@$(prep-target)
ifneq ($(PLATFORM), windows)
$(RM) $@
$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -type f -name \*.$(LIB_SUFFIX) >> $@
$(FILE) `$(FIND) $(JRE_MODULE_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \
| $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
endif
# Post process the image (strips and mcs on Elf files we are shipping)
# (Note the jdk WILL want the jre image before this processing)
process-module-image-jre:: $(JRE_MODULE_ELF_LIST)
ifneq ($(POST_STRIP_PROCESS), )
for f in `$(CAT) $(JRE_MODULE_ELF_LIST)`; do \
$(CHMOD) u+w $${f}; \
$(ECHO) $(POST_STRIP_PROCESS) $${f}; \
$(POST_STRIP_PROCESS) $${f}; \
$(CHMOD) go-w $${f}; \
done
endif
ifneq ($(POST_MCS_PROCESS), )
for f in `$(CAT) $(JRE_MODULE_ELF_LIST)`; do \
$(CHMOD) u+w $${f}; \
$(ECHO) $(POST_MCS_PROCESS) $${f}; \
$(POST_MCS_PROCESS) $${f}; \
$(CHMOD) go-w $${f}; \
done
endif
$(RM) $(JRE_MODULE_ELF_LIST)
######################################################
# JDK Image
######################################################
# Note: cpio ($(CPIO)) sometimes leaves directories without rx access.
initial-module-image-jdk-setup:
$(RM) -r $(JDK_MODULE_IMAGE_DIR)
$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/jre
($(CD) $(JRE_MODULE_IMAGE_DIR) && $(FIND) . -depth -print \
| $(CPIO) -pdum $(JDK_MODULE_IMAGE_DIR)/jre )
$(RM) -rf $(JDK_MODULE_IMAGE_DIR)/jre/man
$(CHMOD) a+rx `$(FIND) $(JDK_MODULE_IMAGE_DIR) -type d`
initial-module-image-jdk64-bindemos:
for dir in bin demo ; do \
( $(CD) $(OUTPUTDIR) && \
$(TAR) cf - `$(FIND) $$dir -name '$(LIBARCH)' -print` | \
($(CD) $(JDK_MODULE_IMAGE_DIR) && $(TAR) xf -) ) ; \
done
# Solaris 64 bit image is special
initial-module-image-jdk-sol64:: initial-module-image-jdk-setup \
initial-module-image-jdk64-bindemos
# DB files to add
ifeq ($(OPENJDK),true)
initial-module-image-jdk-db:
else
# Create the list of db *.zip files to bundle with jdk
ABS_DB_PATH :=$(call FullPath,$(CLOSED_SHARE_SRC)/db)
DB_ZIP_LIST = $(shell $(LS) $(ABS_DB_PATH)/*.zip 2>/dev/null)
initial-module-image-jdk-db: $(DB_ZIP_LIST)
$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/db
for d in $(DB_ZIP_LIST); do \
($(CD) $(JDK_MODULE_IMAGE_DIR)/db && $(UNZIP) -o $$d); \
done
endif
# Standard jdk image
initial-module-image-jdk:: initial-module-image-jdk-setup \
initial-module-image-jdk-db \
$(JDK_MODULE_DOCFILES)
$(MKDIR) $(JDK_MODULE_IMAGE_DIR)/lib
@#
@# copy jdk modules to jdk/lib
@#
$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/lib
for m in $(JDK_MODULES) ; do \
$(CP) $(MODULES_DIR)/$$m/lib/$$m.jar $(JDK_MODULE_IMAGE_DIR)/lib ; \
done
ifeq ($(PLATFORM), windows)
@#
@# lib/
@#
$(CP) $(LIBDIR)/$(LIB_PREFIX)jvm.$(LIB_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/lib
$(CP) $(LIBDIR)/$(LIB_PREFIX)jawt.$(LIB_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/lib
@#
@# bin/
@#
@# copy all EXE files and only certain DLL files from BINDIR
$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/bin
$(CP) $(BINDIR)/*$(EXE_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
$(CP) $(BINDIR)/jli.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
ifeq ($(COMPILER_VERSION), VS2010)
$(CP) $(BINDIR)/msvc*100.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
endif
ifeq ($(ARCH_DATA_MODEL), 32)
ifeq ($(COMPILER_VERSION), VS2003)
$(CP) $(BINDIR)/msvc*71.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
endif
endif
else # PLATFORM
@#
@# bin/
@#
($(CD) $(BINDIR)/.. && $(TAR) cf - \
`$(FIND) bin \( -type f -o -type l \) -print `) | \
($(CD) $(JDK_MODULE_IMAGE_DIR) && $(TAR) xf -)
endif # PLATFORM
@#
@# lib/ct.sym
@#
$(MKDIR) -p $(OUTPUTDIR)/symbols/META-INF/sym
$(JAVAC_CMD) -XDprocess.packages -proc:only \
-processor com.sun.tools.javac.sym.CreateSymbols \
-Acom.sun.tools.javac.sym.Jar=$(RT_JAR) \
-Acom.sun.tools.javac.sym.Dest=$(OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
$(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS)
$(BOOT_JAR_CMD) c0f $(LIBDIR)/ct.sym \
-C $(OUTPUTDIR)/symbols META-INF $(BOOT_JAR_JFLAGS)
@$(java-vm-cleanup)
$(CP) $(LIBDIR)/ct.sym $(JDK_MODULE_IMAGE_DIR)/lib/ct.sym
@#
@# CORBA supported orb.idl and ir.idl should be copied to lib
@#
$(CP) $(LIBDIR)/orb.idl $(JDK_MODULE_IMAGE_DIR)/lib/orb.idl
$(CP) $(LIBDIR)/ir.idl $(JDK_MODULE_IMAGE_DIR)/lib/ir.idl
ifeq ($(PLATFORM), linux)
@#
@# on Linux copy jexec from jre/lib to /lib
@#
$(CP) $(LIBDIR)/jexec $(JDK_MODULE_IMAGE_DIR)/lib/jexec
endif # PLATFORM
@#
@# demo, include
@#
$(CP) -r -f $(DEMODIR) $(JDK_MODULE_IMAGE_DIR)
$(CP) -r -f $(SAMPLEDIR) $(JDK_MODULE_IMAGE_DIR)
$(CP) -r $(INCLUDEDIR) $(JDK_MODULE_IMAGE_DIR)
@#
@# Swing BeanInfo generation
@#
$(CD) javax/swing/beaninfo && $(MAKE) JDK_IMAGE_DIR=$(JDK_MODULE_IMAGE_DIR) swing-1.2-beans
ifneq ($(PLATFORM), windows)
$(call copy-man-pages,$(JDK_MODULE_IMAGE_DIR),$(JDK_MAN_PAGES))
endif # !windows
# Trim out files we don't want to ship
trim-module-image-jdk::
@# Remove tools that should not be part of SDK.
for t in $(NOTJDKTOOLS); do \
$(RM) $(JDK_MODULE_IMAGE_DIR)/bin/$${t}$(EXE_SUFFIX); \
done
# Get list of Elf files in the jdk
JDK_MODULE_ELF_LIST=$(MODULES_TEMPDIR)/jdk-elf-files.list
$(JDK_MODULE_ELF_LIST):
@$(prep-target)
ifneq ($(PLATFORM), windows)
$(RM) $@
$(FIND) $(JDK_MODULE_IMAGE_DIR)/jre/lib -type f -name \*.$(LIB_SUFFIX) >> $@
$(FILE) `$(FIND) $(JDK_MODULE_IMAGE_DIR)/jre/bin -type f -name \*$(EXE_SUFFIX)` \
| $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
file `$(FIND) $(JDK_MODULE_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \
| $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
endif
# Post process the image (strips and mcs on files we are shipping)
process-module-image-jdk:: $(JDK_MODULE_ELF_LIST)
ifneq ($(POST_STRIP_PROCESS), )
for f in `$(CAT) $(JDK_MODULE_ELF_LIST)`; do \
$(CHMOD) u+w $${f}; \
$(ECHO) $(POST_STRIP_PROCESS) $${f}; \
$(POST_STRIP_PROCESS) $${f}; \
$(CHMOD) go-w $${f}; \
done
endif
ifneq ($(POST_MCS_PROCESS), )
for f in `$(CAT) $(JDK_MODULE_ELF_LIST)`; do \
$(CHMOD) u+w $${f}; \
$(ECHO) $(POST_MCS_PROCESS) $${f}; \
$(POST_MCS_PROCESS) $${f}; \
$(CHMOD) go-w $${f}; \
done
endif
$(RM) $(JDK_MODULE_ELF_LIST)
######################################################
# clobber
######################################################
modules-clobber::
$(RM) -r $(JDK_MODULE_IMAGE_DIR)
$(RM) -r $(JRE_MODULE_IMAGE_DIR)
#
# TODO - nop for now
sanity-module-images post-sanity-module-images:
modules modules-clobber::
@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
@$(java-vm-cleanup)
.PHONY: modules module-image-jre module-image-jdk \
initial-module-image-jre initial-module-image-jdk \
initial-module-image-jre-sol64 initial-module-image-jdk-sol64 \
initial-module-image-jdk-setup \
initial-module-image-jdk-db \
initial-module-image-jdk64-bindemos \
initial-module-image-jre-setup \
trim-module-image-jre trim-module-image-jdk \
process-module-image-jre process-module-image-jdk \
install-previous-jre install-previous-jdk \
modules-clobber
# Force rule
FRC:
......@@ -186,7 +186,6 @@ $(ACTUAL_PROGRAM):: $(FILES_o)
$(LINK_PRE_CMD) $(CC) $(CC_OBJECT_OUTPUT_FLAG)$@ $(LDFLAGS) \
$(FILES_o) $(THREADLIBS) $(LDLIBS)
@$(call binary_file_verification,$@)
$(install-module-file)
endif # PLATFORM
......
......@@ -60,7 +60,7 @@ EXCLUDE_PROPWARN_PKGS += sun.dyn
#
# Include the exported private packages in ct.sym.
# This is an interim solution until the ct.sym is replaced
# with a new module system (being discussed for JDK 7).
# with a new module system (being discussed for JDK 8).
#
EXPORTED_PRIVATE_PKGS = com.sun.servicetag \
com.oracle.net
......@@ -87,8 +87,14 @@ ifdef OPENJDK
IMAGE_DOCLIST_JRE = LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README
else
# Where to find these files
SHARE_JDK_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jdk
SHARE_JRE_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jre
ifeq ($(J4B), true)
SHARE_JDK_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jdkfb
SHARE_JRE_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jrefb
else
SHARE_JDK_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jdk
SHARE_JRE_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jre
endif
IMAGE_DOCLIST_JDK = COPYRIGHT README.html THIRDPARTYLICENSEREADME.txt
IMAGE_DOCLIST_JRE = COPYRIGHT Welcome.html THIRDPARTYLICENSEREADME.txt
ifeq ($(PLATFORM), windows)
......
......@@ -71,8 +71,7 @@ sanity-base: pre-sanity \
sane-cacerts \
sane-ant_version \
sane-zip_version \
sane-msvcrt_path \
sane-build_modules
sane-msvcrt_path
# The rules sanity-* have a one-to-one correspondence with the major targets
# Each sanity-* rule should have no body to ensure that the post-sanity-* is the
......
......@@ -40,9 +40,6 @@
#
# By default, subdirs specified in the SUBDIRS and all SUBDIRS_*
# variables will be built.
#
# BUILD_MODULES variable can be used to specify one or more groups
# to be built (BUILD_MODULES=all will build all groups).
#
# Variables of the currently supported groups are:
# SUBDIRS_desktop
......@@ -53,15 +50,12 @@
#
# Change to the above list also need to update
# make/common/shared/Sanity.gmk. NOTE: this list is subject
# to change till the JDK 7 SE profiles/modules are finalized.
# to change.
#
# Eventually we want to restructure the make directory
# according to these grouping (e.g. make/desktop/...) and
# the SUBDIRS_<group> variables would not be needed.
#
# To build the desktop and tools groups only, you can do:
# gnumake BUILD_MODULES="desktop tools" ...
#
# Iterate the subdirectories specified in $1.
# - cd into each subdir and make them
......@@ -96,77 +90,51 @@ endef
#
# Iterate the list specified in SUBDIRS_<group> only if
# SUBDIRS_<group> is set and <group> or "all" is specified
# in the BUILD_MODULES variable
# SUBDIRS_<group> is set.
#
ifdef SUBDIRS_desktop
ifneq (,$(findstring desktop, $(BUILD_MODULES)))
define subdirs-desktop-loop
@$(call subdirs-group-loop,SUBDIRS_desktop)
endef
else
define subdirs-desktop-loop
endef
endif
define subdirs-desktop-loop
@$(call subdirs-group-loop,SUBDIRS_desktop)
endef
else
define subdirs-desktop-loop
endef
endif # SUBDIRS_desktop
ifdef SUBDIRS_enterprise
ifneq (,$(findstring enterprise, $(BUILD_MODULES)))
define subdirs-enterprise-loop
@$(call subdirs-group-loop,SUBDIRS_enterprise)
endef
else
define subdirs-enterprise-loop
endef
endif
define subdirs-enterprise-loop
@$(call subdirs-group-loop,SUBDIRS_enterprise)
endef
else
define subdirs-enterprise-loop
endef
endif # SUBDIRS_enterprise
ifdef SUBDIRS_management
ifneq (,$(findstring management, $(BUILD_MODULES)))
define subdirs-management-loop
@$(call subdirs-group-loop,SUBDIRS_management)
endef
else
define subdirs-management-loop
endef
endif
define subdirs-management-loop
@$(call subdirs-group-loop,SUBDIRS_management)
endef
else
define subdirs-management-loop
endef
define subdirs-management-loop
endef
endif # SUBDIRS_management
ifdef SUBDIRS_misc
ifneq (,$(findstring misc, $(BUILD_MODULES)))
define subdirs-misc-loop
@$(call subdirs-group-loop,SUBDIRS_misc)
endef
else
define subdirs-misc-loop
endef
endif
define subdirs-misc-loop
@$(call subdirs-group-loop,SUBDIRS_misc)
endef
else
define subdirs-misc-loop
endef
define subdirs-misc-loop
endef
endif # SUBDIRS_misc
ifdef SUBDIRS_tools
ifneq (,$(findstring tools, $(BUILD_MODULES)))
define subdirs-tools-loop
@$(call subdirs-group-loop,SUBDIRS_tools)
endef
else
define subdirs-tools-loop
endef
endif
define subdirs-tools-loop
@$(call subdirs-group-loop,SUBDIRS_tools)
endef
else
define subdirs-tools-loop
endef
define subdirs-tools-loop
endef
endif # SUBDIRS_tools
#
......@@ -175,30 +143,6 @@ endif # SUBDIRS_tools
SUBDIRS_all = $(SUBDIRS) $(SUBDIRS_desktop) $(SUBDIRS_enterprise) \
$(SUBDIRS_management) $(SUBDIRS_misc) $(SUBDIRS_tools)
ifndef BUILD_MODULES
define SUBDIRS-loop
@$(call subdirs-group-loop,SUBDIRS_all)
endef
else
ifneq (,$(findstring all, $(BUILD_MODULES)))
define SUBDIRS-loop
@$(call subdirs-group-loop,SUBDIRS_all)
endef
else # BUILD_MODULES set
#
# Iterate SUBDIRS and the groups specified in BUILD_MODULES
#
define SUBDIRS-loop
@$(call subdirs-group-loop,SUBDIRS)
@$(subdirs-desktop-loop)
@$(subdirs-enterprise-loop)
@$(subdirs-management-loop)
@$(subdirs-misc-loop)
@$(subdirs-tools-loop)
endef
endif
endif # BUILD_MODULES
......@@ -64,7 +64,7 @@ COPYRIGHT_SYMBOL = &\#x00a9;
# Macro to construct the copyright line
# (The GNU make 3.78.1 "if" conditional is broken, fixed in GNU make 3.81)
define CopyrightLine # optionalurl optionalfirstyear optionaladdress
$(if $(strip $1),<a href=\"$(strip $1)\">Copyright</a>,Copyright) \
$(if $(strip $1),<a href="$(strip $1)">Copyright</a>,Copyright) \
$(COPYRIGHT_SYMBOL) $(if $2,$2${COMMA},) $(COPYRIGHT_YEAR),\
$(FULL_COMPANY_NAME). $3 All rights reserved.
endef
......
......@@ -218,7 +218,11 @@ ifdef OPENJDK
else
LAUNCHER_NAME = java
PRODUCT_NAME = Java(TM)
PRODUCT_SUFFIX = SE Runtime Environment
ifeq ($(J4B), true)
PRODUCT_SUFFIX = SE Runtime Environment for Business
else
PRODUCT_SUFFIX = SE Runtime Environment
endif
JDK_RC_PLATFORM_NAME = Platform SE
COMPANY_NAME = Oracle Corporation
endif
......
......@@ -113,7 +113,7 @@ ifeq ($(PLATFORM), linux)
ALSA_INCLUDE=/usr/include/alsa/version.h
ALSA_LIBRARY=/usr/lib/libasound.so
_ALSA_VERSION := $(shell $(EGREP) SND_LIB_VERSION_STR $(ALSA_INCLUDE) | \
$(SED) -e 's@.*\"\(.*\)\".*@\1@' )
$(SED) -e 's@.*"\(.*\)".*@\1@' )
ALSA_VERSION := $(call GetVersion,$(_ALSA_VERSION))
endif
......@@ -221,8 +221,7 @@ include $(JDK_MAKE_SHARED_DIR)/Sanity-Settings.gmk
sane-zip_version \
sane-unzip_version \
sane-msvcrt_path \
sane-freetype \
sane-build_modules
sane-freetype
######################################################
# check for COPYRIGHT_YEAR variable
......@@ -334,12 +333,12 @@ sane-locale:
ifneq ($(PLATFORM), windows)
@if [ "$(LC_ALL)" != "" -a "$(LC_ALL)" != "C" ]; then \
$(ECHO) "WARNING: LC_ALL has been set to $(LC_ALL), this can cause build failures. \n" \
" Try setting LC_ALL to \"C\". \n" \
" Try setting LC_ALL to 'C'. \n" \
"" >> $(WARNING_FILE) ; \
fi
@if [ "$(LANG)" != "" -a "$(LANG)" != "C" ]; then \
$(ECHO) "WARNING: LANG has been set to $(LANG), this can cause build failures. \n" \
" Try setting LANG to \"C\". \n" \
" Try setting LANG to 'C'. \n" \
"" >> $(WARNING_FILE) ; \
fi
endif
......@@ -831,21 +830,6 @@ else
sane-freetype:
endif
######################################################
# if specified, BUILD_MODULES must contain valid values.
######################################################
MODULES_REGEX="all|base|desktop|management|enterprise|misc|tools"
sane-build_modules:
ifdef BUILD_MODULES
@for m in $(BUILD_MODULES) ; do \
valid=`$(ECHO) $$m | $(EGREP) $(MODULES_REGEX)`; \
if [ "x$$valid" = "x" ] ; then \
$(ECHO) "ERROR: $$m set in the BUILD_MODULES variable is invalid.\n" \
"" >> $(ERROR_FILE); \
fi \
done
endif
######################################################
# CUPS_HEADERS_PATH must be valid
######################################################
......@@ -1126,7 +1110,7 @@ TMP_SDK_INCLUDE_GET_FULL_VERSION= $(TMP_SDK_INCLUDE_FIND_VERSION) | \
# be checked when this represents a full control build (i.e. the
# HOTSPOT_IMPORT_PATH includes these files in it's 'include' directory).
$(TEMPDIR)/%.h: $(SHARE_SRC)/javavm/export/%.h
@$(install-non-module-file)
@$(install-file)
@$(RM) $@.IMPORT
@if [ -r $(HOTSPOT_IMPORT_PATH)/include/$(@F) ]; then \
$(CP) $(HOTSPOT_IMPORT_PATH)/include/$(@F) $@.IMPORT ; \
......@@ -1140,7 +1124,7 @@ $(TEMPDIR)/%.h: $(SHARE_SRC)/javavm/export/%.h
fi
$(TEMPDIR)/%.h: $(PLATFORM_SRC)/javavm/export/%.h
@$(install-non-module-file)
@$(install-file)
@$(RM) $@.IMPORT
@if [ -r $(HOTSPOT_IMPORT_PATH)/include/$(PLATFORM_INCLUDE_NAME)/$(@F) ]; then \
$(CP) $(HOTSPOT_IMPORT_PATH)/include/$(PLATFORM_INCLUDE_NAME)/$(@F) $@.IMPORT ; \
......@@ -1343,9 +1327,9 @@ ifdef LINK_VER
fi
@if [ "$(LINK_CHECK)" != "same" ]; then \
$(ECHO) "WARNING: To build Java 2 SDK $(JDK_VERSION) you need : \n" \
" $(REQUIRED_COMPILER_VERSION) - link.exe version \"$(REQUIRED_LINK_VER)\" \n" \
" $(REQUIRED_COMPILER_VERSION) - link.exe version '$(REQUIRED_LINK_VER)' \n" \
" Specifically the $(REQUIRED_COMPILER_NAME) link.exe. \n " \
" $(YOU_ARE_USING) Linker version \"$(LINK_VER)\" \n" \
" $(YOU_ARE_USING) Linker version '$(LINK_VER)' \n" \
"" >> $(WARNING_FILE) ; \
fi
endif
......
此差异已折叠。
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../..
MODULE = awt
PACKAGE = java.awt
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -31,7 +31,6 @@
#
BUILDDIR = ../..
MODULE = base
LIBRARY = fdlibm
PRODUCT = java
......
......@@ -27,7 +27,6 @@
# agent, supporting java.lang.instrument
BUILDDIR = ../..
MODULE = instrument
PACKAGE = sun.instrument
LIBRARY = instrument
PRODUCT = sun
......
......@@ -29,7 +29,6 @@
#
BUILDDIR = ../..
MODULE = base
PACKAGE = java.lang
LIBRARY = java
PRODUCT = java
......@@ -244,7 +243,7 @@ ifneq ($(PLATFORM),windows)
$(GENSRCDIR)/java/lang/UNIXProcess.java: \
$(PLATFORM_SRC)/classes/java/lang/UNIXProcess.java.$(PLATFORM)
$(install-non-module-file)
$(install-file)
clean::
$(RM) $(GENSRCDIR)/java/lang/UNIXProcess.java
......@@ -318,7 +317,6 @@ $(CURDATA): \
$(BOOT_JAVA_CMD) -jar $(GENERATECURRENCYDATA_JARFILE) -o $@.temp \
< $(SHARE_SRC)/classes/java/util/CurrencyData.properties
$(MV) $@.temp $@
$(install-module-file)
$(call chmod-file, 444)
clean::
......@@ -373,7 +371,7 @@ $(GENSRCDIR)/java/lang/CharacterDataLatin1.java \
-usecharforbyte 11 4 1
$(GENSRCDIR)/java/lang/%.java : $(CHARACTERDATA)/%.java.template
$(install-non-module-file)
$(install-file)
clean::
$(RM) $(GENSRCDIR)/java/lang/CharacterDataLatin1.java
......
......@@ -25,7 +25,6 @@
BUILDDIR = ../..
MODULE = demos
LIBRARY = java_crw_demo
PRODUCT = sun
LIBRARY_OUTPUT = java_crw_demo
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../..
MODULE = instrument
LIBRARY = hprof
PRODUCT = sun
LIBRARY_OUTPUT = hprof_jvmti
......
......@@ -30,7 +30,6 @@
# its manifestations (java, javaw, javac, ...).
#
BUILDDIR = ../..
MODULE = base
LIBRARY = jli
PRODUCT = java
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../..
MODULE = base
include $(BUILDDIR)/common/Defs.gmk
......@@ -39,10 +38,10 @@ FILES_h = $(INCLUDEDIR)/jni.h \
$(INCLUDEDIR)/classfile_constants.h
$(INCLUDEDIR)/%.h: $(SHARE_SRC)/javavm/export/%.h
$(install-non-module-file)
$(install-file)
$(PLATFORM_INCLUDE)/%.h: $(PLATFORM_SRC)/javavm/export/%.h
$(install-non-module-file)
$(install-file)
JVMCFG = $(LIBDIR)/$(LIBARCH)/jvm.cfg
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../..
MODULE = logging
PACKAGE = java.util.logging
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../../..
MODULE = base
PROGRAM = java
PRODUCT = java
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../..
MODULE = base
PROGRAM = javaw
PRODUCT = java
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../..
MODULE = management
PACKAGE = java.lang.management
LIBRARY = management
PRODUCT = java
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../..
MODULE = base
PACKAGE = java.net
LIBRARY = net
PRODUCT = sun
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = nio
PACKAGE = java.nio
LIBRARY = nio
PRODUCT = java
......@@ -304,11 +303,7 @@ endif # PLATFORM
# Rules
#
SUBDIRS_management = mxbean
include $(BUILDDIR)/common/Subdirs.gmk
build: sources
$(SUBDIRS-loop)
clean clobber::
$(RM) -r $(NIO_GEN) $(SNIO_GEN)
......@@ -821,7 +816,7 @@ SOR_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSOR_SRC) | \
$(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')
$(TEMPDIR)/$(GENSOR_SRC) : $(GENSOR_SRC)
$(install-non-module-file)
$(install-file)
$(GENSOR_EXE) : $(TEMPDIR)/$(GENSOR_SRC)
$(prep-target)
......
#
# Copyright (c) 2010, 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 = ../../..
MODULE = management
PACKAGE = java.nio
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
FILES_java = java/nio/BufferPoolMXBean.java
include $(BUILDDIR)/common/Classes.gmk
......@@ -26,7 +26,6 @@
BUILDDIR = ../..
# It's currently used by jpda and hprof. Put it in base module for now.
MODULE = base
LIBRARY = npt
PRODUCT = sun
LIBRARY_OUTPUT = npt
......
......@@ -35,7 +35,6 @@
#
BUILDDIR = ../..
MODULE = base
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......@@ -122,32 +121,26 @@ $(LIBDIR)/$(JVMLIB_NAME): $(HOTSPOT_LIB_PATH)/$(JVMLIB_NAME)
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMMAP_NAME):
@$(prep-target)
-$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVMMAP_NAME) $@
@$(install-module-file)
$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMMAP_NAME):
@$(prep-target)
-$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMMAP_NAME) $@
@$(install-module-file)
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMMAP_NAME):
@$(prep-target)
-$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMMAP_NAME) $@
@$(install-module-file)
$(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMPDB_NAME):
@$(prep-target)
-$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVMPDB_NAME) $@
@$(install-module-file)
$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMPDB_NAME):
@$(prep-target)
-$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMPDB_NAME) $@
@$(install-module-file)
$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME):
@$(prep-target)
-$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMPDB_NAME) $@
@$(install-module-file)
# Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Windows
else # PLATFORM
......@@ -291,7 +284,7 @@ INTERNAL_IMPORT_LIST += \
$(LIBDIR)/jce.jar: \
$(BUILDDIR)/closed/tools/crypto/jce/jce.jar
$(install-non-module-file)
$(install-file)
$(LIBDIR)/security/US_export_policy.jar: \
$(BUILDDIR)/closed/tools/crypto/jce/US_export_policy.jar
$(install-file)
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../../..
MODULE = font
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../../..
MODULE = sajdi
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../..
MODULE = base
PACKAGE = java.security
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = jdbc-base
PACKAGE = java.sql
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../../..
MODULE = base
PACKAGE = java.text
PRODUCT = sun
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = base
PRODUCT = java
LIBRARY = verify
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -25,7 +25,6 @@
BUILDDIR = ../..
MODULE = base
PACKAGE = java.util.zip
LIBRARY = zip
PRODUCT = sun
......
......@@ -83,7 +83,7 @@ RELEASE_DIR = $(OUTPUTDIR)/jce-release
define release-warning
@$(ECHO) \
"\n***The jar files built by the \"release\" target must***" \
"\n***The jar files built by the 'release' target must***" \
"\n***still be checked into the closed workspace! ***" \
$(README-MAKEFILE_WARNING)
endef
......
......@@ -108,7 +108,6 @@
#
BUILDDIR = ../..
MODULE = base
PACKAGE = javax.crypto
PRODUCT = sun
......@@ -294,7 +293,7 @@ limited: \
$(UNSIGNED_POLICY_BUILDDIR)/limited/US_export_policy.jar: \
$(UNSIGNED_POLICY_BUILDDIR)/unlimited/US_export_policy.jar
$(install-non-module-file)
$(install-file)
$(UNSIGNED_POLICY_BUILDDIR)/limited/local_policy.jar: \
policy/limited/default_local.policy \
......@@ -415,7 +414,7 @@ $(JAR_DESTFILE): $(UNSIGNED_DIR)/jce.jar
else
$(JAR_DESTFILE): $(SIGNED_DIR)/jce.jar
endif
$(install-non-module-file)
$(install-file)
#
# Install the appropriate policy file, depending on the type of build.
......@@ -435,7 +434,7 @@ install-limited-jars: \
$(POLICY_DESTDIR)/local_policy.jar
$(CP) $^ $(POLICY_DESTDIR)
install-limited: install-limited-jars install-module-files
install-limited: install-limited-jars
ifndef OPENJDK
$(release-warning)
endif
......@@ -449,7 +448,7 @@ install-unlimited-jars: \
$(POLICY_DESTDIR)/local_policy.jar
$(CP) $^ $(POLICY_DESTDIR)
install-unlimited: install-unlimited-jars install-module-files
install-unlimited: install-unlimited-jars
ifndef OPENJDK
$(release-warning)
endif
......@@ -466,16 +465,9 @@ install-prebuilt-jars:
$(PREBUILT_DIR)/jce/local_policy.jar \
$(POLICY_DESTDIR)
install-prebuilt: install-prebuilt-jars install-module-files
install-prebuilt: install-prebuilt-jars
endif
install-module-files: \
$(POLICY_DESTDIR)/US_export_policy.jar \
$(POLICY_DESTDIR)/local_policy.jar
$(POLICY_DESTDIR)/%.jar :
$(install-module-file)
# =====================================================
# Support routines.
#
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = imageio
PACKAGE = javax.imageio
PRODUCT = jiio
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = print
PACKAGE = javax.print
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../..
MODULE = sound
PACKAGE = javax.sound
LIBRARY = jsound
PRODUCT = sun
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../../..
MODULE = sound
PACKAGE = javax.sound
LIBRARY = jsoundalsa
PRODUCT = sun
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../../..
MODULE = sound
PACKAGE = javax.sound
LIBRARY = jsoundds
PRODUCT = sun
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = jdbc-enterprise
PACKAGE = javax.sql
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../..
MODULE = swing
PACKAGE = javax.swing
PRODUCT = com
SWING_SRC = $(SHARE_SRC)/classes/javax/swing
......
......@@ -24,7 +24,6 @@
#
BUILDDIR = ../../..
MODULE = swing
PACKAGE = javax.swing.plaf
PRODUCT = com
SWING_SRC = $(SHARE_SRC)/classes/javax/swing
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = debugging
LIBRARY = jdwp
PRODUCT = jpda
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = debugging
PRODUCT = jpda
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../..
MODULE = debugging
LIBRARY = dt_shmem
PRODUCT = jbug
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../../..
MODULE = debugging
LIBRARY = dt_socket
PRODUCT = jbug
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = jdb
PACKAGE = com.sun.tools.example.debug.tty
PRODUCT = jpda
PROGRAM = jdb
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ..
MODULE = tools
PACKAGE = launchers
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
......@@ -38,7 +37,6 @@ include $(BUILDDIR)/common/Defs.gmk
define make-corba-launcher
$(CD) $(BUILDDIR)/launchers && \
$(MAKE) -f Makefile.launcher \
MODULE=corba \
PROGRAM=$(strip $1) \
MAIN_CLASS=$(strip $2) \
MAIN_JAVA_ARGS="$(strip $3)" \
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = demos
PRODUCT = demos
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -28,7 +28,6 @@
#
BUILDDIR = ../..
MODULE = demos
PRODUCT = demos
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -29,7 +29,6 @@
BUILDDIR = ../..
MODULE = samples
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -29,7 +29,6 @@
BUILDDIR = ../../..
MODULE = samples
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -29,7 +29,6 @@
BUILDDIR = ../..
MODULE = samples
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -29,7 +29,6 @@
BUILDDIR = ../../..
MODULE = samples
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -29,7 +29,6 @@
BUILDDIR = ../../..
MODULE = samples
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -29,7 +29,6 @@
BUILDDIR = ../../..
MODULE = samples
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -29,7 +29,6 @@
BUILDDIR = ../../..
MODULE = samples
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -29,7 +29,6 @@
BUILDDIR = ../../..
MODULE = samples
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
......@@ -29,7 +29,6 @@
BUILDDIR = ../../..
MODULE = samples
PRODUCT = java
include $(BUILDDIR)/common/Defs.gmk
......
#
# Copyright (c) 2009, 2010, 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 = ..
include $(BUILDDIR)/common/Defs.gmk
#
# Modularizing the JDK
# - Post jdk build process until the source tree is restructured
# for modules build
# - <outputdir>/modules/<module> will be created for each module.
#
# Steps:
# 0. During jdk build before this makefile is invoked, classes,
# resource files, and other non-class files such as native libraries,
# properties file, images, etc are created.
#
# Non-class files are copied to <outputdir>/tmp/modules/<MODULE>
# directory in this step to prepare for the post-build modularization.
#
# The MODULE variable defined in other makefiles specifies
# the lowest-level module that the non-class files belong to.
# The name might or might not be the same as the name of the modules
# in the resulting <outputdir>/modules directory.
#
# 1. Unpack all jars in the <builddir>/lib directory to a temporary
# location (<outputdir>/tmp/modules/classes) to prepare for modules
# creation.
#
# 2. Run ClassAnalyzer tool to analyze all jdk classes and generate
# class list for all modules and also perform dependency analysis.
#
# Input configuration files :-
#
# modules.config : defines the low-level modules and specifies
# what classes and resource files each module includes.
# modules.group : defines the module groups and its members.
# jdk7.depconfig : lists the dynamic dependencies including
# use of reflection Class.forName and JNI FindClass and
# service provider.
# optional.depconfig : lists the optional dependencies
#
# 3. Create one directory for each module (<outputdir>/modules/<module>)
# based on the output files from (2).
#
# modules.list lists the modules to be created for the modules
# build and its members. For each module (m) in modules.list,
# a. create $m/lib/$m.jar with all classes and resource files
# listed in $m.classlist and $m.resources respectively.
# b. copy all non-class files from its members to
# <outputdir>/modules/$m.
MAINMANIFEST=$(JDK_TOPDIR)/make/tools/manifest.mf
MODULE_JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/manifest.tmp
TMP = $(ABS_MODULES_TEMPDIR)
MODULE_CLASSLIST = $(ABS_MODULES_TEMPDIR)/classlist
MODULE_CLASSES = $(ABS_MODULES_TEMPDIR)/classes
MODULES_LIST = $(MODULE_CLASSLIST)/modules.list
all:: unpack-jars gen-classlist modularize
JAR_LIST := $(shell $(FIND) $(ABS_OUTPUTDIR)/lib -name \*.jar -print)
unpack-jars:
@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
$(RM) -rf $(MODULE_CLASSES)
$(MKDIR) -p $(MODULE_CLASSES)
$(CP) -rf $(CLASSBINDIR)/* $(MODULE_CLASSES)
@for jf in $(JAR_LIST) ; do \
$(CD) $(MODULE_CLASSES) && $(BOOT_JAR_CMD) xf $$jf $(BOOT_JAR_JFLAGS);\
done
@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
gen-classlist:
$(CD) tools && $(MAKE) all
modularize: $(MODULE_JAR_MANIFEST_FILE)
@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
@$(RM) -rf $(MODULES_DIR)
@# create jar file for modules and
@# copy other files from all members of this module
for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \
$(ECHO) "Creating module $$m" ; \
$(SED) -e 's%\\%\/%g' < $(MODULE_CLASSLIST)/$$m.classlist > $(TMP)/tmp.cf ; \
if [ -f $(MODULE_CLASSLIST)/$$m.resources ] ; then \
$(SED) -e 's%\\%\/%g' < $(MODULE_CLASSLIST)/$$m.resources >> $(TMP)/tmp.cf ; \
fi ; \
$(MKDIR) -p $(ABS_MODULES_DIR)/$$m/lib; \
$(CD) $(MODULE_CLASSES) && \
$(BOOT_JAR_CMD) c0mf $(MODULE_JAR_MANIFEST_FILE) \
$(ABS_MODULES_DIR)/$$m/lib/$$m.jar \
@$(TMP)/tmp.cf \
$(BOOT_JAR_JFLAGS); \
for s in `$(GREP) "^$$m" $(MODULES_LIST)` ; do \
if [ -d $(TMP)/$$s ] ; then \
$(CP) -rf $(TMP)/$$s/* $(ABS_MODULES_DIR)/$$m; \
$(RM) -rf $(ABS_MODULES_DIR)/$$m/classes; \
fi \
done \
done
@$(CD) $(MODULE_CLASSES) && $(java-vm-cleanup)
@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
$(MODULE_JAR_MANIFEST_FILE):
$(SED) -e "s/@@RELEASE@@/$(RELEASE)/" $(MAINMANIFEST) > $@
clean clobber::
$(RM) -rf $(MODULE_CLASSLIST)
$(RM) -rf $(MODULES_DIR)
$(RM) $(MODULE_JAR_MANIFEST_FILE)
#
# Copyright (c) 2009, 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.
#
# 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.
#
#
# List of root classes/methods, each line of the following syntax:
# <class name>
# <method name> <signature>|*
# exclude <class>|<method>
# The boot module generated based on this rootset does not support
# - security permission check
# - non-standard charset
# - logging output
# - resource bundles
# including error output from the launcher
# VM preloaded classes
java.lang.Object
java.lang.String
java.lang.Class
java.lang.Cloneable
java.lang.ClassLoader
java.lang.System
java.lang.Throwable
java.lang.Error
java.lang.ThreadDeath
java.lang.Exception
java.lang.RuntimeException
java.security.ProtectionDomain
java.security.AccessControlContext
java.lang.ClassNotFoundException
java.lang.NoClassDefFoundError
java.lang.ClassCastException
java.lang.ArrayStoreException
java.lang.VirtualMachineError
java.lang.OutOfMemoryError
java.lang.StackOverflowError
java.lang.IllegalMonitorStateException
java.lang.ref.Reference
java.lang.ref.SoftReference
java.lang.ref.WeakReference
java.lang.ref.FinalReference
java.lang.ref.PhantomReference
java.lang.ref.Finalizer
java.lang.Runnable
java.lang.Thread
java.lang.ThreadGroup
java.util.Properties
java.lang.reflect.AccessibleObject
java.lang.reflect.Member
java.lang.reflect.Field
java.lang.reflect.Method
java.lang.reflect.Constructor
java.lang.reflect.Type
sun.reflect.MagicAccessorImpl
sun.reflect.MethodAccessorImpl
sun.reflect.ConstructorAccessorImpl
sun.reflect.DelegatingClassLoader
sun.reflect.ConstantPool
sun.reflect.UnsafeStaticFieldAccessorImpl
java.util.Vector
java.lang.StringBuffer
java.lang.StackTraceElement
java.nio.Buffer
java.lang.Boolean
java.lang.Character
java.lang.Float
java.lang.Double
java.lang.Byte
java.lang.Short
java.lang.Integer
java.lang.Long
java.lang.NullPointerException
java.lang.ArithmeticException
java.lang.Compiler
# Root methods
java.lang.ClassLoader.getSystemClassLoader ()Ljava/lang/ClassLoader;
java.lang.System.initializeSystemClass ()V
sun.launcher.LauncherHelper.checkAndLoadMain (ZZLjava/lang/String;)Ljava/lang/Object;
# The tool doesn't automatically find superclasses and parse the method
# if overridden as it tries to reduce unnecessary classes being pulled in.
# The following forces the dependency to be included the result.
sun.net.www.protocol.file.Handler.<init> ()V
sun.net.www.protocol.jar.Handler.<init> ()V
sun.net.www.protocol.file.Handler.openConnection *
sun.net.www.protocol.jar.Handler.openConnection *
sun.misc.URLClassPath$JarLoader.<init> (Ljava/net/URL;Ljava/net/URLStreamHandler;Ljava/util/HashMap;)V
sun.misc.URLClassPath$FileLoader.<init> (Ljava/net/URL;)V
sun.misc.URLClassPath$FileLoader.getClassPath *
sun.misc.URLClassPath$FileLoader.getResource *
sun.misc.URLClassPath$JarLoader.getResource *
sun.misc.URLClassPath$JarLoader.getClassPath *
# permission collections
java.io.FilePermission.newPermissionCollection ()Ljava/security/PermissionCollection;
java.security.BasicPermission.newPermissionCollection ()Ljava/security/PermissionCollection;
# native
java.io.UnixFileSystem
java.io.UnixFileSystem.<init> ()V
java.io.UnixFileSystem.canonicalize *
java.io.Win32FileSystem
java.io.Win32FileSystem.<init> ()V
java.io.Win32FileSystem.canonicalize *
java.io.WinNTFileSystem
java.io.WinNTFileSystem.<init> ()V
java.io.WinNTFileSystem.canonicalize *
# missing
java.util.HashMap.<init> ()V
java.util.HashMap$EntrySet.iterator *
# Called from native GetStringPlatformChars (jni_util.c)
java.lang.String.getBytes *
# charset
sun.nio.cs.US_ASCII.newEncoder ()Ljava/nio/charset/CharsetEncoder;
sun.nio.cs.UTF_8.newEncoder ()Ljava/nio/charset/CharsetEncoder;
sun.nio.cs.UTF_8.newDecoder *
sun.nio.cs.UTF_16.newEncoder ()Ljava/nio/charset/CharsetEncoder;
sun.nio.cs.UTF_16.newDecoder *
sun.nio.cs.UTF_32.newEncoder ()Ljava/nio/charset/CharsetEncoder;
sun.nio.cs.UTF_32.newDecoder *
# hashcode
java.util.jar.Attributes$Name.hashCode *
# nio
sun.nio.ByteBuffered
sun.nio.ch.DirectBuffer
java.nio.DirectByteBuffer
java.nio.MappedByteBuffer
java.nio.DirectLongBufferU
# resource files
sun.launcher.resources.launcher
sun.misc.Launcher$AppClassLoader.getPermissions *
sun.misc.Launcher$AppClassLoader.loadClass (Ljava/lang/String;)Ljava/lang/Class;
sun.misc.Launcher$AppClassLoader.findClass (Ljava/lang/String;)Ljava/lang/Class;
sun.misc.Launcher$ExtClassLoader.getPermissions *
sun.misc.Launcher$ExtClassLoader.loadClass (Ljava/lang/String;)Ljava/lang/Class;
sun.misc.Launcher$ExtClassLoader.findClass (Ljava/lang/String;)Ljava/lang/Class;
java.lang.ClassLoader.checkPackageAccess *
java.lang.ClassLoader.findClass *
java.lang.ClassLoader.defineClass *
java.net.URLClassLoader.getPermissions *
java.net.URLClassLoader.findClass *
java.net.URLClassLoader.defineClass *
java.security.SecureClassLoader.defineClass *
# need to parse superclasses <init>
java.security.SecureClassLoader.<init> ()V
exclude sun.security.provider.PolicyFile.<init>
exclude java.lang.ClassLoader.compareCerts
exclude java.security.cert.Certificate.equals
# unsigned jars - no verifier
exclude java.util.jar.JarFile.initializeVerifier
exclude java.util.jar.JarVerifier
exclude sun.security.util.SignatureFileVerifier.<init>
# what about other charset
exclude sun.misc.Service
exclude java.util.ServiceLoader
# exclude support for localized messages
exclude java.util.ResourceBundle.getBundle
exclude java.text.MessageFormat
exclude sun.util.logging.PlatformLogger$LoggerProxy.format *
# exclude nio and miscellaneous classes
exclude java.nio.channels.**
exclude sun.misc.FloatingDecimal
exclude sun.misc.FormattedFloatingDecimal
exclude sun.misc.FDBigInt
此差异已折叠。
此差异已折叠。
/*
* Copyright (c) 2009, 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.
*
* 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.
*/
/*
* Example:
* module jdbc {
* include jdbc-base, jdbc-enterprise, jdbc-odbc;
* }
*/
#
# Copyright (c) 2009, 2010, 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.
#
# public final java.nio.channels.SocketChannel getChannel()
@Optional
sun.security.ssl.BaseSSLSocketImpl -> java.nio.channels.SocketChannel
# public XMLDecoder(java.io.InputStream)
# public XMLDecoder(java.io.InputStream, java.lang.Object)
# public XMLDecoder(java.io.InputStream, java.lang.Object, java.beans.ExceptionListener)
# public XMLDecoder(java.io.InputStream, java.lang.Object, java.beans.ExceptionListener, java.lang.ClassLoader)
# public XMLDecoder(org.xml.sax.InputSource)
@Optional
java.beans.XMLDecoder -> com.sun.beans.decoder.DocumentHandler
java.beans.XMLDecoder -> org.xml.sax.InputSource
# public static org.xml.sax.helpers.DefaultHandler createHandler(java.lang.Object, java.beans.ExceptionListener, java.lang.ClassLoader)
@Optional
java.beans.XMLDecoder -> com.sun.beans.decoder.DocumentHandler
java.beans.XMLDecoder -> org.xml.sax.helpers.DefaultHandler
# public final java.nio.channels.FileChannel getChannel()
@Optional
java.net.SocketInputStream -> java.nio.channels.FileChannel
# public final java.nio.channels.FileChannel getChannel()
@Optional
java.net.SocketOutputStream -> java.nio.channels.FileChannel
# public Scanner(java.io.File)
# public Scanner(java.io.File, java.lang.String)
@Optional
java.util.Scanner -> java.nio.channels.ReadableByteChannel
java.util.Scanner -> java.nio.channels.Channels
# public Scanner(java.nio.file.FileRef)
# public Scanner(java.nio.file.FileRef, java.lang.String)
@Optional
java.util.Scanner -> java.nio.file.FileRef
java.util.Scanner -> java.nio.file.OpenOption
# public Scanner(java.nio.channels.ReadableByteChannel)
# public Scanner(java.nio.channels.ReadableByteChannel, java.lang.String)
@Optional
java.util.Scanner -> java.nio.channels.ReadableByteChannel
java.util.Scanner -> java.nio.channels.Channels
# private static void loadSnmpAgent(java.lang.String, java.util.Properties)
@Optional
sun.management.Agent -> sun.management.snmp.AdaptorBootstrap
# public void connect()
@Optional
sun.net.www.protocol.http.HttpURLConnection -> java.net.SecureCacheResponse
# private static sun.security.util.PermissionFactory<?> permissionFactory()
@Optional
sun.security.util.SecurityConstants$AWT -> sun.awt.AWTPermissionFactory
# sun.util.logging.LoggingSupport
@Optional
sun.util.logging.LoggingSupport -> java.util.logging.LoggingProxyImpl
# public java.nio.channels.DatagramChannel getChannel()
@Optional
java.net.DatagramSocket -> java.nio.channels.DatagramChannel
# public java.nio.channels.SocketChannel getChannel()
@Optional
java.net.Socket -> java.nio.channels.SocketChannel
# public java.nio.channels.ServerSocketChannel getChannel()
@Optional
java.net.ServerSocket -> java.nio.channels.ServerSocketChannel
# public final java.nio.channels.FileChannel getChannel()
@Optional
java.io.RandomAccessFile -> java.nio.channels.FileChannel
java.io.RandomAccessFile -> sun.nio.ch.FileChannelImpl
# public static sun.nio.cs.StreamDecoder forDecoder(java.nio.channels.ReadableByteChannel, java.nio.charset.CharsetDecoder, int)
@Optional
sun.nio.cs.StreamDecoder -> java.nio.channels.ReadableByteChannel
# private static java.nio.channels.FileChannel getChannel(java.io.FileInputStream)
# StreamDecoder(java.io.InputStream, java.lang.Object, java.nio.charset.CharsetDecoder)
@Optional
sun.nio.cs.StreamDecoder -> java.nio.channels.FileChannel
# StreamDecoder(java.nio.channels.ReadableByteChannel, java.nio.charset.CharsetDecoder, int)
@Optional
sun.nio.cs.StreamDecoder -> java.nio.channels.ReadableByteChannel
# public static java.io.File createTemporaryFile(java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>[])
@Optional
java.io.File -> java.io.TempFileHelper
java.io.File -> java.nio.file.attribute.FileAttribute
# public java.nio.file.Path toPath()
@Optional
java.io.File -> java.nio.file.Paths
java.io.File -> java.nio.file.Path
# public static sun.nio.cs.StreamEncoder forEncoder(java.nio.channels.WritableByteChannel, java.nio.charset.CharsetEncoder, int)
# private StreamEncoder(java.nio.channels.WritableByteChannel, java.nio.charset.CharsetEncoder, int)
@Optional
sun.nio.cs.StreamEncoder -> java.nio.channels.WritableByteChannel
# public java.nio.channels.FileChannel getChannel()
@Optional
java.io.FileOutputStream -> java.nio.channels.FileChannel
java.io.FileOutputStream -> sun.nio.ch.FileChannelImpl
# public java.nio.channels.FileChannel getChannel()
@Optional
java.io.FileInputStream -> java.nio.channels.FileChannel
java.io.FileInputStream -> sun.nio.ch.FileChannelImpl
# public void loadFromXML(java.io.InputStream)
# public void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String)
@Optional
java.util.Properties -> java.util.XMLUtils
# public static java.nio.channels.Channel inheritedChannel()
@Optional
java.lang.System -> java.nio.channels.Channel
java.lang.System -> java.nio.channels.spi.SelectorProvider
#
# Copyright (c) 2009, 2010, 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 the classanalyzer tool
#
BUILDDIR = ../..
include $(BUILDDIR)/common/Defs.gmk
PKGDIR = com/sun/classanalyzer
BUILDTOOL_SOURCE_ROOT = src
BUILDTOOL_MAIN = $(PKGDIR)/ClassAnalyzer.java
BUILTTOOL_MAINCLASS = $(subst /,.,$(BUILDTOOL_MAIN:%.java=%))
BUILDTOOL_MAIN_SOURCE_FILE = $(BUILDTOOL_SOURCE_ROOT)/$(BUILDTOOL_MAIN)
BUILDTOOL_MANIFEST_FILE = $(BUILDTOOLCLASSDIR)/classanalyzer_manifest.mf
FILES_java := $(shell $(CD) $(BUILDTOOL_SOURCE_ROOT) \
&& $(FIND) $(PKGDIR) -type f -print)
FILES_class = $(FILES_java:%.java=$(BUILDTOOLCLASSDIR)/%.class)
CLASSANALYZER_JAR_FILE = $(BUILDTOOLJARDIR)/classanalyzer.jar
#
# ClassAnalyzer depends on the com.sun.tools.classfile API.
# The tool is compiled with the latest version of the classfile
# library in the langtools repo to make sure that synchronized
# change is made if the classfile API is changed.
#
# If langtools repo exists, build its own copy of the
# classfile library and use it for compile time and runtime.
# If not exist (the top level repo is not a forest), use
# the built jdk tools that imports tools.jar from the latest
# promoted build.
#
# If the classfile API is changed but not yet in a promoted build,
# the build might fail and the tool would need the langtools repo
# to build in that case.
#
ifndef LANGTOOLS_TOPDIR
LANGTOOLS_TOPDIR=$(JDK_TOPDIR)/../langtools
endif
LANGTOOLS_TOPDIR_EXISTS := $(shell \
if [ -d $(LANGTOOLS_TOPDIR) ] ; then \
echo true; \
else \
echo false; \
fi)
CLASSFILE_SRC = $(LANGTOOLS_TOPDIR)/src/share/classes
CLASSFILE_PKGDIR = com/sun/tools/classfile
ifeq ($(LANGTOOLS_TOPDIR_EXISTS), true)
FILES_classfile_java := $(shell \
$(CD) $(CLASSFILE_SRC) && \
$(FIND) $(CLASSFILE_PKGDIR) -name '*.java' -print)
FILES_classfile_class = $(FILES_classfile_java:%.java=$(BUILDTOOLCLASSDIR)/%.class)
CLASSFILE_JAR_FILE = $(BUILDTOOLJARDIR)/classfile.jar
BUILDTOOL_JAVAC = $(BOOT_JAVAC_CMD) $(JAVAC_JVM_FLAGS) \
$(BOOT_JAVACFLAGS) -classpath $(CLASSFILE_JAR_FILE)
BUILDTOOL_JAVA = $(BOOT_JAVA_CMD) $(JAVA_TOOLS_FLAGS) \
-Xbootclasspath/p:$(CLASSFILE_JAR_FILE)
else
# if langtools doesn't exist, use tools from the built jdk
BUILDTOOL_JAVAC = $(BINDIR)/javac $(JAVAC_JVM_FLAGS) \
$(BOOT_JAVACFLAGS)
BUILDTOOL_JAVA = $(BINDIR)/java $(JAVA_TOOLS_FLAGS)
endif
# Location of the output modules.list, <module>.classlist
# and other output files generated by the class analyzer tool.
#
MODULE_CLASSLIST = $(MODULES_TEMPDIR)/classlist
all build: classanalyzer gen-classlist
classanalyzer: $(CLASSFILE_JAR_FILE) $(CLASSANALYZER_JAR_FILE)
gen-classlist:
@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
@$(RM) -rf $(MODULE_CLASSLIST)
@$(MKDIR) -p $(MODULE_CLASSLIST)
$(BUILDTOOL_JAVA) \
-Dclassanalyzer.debug \
-jar $(CLASSANALYZER_JAR_FILE) \
-jdkhome $(OUTPUTDIR) \
-config ../modules.config \
-config ../modules.group \
-depconfig ../jdk7.depconfig \
-depconfig ../optional.depconfig \
-showdynamic \
-output $(MODULE_CLASSLIST)
@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
$(BUILDTOOL_MANIFEST_FILE): $(BUILDTOOL_MAIN_SOURCE_FILE)
@$(prep-target)
$(ECHO) "Main-Class: $(BUILTTOOL_MAINCLASS)" > $@
$(BUILDTOOLCLASSDIR)/$(CLASSFILE_PKGDIR)/%.class : $(CLASSFILE_SRC)/$(CLASSFILE_PKGDIR)/%.java
@$(prep-target)
@$(BUILDTOOL_JAVAC) \
-sourcepath $(CLASSFILE_SRC) \
-d $(BUILDTOOLCLASSDIR) $<
$(BUILDTOOLCLASSDIR)/%.class : $(BUILDTOOL_SOURCE_ROOT)/%.java
@$(prep-target)
$(BUILDTOOL_JAVAC) \
-sourcepath $(BUILDTOOL_SOURCE_ROOT) \
-d $(BUILDTOOLCLASSDIR) $<
$(CLASSANALYZER_JAR_FILE): $(BUILDTOOL_MANIFEST_FILE) $(FILES_class)
@$(prep-target)
$(BOOT_JAR_CMD) cfm $@ $(BUILDTOOL_MANIFEST_FILE) \
-C $(BUILDTOOLCLASSDIR) $(PKGDIR) $(BOOT_JAR_JFLAGS) || $(RM) $@
@$(java-vm-cleanup)
$(BUILDTOOLJARDIR)/classfile.jar: $(FILES_classfile_class)
@$(prep-target)
$(CD) $(BUILDTOOLCLASSDIR) && \
$(BOOT_JAR_CMD) cf $@ \
$(CLASSFILE_PKGDIR) $(BOOT_JAR_JFLAGS) || $(RM) $@
@$(java-vm-cleanup)
clean clobber::
@$(RM) -rf $(BUILDTOOLCLASSDIR)/$(PKGDIR)
@$(RM) -rf $(BUILDTOOLCLASSDIR)/$(CLASSFILE_PKGDIR)
@$(RM) $(BUILDTOOL_MANIFEST_FILE)
@$(RM) $(CLASSANALYZER_JAR_FILE)
@$(RM) $(CLASSFILE_JAR_FILE)
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2009, 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.
-->
<project name="classanalyzer" default="build" basedir=".">
</project>
#
# Copyright (c) 2009, 2010, 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.
#
application.title=classanalyzer
application.vendor=mchung
build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned:
build.dir=build
build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
cp.extra=${tools.jar}
debug.classpath=\
${run.classpath}
debug.test.classpath=\
${run.test.classpath}
# This directory is removed when the project is cleaned:
dist.dir=dist
dist.jar=${dist.dir}/classanalyzer.jar
dist.javadoc.dir=${dist.dir}/javadoc
excludes=
file.reference.tools.jar=${jdk.home}/lib/tools.jar
file.reference.tools-src=src
includes=**
jar.compress=false
javac.classpath=\
${file.reference.tools.jar}
javac.deprecation=false
javac.source=1.5
javac.target=1.5
javac.test.classpath=
javadoc.author=false
javadoc.noindex=false
javadoc.nonavbar=false
javadoc.notree=false
javadoc.private=false
javadoc.splitindex=false
javadoc.use=false
javadoc.version=false
main.class=com.sun.classanalyzer.ClassAnalyzer
manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
platform.active=JDK_1.6
run.classpath=\
${javac.classpath}:\
${build.classes.dir}
# Space-separated list of JVM arguments used when running the project
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
# or test-sys-prop.name=value to set system properties for unit tests):
run.jvmargs=-Xmx256m
run.test.classpath=
source.encoding=UTF-8
src.dir=${file.reference.tools-src}
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2009, 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.
-->
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>classanalyzer</name>
<explicit-platform explicit-source-supported="true"/>
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots/>
</data>
</configuration>
</project>
/*
* Copyright (c) 2009, 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.
*
* 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 com.sun.classanalyzer;
/**
*
* @author Mandy Chung
*/
public class ConstantPoolAnalyzer {
public static void main(String[] args) throws Exception {
String jdkhome = null;
// process arguments
int i = 0;
while (i < args.length) {
String arg = args[i++];
if (arg.equals("-jdkhome")) {
if (i < args.length) {
jdkhome = args[i++];
} else {
usage();
}
}
}
if (jdkhome == null) {
usage();
}
ClassPath.setJDKHome(jdkhome);
ClassPath.parseAllClassFiles();
}
private static void usage() {
System.out.println("Usage: ConstantPoolAnalyzer <options>");
System.out.println("Options: ");
System.out.println("\t-jdkhome <JDK home> where all jars will be parsed");
System.out.println("\t-cpath <classpath> where classes and jars will be parsed");
System.exit(-1);
}
}
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册