Mercurial > hg > openjdk7.svn
view j2se/make/common/Release.gmk @ 2:16f2b6c91171 trunk
[svn] Load openjdk/jdk7/b14 into jdk/trunk.
author | xiomara |
---|---|
date | Fri, 22 Jun 2007 00:46:43 +0000 |
parents | a4ed3fb96592 |
children | 64ed597c0ad3 |
line wrap: on
line source
# # Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 only, as # published by the Free Software Foundation. Sun designates this # particular file as subject to the "Classpath" exception as provided # by Sun in the LICENSE file that accompanied this code. # # This code is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # version 2 for more details (a copy is included in the LICENSE file that # accompanied this code). # # You should have received a copy of the GNU General Public License version # 2 along with this work; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. # # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, # CA 95054 USA or visit www.sun.com if you need additional information or # have any questions. # include $(J2SE_TOPDIR)/make/docs/CORE_PKGS.gmk include $(J2SE_TOPDIR)/make/docs/NON_CORE_PKGS.gmk # # Perform release engineering tasks. # # images An image is what the product looks like when it is # installed. # IMAGE_BINDIR = bin # The compiler should not issue a "Sun Propietary" warning when compiling # classes in the com.sun.java.swing.plaf packages, since we've always # allowed, and even advocated, extending them (see bug 6476749). # # This approach is NOT to be used as a general purpose way to avoid such # compiler warnings for non-core packages. The correct way is to document # the packages in NON_CORE_PKGS.gmk, and include them in the NON_CORE_PKGS # definition. # # Swing has taken this approach only as a temporary measure to avoid # the compiler warnings until we can properly document these packages. # This is covered under 6491853. EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf \ com.sun.java.swing.plaf.windows \ com.sun.java.swing.plaf.motif \ com.sun.java.swing.plaf.gtk # 64-bit solaris has a few special cases. We define the variable # SOLARIS64 for use in this Makefile to easily test those cases ifeq ($(PLATFORM), solaris) ifeq ($(ARCH_DATA_MODEL), 64) SOLARIS64 = true IMAGE_BINDIR = bin/$(ARCH) endif endif JTG_DOCS = $(J2SE_TOPDIR)/src/solaris/doc # Choose the right set of documents for the images ifdef OPENJDK SHARE_JDK_DOC_SRC = $(J2SE_TOPDIR)/make SHARE_JRE_DOC_SRC = $(J2SE_TOPDIR)/make else SHARE_JDK_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jdk SHARE_JRE_DOC_SRC = $(CLOSED_SHARE_SRC)/doc/jre endif #We use this for man page header jdkversion := $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION) # Text documents on windows use this suffix ifeq ($(PLATFORM), windows) TEXT_SUFFIX = .txt endif # The base names of all the license and document files for the jdk and jre ifdef OPENJDK # Same files for jdk and jre, no name changes LICENSE_DOCLIST_JDK = LICENSE ASSEMBLY_EXCEPTION LICENSE_DOCLIST_JRE = LICENSE ASSEMBLY_EXCEPTION OTHER_DOCLIST_JDK = README.html THIRD_PARTY_README OTHER_DOCLIST_JRE = README.html THIRD_PARTY_README else # Select the pre-release or FCS license version based on the build milestone. LICENSE_VERSION=.pre ifeq ($(MILESTONE), fcs) LICENSE_VERSION=.fcs endif ifeq ($(PLATFORM), windows) LICENSE_DOCLIST_JDK = $(subst $(LICENSE_VERSION),,\ $(shell $(CD) $(SHARE_JDK_DOC_SRC) && \ $(LS) *LICENSE*$(LICENSE_VERSION))) LICENSE_DOCLIST_JRE = $(subst $(LICENSE_VERSION),,\ $(shell $(CD) $(SHARE_JRE_DOC_SRC) && \ $(LS) *LICENSE*$(LICENSE_VERSION))) else LICENSE_DOCLIST_JDK = $(subst $(LICENSE_VERSION),,\ $(shell $(CD) $(SHARE_JDK_DOC_SRC) && \ $(LS) *LICENSE*$(LICENSE_VERSION) | $(GREP) -v rtf)) LICENSE_DOCLIST_JRE = $(subst $(LICENSE_VERSION),,\ $(shell $(CD) $(SHARE_JRE_DOC_SRC) && \ $(LS) *LICENSE*$(LICENSE_VERSION) | $(GREP) -v rtf)) endif OTHER_DOCLIST_JDK = COPYRIGHT README.html README_ja.html README_zh_CN.html OTHER_DOCLIST_JRE = COPYRIGHT Welcome.html JRE_NAMECHANGE_DOCLIST = README endif # Paths to these files we need JDK_LICENSES = $(LICENSE_DOCLIST_JDK:%=$(JDK_IMAGE_DIR)/%) JDK64_LICENSES = $(LICENSE_DOCLIST_JDK:%=$(JDK_IMAGE_DIR)/%64) JDK_DOCFILES = $(OTHER_DOCLIST_JDK:%=$(JDK_IMAGE_DIR)/%) JRE_LICENSES = $(LICENSE_DOCLIST_JRE:%=$(JRE_IMAGE_DIR)/%) JRE64_LICENSES = $(LICENSE_DOCLIST_JRE:%=$(JRE_IMAGE_DIR)/%64) JRE_DOCFILES = $(OTHER_DOCLIST_JRE:%=$(JRE_IMAGE_DIR)/%) JRE_DOCFILES += $(JRE_NAMECHANGE_DOCLIST:%=$(JRE_IMAGE_DIR)/%$(TEXT_SUFFIX)) # absolute directory names: note, these must exist prior to build # time - they are created in the main Makefile. ABS_J2SE_TOPDIR :=$(call FullPath,$(J2SE_TOPDIR)) JRE_IMAGE_BINDIR = $(JRE_IMAGE_DIR)/bin JRE_IMAGE_THREADIR = $(JRE_IMAGE_DIR)/bin/*/native_threads MAINMANIFEST = $(ABS_J2SE_TOPDIR)/make/tools/manifest.mf BEANMANIFEST = $(ABS_J2SE_TOPDIR)/make/javax/swing/beaninfo/manifest # # Man pages # JRE_MAN_PAGES = \ java.1 \ keytool.1 \ rmid.1 \ rmiregistry.1 \ tnameserv.1 \ servertool.1 \ orbd.1 \ policytool.1 \ pack200.1 \ unpack200.1 ifeq ($(ARCH_DATA_MODEL),32) JRE_MAN_PAGES += javaws.1 endif ifeq ($(PLATFORM), linux) endif JDK_MAN_PAGES = \ $(JRE_MAN_PAGES) \ appletviewer.1 \ apt.1 \ extcheck.1 \ idlj.1 \ jar.1 \ jarsigner.1 \ javac.1 \ javadoc.1 \ javah.1 \ javap.1 \ jconsole.1 \ jdb.1 \ jhat.1 \ jinfo.1 \ jmap.1 \ jps.1 \ jrunscript.1 \ jsadebugd.1 \ jstack.1 \ jstat.1 \ jstatd.1 \ native2ascii.1 \ rmic.1 \ schemagen.1 \ serialver.1 \ wsgen.1 \ wsimport.1 \ xjc.1 ifeq ($(PLATFORM), solaris) LIBTHREAD_PKG_LOC=pkgdefs/SUNWjvthr MANDIR=$(J2SE_TOPDIR)/src/solaris/doc/sun/man/man1 JA_MANDIR=$(J2SE_TOPDIR)/src/solaris/doc/sun/man/man1 DEST_MAN_PATH = man/man1 endif # PLATFORM ifeq ($(PLATFORM), linux) MANDIR=$(J2SE_TOPDIR)/src/linux/doc/man JA_MANDIR=$(J2SE_TOPDIR)/src/linux/doc/man DEST_MAN_PATH = man/man1 endif # # Targets. # INITIAL_IMAGE_JRE=initial-image-jre INITIAL_IMAGE_JDK=initial-image-jdk ifeq ($(PLATFORM), solaris) ifeq ($(ARCH_DATA_MODEL), 64) INITIAL_IMAGE_JRE=initial-image-jre-sol64 INITIAL_IMAGE_JDK=initial-image-jdk-sol64 endif endif images images-clobber \ initial-image-jre initial-image-jdk \ initial-image-jre-sol64 initial-image-jdk-sol64 \ trim-image-jre trim-image-jdk \ process-image-jre process-image-jdk \ compare-image-jre compare-image-jdk sec-files sec-files-win jgss-files :: @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."; # Order is important here, trim jre after jdk image is created images:: sanity-images post-sanity-images \ $(INITIAL_IMAGE_JRE) $(INITIAL_IMAGE_JDK) \ trim-image-jre trim-image-jdk \ process-image-jre process-image-jdk sec-files sec-files-win jgss-files # Don't use these image-jre:: initial-image-jre trim-image-jre process-image-jre image-jdk:: initial-image-jdk trim-image-jdk process-image-jdk ifndef OPENJDK CLOSED_DIR=$(ABS_OUTPUTDIR)/closed ifeq ($(PLATFORM), windows) LIB1=dcpr.dll LIB2=t2k.dll closed-binaries-dir-t2klib: $(MKDIR) -p $(CLOSED_DIR) $(CP) $(ABS_OUTPUTDIR)/tmp/sun/sun.font/t2k/$(OBJDIRNAME)/t2k.lib $(CLOSED_DIR) else LIB1=libdcpr.so LIB2=libt2k.so closed-binaries-dir-t2klib: endif # JavaSound closed libs closed-binaries-dir-jsound: # windows (32bit only) & linux have additional libraries # see /make/javax/sound/Makefile & subdir's Makefiles for more details ifeq ($(PLATFORM), windows) JSOUND_LIB=jsound.dll ifeq ($(ARCH), i586) # include DirectSound implementation closed-binaries-dir-jsound: $(MKDIR) -p $(CLOSED_DIR) $(CP) $(LIB_LOCATION)/jsoundds.dll $(CLOSED_DIR) endif else # !(PLATFORM windows) JSOUND_LIB=libjsound.so ifeq ($(PLATFORM), linux) # include ALSA implementation closed-binaries-dir-jsound: $(MKDIR) -p $(CLOSED_DIR) $(CP) $(LIB_LOCATION)/libjsoundalsa.so $(CLOSED_DIR) endif # PLATFORM linux endif # PLATFORM windows CLOSED_CLASSES = \ sun/dc \ java/awt/color/CMMException.class \ java/awt/color/ColorSpace.class \ java/awt/color/ICC_ColorSpace.class \ java/awt/color/ICC_Profile\$$1.class \ java/awt/color/ICC_Profile\$$2.class \ java/awt/color/ICC_Profile\$$3.class \ java/awt/color/ICC_Profile.class \ java/awt/color/ICC_ProfileGray.class \ java/awt/color/ICC_ProfileRGB.class \ java/awt/image/BandedSampleModel.class \ java/awt/image/ColorConvertOp.class \ java/awt/image/ComponentSampleModel.class \ java/awt/image/DataBuffer\$$1.class \ java/awt/image/DataBuffer.class \ java/awt/image/DataBufferByte.class \ java/awt/image/DataBufferInt.class \ java/awt/image/DataBufferShort.class \ java/awt/image/DataBufferUShort.class \ java/awt/image/MultiPixelPackedSampleModel.class \ java/awt/image/Raster.class \ java/awt/image/RenderedImage.class \ java/awt/image/SampleModel.class \ java/awt/image/SinglePixelPackedSampleModel.class \ java/awt/image/WritableRaster.class \ java/awt/image/WritableRenderedImage.class \ java/awt/image/renderable/ContextualRenderedImageFactory.class \ java/awt/image/renderable/ParameterBlock.class \ java/awt/image/renderable/RenderableImage.class \ java/awt/image/renderable/RenderableImageOp.class \ java/awt/image/renderable/RenderableImageProducer.class \ java/awt/image/renderable/RenderContext.class \ java/awt/image/renderable/RenderedImageFactory.class \ com/sun/jmx/snmp/SnmpDataTypeEnums.class \ com/sun/jmx/snmp/SnmpDefinitions.class \ com/sun/jmx/snmp/SnmpOid.class \ com/sun/jmx/snmp/SnmpOidDatabase.class \ com/sun/jmx/snmp/SnmpOidDatabaseSupport.class \ com/sun/jmx/snmp/SnmpOidRecord.class \ com/sun/jmx/snmp/SnmpOidTable.class \ com/sun/jmx/snmp/SnmpOidTableSupport.class \ com/sun/jmx/snmp/SnmpParameters.class \ com/sun/jmx/snmp/SnmpPduPacket.class \ com/sun/jmx/snmp/SnmpPeer.class \ com/sun/jmx/snmp/SnmpTimeticks.class \ com/sun/jmx/snmp/SnmpVarBind.class \ com/sun/jmx/snmp/SnmpVarBindList.class \ com/sun/jmx/snmp/Timestamp.class \ com/sun/jmx/snmp/daemon/SendQ.class \ com/sun/jmx/snmp/daemon/SnmpInformRequest.class \ com/sun/jmx/snmp/daemon/SnmpQManager.class \ com/sun/jmx/snmp/daemon/SnmpRequestCounter.class \ com/sun/jmx/snmp/daemon/SnmpResponseHandler.class \ com/sun/jmx/snmp/daemon/SnmpSendServer.class \ com/sun/jmx/snmp/daemon/SnmpSession.class \ com/sun/jmx/snmp/daemon/SnmpSocket.class \ com/sun/jmx/snmp/daemon/SnmpTimerServer.class \ com/sun/jmx/snmp/daemon/WaitQ.class \ com/sun/media/sound ABSJAR = $(ABS_BINDIR)/jar closed-binaries-dir: closed-binaries-dir-t2klib closed-binaries-dir-jsound $(MKDIR) -p $(CLOSED_DIR) (cd $(CLASSBINDIR) ; $(ABSJAR) c0f $(CLOSED_DIR)/closed.jar $(CLOSED_CLASSES)) $(CP) $(LIB_LOCATION)/$(LIB1) $(CLOSED_DIR) $(CP) $(LIB_LOCATION)/$(LIB2) $(CLOSED_DIR) $(CP) $(LIB_LOCATION)/$(JSOUND_LIB) $(CLOSED_DIR) endif # # Sources we ship in the SDK. # SOURCES = \ java/applet \ java/awt \ java/beans \ java/io \ java/lang \ java/math \ java/net \ java/nio \ java/rmi \ java/security \ java/sql \ java/text \ java/util \ com/sun/corba \ com/sun/image/codec/jpeg \ com/sun/imageio \ com/sun/java/swing \ com/sun/javadoc \ com/sun/jmx \ com/sun/mirror \ com/sun/source \ com/sun/naming \ com/sun/security/auth \ com/sun/security/jgss \ javax/accessibility \ javax/annotation \ javax/script \ javax/imageio \ javax/lang \ javax/management \ javax/naming \ javax/print \ javax/rmi \ javax/security \ javax/sound \ javax/sql \ javax/swing \ javax/tools \ javax/xml \ com/sun/org/apache \ com/sun/java_cup \ com/sun/jlex \ org/ietf \ org/omg \ org/w3c/dom \ org/xml/sax \ sunw # # Directories where sources may be found. If a file with the same path # name exists in more than one of these places, the one found last on this # list wins. # ifdef OPENJDK SOURCE_DIRS = $(SHARE_SRC)/classes $(PLATFORM_SRC)/classes $(GENSRCDIR) else SOURCE_DIRS = $(SHARE_SRC)/classes $(PLATFORM_SRC)/classes $(GENSRCDIR) $(CLOSED_SRC)/share/classes endif # # Specific files and directories that will be filtered out from above areas. # SOURCE_FILTERs = $(SCM_DIRs) 'X-*' '*-X-*' '*-template.java' ',*' SOURCE_FILES_filter = $(SOURCE_FILTERs:%=-name % -prune -o) # # Bug 4249883 - excluding some unnecessary packages from com.sun.tools # # Bug 5008685 - exclude jconsole from sun/tools # Side note: sun/tools/javazic is used by the build # but is not part of the product. # TOOLS = \ META-INF/services/com.sun.jdi.connect.Connector \ META-INF/services/com.sun.jdi.connect.spi.TransportService \ sun/tools/asm \ sun/tools/jar \ sun/tools/java \ sun/tools/javac \ sun/tools/javap \ sun/tools/jps \ sun/tools/jstat \ sun/tools/jstatd \ sun/tools/native2ascii \ sun/tools/serialver \ sun/tools/tree \ sun/tools/util \ sun/security/tools/JarBASE64Encoder.class \ sun/security/tools/JarSigner.class \ sun/security/tools/JarSignerParameters.class \ sun/security/tools/JarSignerResources.class \ sun/security/tools/JarSignerResources_ja.class \ sun/security/tools/JarSignerResources_zh_CN.class \ sun/security/tools/SignatureFile\$$Block.class \ sun/security/tools/SignatureFile.class \ sun/security/tools/TimestampedSigner.class \ sun/rmi/rmic \ sun/applet \ sun/jvmstat \ com/sun/javadoc \ com/sun/jdi \ com/sun/jarsigner \ com/sun/mirror \ com/sun/source \ com/sun/tools/doclets \ com/sun/tools/example/debug/expr \ com/sun/tools/example/debug/tty \ com/sun/tools/extcheck \ com/sun/tools/hat \ com/sun/tools/javac \ com/sun/tools/javadoc \ com/sun/tools/apt \ com/sun/tools/javah \ com/sun/tools/corba \ com/sun/tools/internal/xjc \ com/sun/tools/internal/ws \ META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory \ com/sun/istack/internal/tools \ com/sun/istack/internal/ws \ com/sun/codemodel \ com/sun/tools/internal/jxc \ com/sun/xml/internal/rngom \ com/sun/xml/internal/xsom \ org/relaxng/datatype \ com/sun/xml/internal/dtdparser \ com/sun/tools/jdi \ com/sun/tools/script/shell \ META-INF/services/com.sun.tools.attach.spi.AttachProvider \ com/sun/tools/attach \ sun/tools/attach \ sun/tools/jstack \ sun/tools/jinfo \ sun/tools/jmap # classes that go into jsse.jar JSSE_CLASSES_DIRS = \ sun/security/ssl \ com/sun/net/ssl/internal/ssl # files under $(OUTPUTDIR) that need to go into sec-bin.zip for builds # where the corresponding sources are not available SEC_FILES_DIRS = \ classes/javax/net \ classes/javax/security/cert \ classes/com/sun/net/ssl \ classes/com/sun/security/cert \ classes/sun/net/www/protocol/https \ classes/sun/security/pkcs12 \ classes/sun/security/ssl \ classes/sun/security/krb5/*.class \ classes/sun/security/krb5/internal/*.class \ classes/sun/security/krb5/internal/ccache \ classes/sun/security/krb5/internal/crypto \ classes/sun/security/krb5/internal/ktab \ classes/sun/security/krb5/internal/rcache \ classes/sun/security/krb5/internal/util \ classes/sun/security/jgss/spi/GSSContextSpi.class # files under $(OUTPUTDIR) that need to go into sec-windows-win.zip for builds # where the corresponding sources are not available SEC_FILES_WIN_DIRS = \ classes/sun/security/krb5/internal/tools # files under $(BINDIR) that need to go into jgss_files.zip for builds # where the corresponding sources are not available JGSS_FILES_DIRS = \ bin/w2k_lsa_auth.dll \ bin/w2k_lsa_auth.map \ bin/w2k_lsa_auth.pdb JPDA_SHARE_SRC=$(J2SE_TOPDIR)/src/share JPDA_DEMO_PKGS= \ com/sun/tools/example/README \ com/sun/tools/example/doc \ com/sun/tools/example/trace \ com/sun/tools/example/debug/expr \ com/sun/tools/example/debug/tty \ com/sun/tools/example/debug/bdi \ com/sun/tools/example/debug/event \ com/sun/tools/example/debug/gui # The following get removed from the SDK image. NOTJDKTOOLS = \ java_vm # The following get removed from the JRE after the bulk-copy of BINDIR... NOTJRETOOLS = \ appletviewer$(EXE_SUFFIX) \ extcheck$(EXE_SUFFIX) \ idlj$(EXE_SUFFIX) \ jar$(EXE_SUFFIX) \ jarsigner$(EXE_SUFFIX) \ java-rmi.cgi \ javac$(EXE_SUFFIX) \ javadoc$(EXE_SUFFIX) \ apt$(EXE_SUFFIX) \ javah$(EXE_SUFFIX) \ javap$(EXE_SUFFIX) \ jdb$(EXE_SUFFIX) \ jps$(EXE_SUFFIX) \ jrunscript$(EXE_SUFFIX) \ jstat$(EXE_SUFFIX) \ jstatd$(EXE_SUFFIX) \ jstack$(EXE_SUFFIX) \ packagebean$(SCRIPT_SUFFIX) \ rmic$(EXE_SUFFIX) \ serialver$(EXE_SUFFIX) \ unregbean$(EXE_SUFFIX) \ jconsole$(EXE_SUFFIX) \ jinfo$(EXE_SUFFIX) \ jmap$(EXE_SUFFIX) \ native2ascii$(EXE_SUFFIX) \ xjc$(EXE_SUFFIX) \ wsgen$(EXE_SUFFIX) \ wsimport$(EXE_SUFFIX) \ schemagen$(EXE_SUFFIX) \ jsadebugd$(EXE_SUFFIX) \ jhat$(EXE_SUFFIX) # The following get removed from the JRE after the bulk-copy of LIBDIR... NOTJRELIBS = tools.jar \ jconsole.jar ifeq ($(INCLUDE_SA), true) NOTJRELIBS += sa-jdi.jar # The following get removed from the JRE after the bulk-copy of LIBDIR... NOTJRE_SHARED_LIBS = $(SALIB_NAME) else NOTJRE_SHARED_LIBS = endif # Attach library is JDK only NOTJRE_SHARED_LIBS += $(LIB_PREFIX)attach.$(LIBRARY_SUFFIX) # ###### RULES # Processing license files from source area to image area # These will be modified to have the platform specific EOL chars. define process-doc-file $(prep-target) $(SED) 's/$$//g' $< > $@ $(CHMOD) 444 $@ endef # JDK files $(JDK_IMAGE_DIR)/%: $(SHARE_JDK_DOC_SRC)/% $(process-doc-file) # Removes LICENSE_VERSION or not ifdef LICENSE_VERSION $(JDK_IMAGE_DIR)/%: $(SHARE_JDK_DOC_SRC)/%$(LICENSE_VERSION) $(process-doc-file) $(JDK_IMAGE_DIR)/%64: $(SHARE_JDK_DOC_SRC)/%$(LICENSE_VERSION) $(process-doc-file) else $(JDK_IMAGE_DIR)/%64: $(SHARE_JDK_DOC_SRC)/% $(process-doc-file) endif # JRE files $(JRE_IMAGE_DIR)/%: $(SHARE_JRE_DOC_SRC)/% $(process-doc-file) # Add $(TEXT_SUFFIX) suffix ifdef TEXT_SUFFIX $(JRE_IMAGE_DIR)/%$(TEXT_SUFFIX): $(SHARE_JRE_DOC_SRC)/% $(process-doc-file) endif # Removes LICENSE_VERSION or not ifdef LICENSE_VERSION $(JRE_IMAGE_DIR)/%: $(SHARE_JRE_DOC_SRC)/%$(LICENSE_VERSION) $(process-doc-file) $(JRE_IMAGE_DIR)/%64: $(SHARE_JRE_DOC_SRC)/%$(LICENSE_VERSION) $(process-doc-file) else $(JRE_IMAGE_DIR)/%64: $(SHARE_JRE_DOC_SRC)/% $(process-doc-file) endif # Differences class $(TEMPDIR)/DirDiff/DirDiff.class: $(J2SE_TOPDIR)/make/tools/DirDiff/DirDiff.java $(prep-target) $(JAVAC) -d $(@D) $< @$(java-vm-cleanup) ###################################################### # List of directories in classes directory that should NOT be in rt.jar ###################################################### NOT_RT_JAR_LIST = $(ABS_TEMPDIR)/not_rt_jar.list $(NOT_RT_JAR_LIST): FRC $(prep-target) $(ECHO) "#\n" >> $@ $(ECHO) "# List of subdirectories not in include in rt.jar" >> $@ $(ECHO) "# Directories must contain trailing '/'." >> $@ $(ECHO) "com/sun/javadoc/" >> $@ $(ECHO) "com/sun/jdi/" >> $@ $(ECHO) "com/sun/jarsigner/" >> $@ $(ECHO) "com/sun/mirror/" >> $@ $(ECHO) "com/sun/source/" >> $@ $(ECHO) "com/sun/istack/internal/tools/" >> $@ $(ECHO) "com/sun/istack/internal/ws/" >> $@ $(ECHO) "META-INF/services/com.sun.jdi.connect.Connector" >> $@ $(ECHO) "META-INF/services/com.sun.jdi.connect.spi.TransportService" >> $@ $(ECHO) "META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory" >> $@ $(ECHO) "com/sun/tools/" >> $@ $(ECHO) "sun/jvmstat/" >> $@ $(ECHO) "sun/rmi/rmic/" >> $@ $(ECHO) "sun/tools/asm/" >> $@ $(ECHO) "sun/tools/java/" >> $@ $(ECHO) "sun/tools/javac/" >> $@ $(ECHO) "sun/tools/javap/" >> $@ $(ECHO) "sun/tools/jconsole/" >> $@ $(ECHO) "sun/tools/jps/" >> $@ $(ECHO) "sun/tools/jstat/" >> $@ $(ECHO) "sun/tools/jstatd/" >> $@ $(ECHO) "sun/tools/native2ascii/" >> $@ $(ECHO) "sun/tools/serialver/" >> $@ $(ECHO) "sun/tools/tree/" >> $@ $(ECHO) "sun/tools/util/" >> $@ $(ECHO) "sun/security/tools/JarBASE64Encoder.class" >> $@ $(ECHO) "sun/security/tools/JarSigner.class" >> $@ $(ECHO) "sun/security/tools/JarSignerParameters.class" >> $@ $(ECHO) "sun/security/tools/JarSignerResources.class" >> $@ $(ECHO) "sun/security/tools/JarSignerResources_ja.class" >> $@ $(ECHO) "sun/security/tools/JarSignerResources_zh_CN.class" >> $@ $(ECHO) "sun/security/tools/SignatureFile\$$Block.class" >> $@ $(ECHO) "sun/security/tools/SignatureFile.class" >> $@ $(ECHO) "sun/security/tools/TimestampedSigner.class" >> $@ $(ECHO) "sun/security/ssl/" >> $@ $(ECHO) "com/sun/net/ssl/internal/ssl/" >> $@ $(ECHO) "META-INF/services/com.sun.tools.attach.spi.AttachProvider" >> $@ $(ECHO) "com/sun/tools/attach/" >> $@ $(ECHO) "org/relaxng/datatype/" >> $@ $(ECHO) "com/sun/codemodel/" >> $@ $(ECHO) "com/sun/xml/internal/dtdparser/" >> $@ $(ECHO) "com/sun/xml/internal/rngom/" >> $@ $(ECHO) "com/sun/xml/internal/xsom/" >> $@ $(ECHO) "com/sun/tools/script/shell/" >> $@ $(ECHO) "sun/tools/attach/" >> $@ $(ECHO) "sun/tools/jstack/" >> $@ $(ECHO) "sun/tools/jinfo/" >> $@ $(ECHO) "sun/tools/jmap/" >> $@ # File order list for rt.jar # - sun.applet is included, till hotjava stops relying on it. # - sun.tools.jar is included, needs cleanup. # REORDER_TEMPDIR=$(ABS_TEMPDIR)/reorder TOTAL_JAR_FILELIST=$(REORDER_TEMPDIR)/file_list JARFILELISTS_TEMPDIR=$(ABS_TEMPDIR)/jarfilelists RT_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/rt_jar_list RES_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/resources_jar_list $(REORDER_TEMPDIR)/JarReorder.class: $(J2SE_TOPDIR)/make/tools/reorder/JarReorder.java $(prep-target) $(JAVAC) -d $(@D) $< @$(java-vm-cleanup) $(TOTAL_JAR_FILELIST): $(REORDER_TEMPDIR)/JarReorder.class $(NOT_RT_JAR_LIST) $(prep-target) $(RM) $@.temp $(CD) $(CLASSBINDIR) ; \ $(ABS_JAVA) -classpath $(REORDER_TEMPDIR) JarReorder \ -o $@.temp $(ABS_LIBDIR)/classlist $(NOT_RT_JAR_LIST) . $(MV) $@.temp $@ @$(CD) $(CLASSBINDIR); $(java-vm-cleanup) # Create JarSplit.class $(JARFILELISTS_TEMPDIR)/JarSplit.class: $(J2SE_TOPDIR)/make/tools/jarsplit/JarSplit.java $(prep-target) $(JAVAC) -d $(@D) $< @$(java-vm-cleanup) # Create the rt.jar file list & non-class files list MakeJarFileList: $(TOTAL_JAR_FILELIST) $(JARFILELISTS_TEMPDIR)/JarSplit.class @$(RM) $(RT_JAR_FILELIST) $(RES_JAR_FILELIST) $(ABS_JAVA) -classpath $(JARFILELISTS_TEMPDIR) JarSplit $(TOTAL_JAR_FILELIST) \ -o $(RT_JAR_FILELIST) $(RES_JAR_FILELIST) @$(java-vm-cleanup) # Create the manifest file. JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/manifest.tmp $(JAR_MANIFEST_FILE): $(prep-target) ( $(SED) "s/@@RELEASE@@/$(RELEASE)/" $(MAINMANIFEST); $(ECHO); \ $(CAT) $(BEANMANIFEST) ) > $@ # Create resources.jar containing non-class files RESOURCES_JAR=$(ABS_TEMPDIR)/resources-orig.jar $(RESOURCES_JAR): MakeJarFileList $(JAR_MANIFEST_FILE) $(prep-target) $(CD) $(CLASSBINDIR) ; \ $(ABS_JAR) c0mf $(JAR_MANIFEST_FILE) $@ @$(RES_JAR_FILELIST) \ $(JAR_JFLAGS) @$(java-vm-cleanup) # Create jsse.jar containing SunJSSE implementation classes JSSE_JAR=$(ABS_TEMPDIR)/jsse-orig.jar $(JSSE_JAR): $(prep-target) $(CD) $(CLASSBINDIR) ; \ $(ABS_JAR) c0mf $(JAR_MANIFEST_FILE) $@ $(JSSE_CLASSES_DIRS) \ $(JAR_JFLAGS) @$(java-vm-cleanup) # Create sec-bin.zip SEC_FILES_ZIP=$(ABS_TEMPDIR)/sec-bin.zip sec-files:: $(prep-target) $(RM) $(SEC_FILES_ZIP) $(CD) $(ABS_OUTPUTDIR) ; \ $(ZIPEXE) -rq9 $(SEC_FILES_ZIP) $(SEC_FILES_DIRS) @$(java-vm-cleanup) # Create sec-windows-bin.zip SEC_FILES_WIN_ZIP=$(ABS_TEMPDIR)/sec-windows-bin.zip sec-files-win:: ifeq ($(PLATFORM), windows) $(prep-target) $(RM) $(SEC_FILES_WIN_ZIP) $(CD) $(ABS_OUTPUTDIR) ; \ $(ZIPEXE) -rq9 $(SEC_FILES_WIN_ZIP) $(SEC_FILES_WIN_DIRS) @$(java-vm-cleanup) endif # Create JGSS files that contains the native Kerberos library JGSS_WIN32_FILES_ZIP=$(ABS_TEMPDIR)/jgss-windows-i586-bin.zip JGSS_WIN64_FILES_ZIP=$(ABS_TEMPDIR)/jgss-windows-x64-bin.zip jgss-files:: ifeq ($(PLATFORM), windows) $(prep-target) ifeq ($(ARCH_DATA_MODEL), 32) $(RM) $(JGSS_WIN32_FILES_ZIP) $(CD) $(ABS_OUTPUTDIR) ; \ $(ZIPEXE) -rq9 $(JGSS_WIN32_FILES_ZIP) $(JGSS_FILES_DIRS) else $(RM) $(JGSS_WIN64_FILES_ZIP) $(CD) $(ABS_OUTPUTDIR) ; \ $(ZIPEXE) -rq9 $(JGSS_WIN64_FILES_ZIP) $(JGSS_FILES_DIRS) endif @$(java-vm-cleanup) endif # Create rt.jar RT_JAR=$(ABS_TEMPDIR)/rt-orig.jar $(RT_JAR): MakeJarFileList $(JAR_MANIFEST_FILE) $(prep-target) $(CD) $(CLASSBINDIR) ; \ $(ABS_JAR) c0mf $(JAR_MANIFEST_FILE) $@ @$(RT_JAR_FILELIST) \ $(JAR_JFLAGS) @$(CD) $(CLASSBINDIR); $(java-vm-cleanup) # Meta-index construction to make core class loaders lazier META_INDEX_TEMPDIR=$(ABS_TEMPDIR)/meta-index BUILD_META_INDEX=$(META_INDEX_TEMPDIR)/BuildMetaIndex.class $(BUILD_META_INDEX): $(J2SE_TOPDIR)/make/tools/MetaIndex/BuildMetaIndex.java $(prep-target) $(JAVAC) -d $(@D) $< @$(java-vm-cleanup) ###################################################### # JRE Image ###################################################### initial-image-jre-setup: $(RM) -r $(JRE_IMAGE_DIR) $(MKDIR) -p $(JRE_IMAGE_DIR) # 64-bit solaris jre image contains only the 64-bit add-on files. initial-image-jre-sol64:: initial-image-jre-setup \ $(JRE_LICENSES) $(JRE64_LICENSES) @# Use tar instead of cp to preserve the symbolic links for dir in bin lib ; do \ $(CD) $(ABS_OUTPUTDIR); \ $(TAR) cf - `$(FIND) $$dir -name '$(ARCH)' -print` | \ ($(CD) $(JRE_IMAGE_DIR); $(TAR) xf -); \ done @# Remove some files from the jre area for t in $(NOTJRETOOLS) ; do \ $(RM) $(JRE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \ done for l in $(NOTJRELIBS) ; do \ $(RM) $(JRE_IMAGE_DIR)/lib/$$l ; \ done $(RM) `$(FIND) $(JRE_IMAGE_DIR)/lib -name 'orb.idl'` $(RM) `$(FIND) $(JRE_IMAGE_DIR)/lib -name 'ir.idl'` # Construct an initial jre image (initial jdk jre) no trimming or stripping initial-image-jre:: initial-image-jre-setup \ $(JRE_LICENSES) $(JRE_DOCFILES) \ $(RT_JAR) $(RESOURCES_JAR) $(JSSE_JAR) $(BUILD_META_INDEX) @# Copy in bin directory $(CD) $(OUTPUTDIR); $(FIND) bin -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR) @# CTE plugin security change require new empty directory lib/applet $(MKDIR) -p $(JRE_IMAGE_DIR)/lib/applet @# Copy in lib directory $(CD) $(OUTPUTDIR); $(FIND) lib -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR) @# Make sure all directories are read/execute for everyone $(CHMOD) a+rx `$(FIND) $(JRE_IMAGE_DIR) -type d` @# Remove some files from the jre area for t in $(NOTJRETOOLS) ; do \ $(RM) $(JRE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \ done for l in $(NOTJRELIBS) ; do \ $(RM) $(JRE_IMAGE_DIR)/lib/$$l ; \ done @# Remove orb.idl and ir.idl from jre $(FIND) $(JRE_IMAGE_DIR)/lib -name 'orb.idl' -exec $(RM) \{} \; $(FIND) $(JRE_IMAGE_DIR)/lib -name 'ir.idl' -exec $(RM) \{} \; @# Copy in rt.jar & resources.jar file $(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar $(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar $(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar @# Generate meta-index to make boot and extension class loaders lazier $(CD) $(JRE_IMAGE_DIR)/lib; \ $(ABS_JAVA) -classpath $(META_INDEX_TEMPDIR) BuildMetaIndex -o meta-index *.jar @$(CD) $(JRE_IMAGE_DIR)/lib; $(java-vm-cleanup) $(CD) $(JRE_IMAGE_DIR)/lib/ext; \ $(ABS_JAVA) -classpath $(META_INDEX_TEMPDIR) BuildMetaIndex -o meta-index *.jar @$(CD) $(JRE_IMAGE_DIR)/lib/ext; $(java-vm-cleanup) ifeq ($(PLATFORM), windows) @# Remove certain *.lib files $(CD) $(JRE_IMAGE_DIR)/lib; \ $(RM) java.$(LIB_SUFFIX) jvm.$(LIB_SUFFIX) \ hpi.$(LIB_SUFFIX) awt.$(LIB_SUFFIX) jawt.$(LIB_SUFFIX) else # Not windows @# @# UNIX man pages.... @# $(MKDIR) -p $(JRE_IMAGE_DIR)/$(DEST_MAN_PATH) for i in $(JRE_MAN_PAGES); do \ $(CP) $(MANDIR)/$$i $(JRE_IMAGE_DIR)/$(DEST_MAN_PATH); \ done @# @# Add Japanese manpages @# ifeq ($(PLATFORM), linux) for manpage in $(JRE_MAN_PAGES); do \ for encoding in $(JA_TARGET_ENCODINGS); do \ MAN_DEST_PATH=$(JRE_IMAGE_DIR)/man/ja; \ if [ "$${encoding}" != "$(JA_SOURCE_ENCODING)" ]; then \ MAN_DEST_PATH=$${MAN_DEST_PATH}_JP.$${encoding}; \ fi; \ MAN_DEST_PATH=$${MAN_DEST_PATH}/man1; \ $(MKDIR) -p $${MAN_DEST_PATH}; \ $(CAT) $(JA_MANDIR)/ja/$${manpage} \ | $(NATIVE2ASCII) -encoding $(JA_SOURCE_ENCODING) \ | $(NATIVE2ASCII) -reverse -encoding $${encoding} \ > $${MAN_DEST_PATH}/$${manpage}; \ done; \ done $(MV) $(JRE_IMAGE_DIR)/man/ja $(JRE_IMAGE_DIR)/man/ja_JP.$(JA_SOURCE_ENCODING) $(CD) $(JRE_IMAGE_DIR)/man; $(LN) -s ja_JP.$(JA_SOURCE_ENCODING) ja else # not Linux for manpage in $(JRE_MAN_PAGES); do \ for encoding in $(JA_TARGET_ENCODINGS); do \ MAN_DEST_PATH=$(JRE_IMAGE_DIR)/man/ja; \ if [ "$${encoding}" != "$(JA_SOURCE_ENCODING)" ]; then \ MAN_DEST_PATH=$${MAN_DEST_PATH}_JP.$${encoding}; \ fi; \ MAN_DEST_PATH=$${MAN_DEST_PATH}/man1; \ $(MKDIR) -p $${MAN_DEST_PATH}; \ $(CAT) $(JA_MANDIR)/ja/$${manpage} \ | $(NATIVE2ASCII) -encoding $(JA_SOURCE_ENCODING) \ | $(SED) 's/@@VERSION@@/$(jdkversion)/g' \ | $(NATIVE2ASCII) -reverse -encoding $${encoding} \ > $${MAN_DEST_PATH}/$${manpage}; \ done; \ done @$(java-vm-cleanup) endif # Linux 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-image-jre:: ifeq ($(PLATFORM), windows) ifeq ($(ARCH_DATA_MODEL), 32) $(RM) -r $(JRE_IMAGE_DIR)/bin/server endif ifdef NOTJRE_SHARED_LIBS for l in $(NOTJRE_SHARED_LIBS) ; do \ $(RM) $(JRE_IMAGE_DIR)/bin/$$l ; \ done ; endif else # PLATFORM ifdef NOTJRE_SHARED_LIBS for l in $(NOTJRE_SHARED_LIBS) ; do \ $(RM) $(JRE_IMAGE_DIR)/lib/$(LIBARCH)/$$l ; \ done ; endif endif # PLATFORM # Get list of all Elf files in the jre JRE_ELF_LIST=$(ABS_TEMPDIR)/jre-elf-files.list $(JRE_ELF_LIST): ifneq ($(PLATFORM), windows) $(RM) $@ $(FIND) $(JRE_IMAGE_DIR)/lib -type f -name \*.$(LIB_SUFFIX) >> $@ $(FILE) `$(FIND) $(JRE_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-image-jre:: $(JRE_ELF_LIST) ifneq ($(POST_STRIP_PROCESS), ) for f in `$(CAT) $(JRE_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_ELF_LIST)`; do \ $(CHMOD) u+w $${f}; \ $(ECHO) $(POST_MCS_PROCESS) $${f}; \ $(POST_MCS_PROCESS) $${f}; \ $(CHMOD) go-w $${f}; \ done endif $(RM) $(JRE_ELF_LIST) ###################################################### # JDK Image ###################################################### # Note: cpio ($(CPIO)) sometimes leaves directories without rx access. initial-image-jdk-setup: $(RM) -r $(JDK_IMAGE_DIR) $(MKDIR) -p $(JDK_IMAGE_DIR)/jre ($(CD) $(JRE_IMAGE_DIR) && $(FIND) . -depth -print \ | $(CPIO) -pdum $(JDK_IMAGE_DIR)/jre ) $(RM) -rf $(JDK_IMAGE_DIR)/jre/man $(CHMOD) a+rx `$(FIND) $(JDK_IMAGE_DIR) -type d` initial-image-jdk64-bindemos: for dir in bin demo ; do \ $(CD) $(ABS_OUTPUTDIR) && \ $(TAR) cf - `$(FIND) $$dir -name '$(LIBARCH)' -print` | \ ($(CD) $(JDK_IMAGE_DIR) && $(TAR) xf -); \ done # Solaris 64 bit image is special initial-image-jdk-sol64:: initial-image-jdk-setup \ initial-image-jdk64-bindemos \ $(JDK_LICENSES) $(JDK64_LICENSES) # DB files to add ifdef OPENJDK initial-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-image-jdk-db: $(DB_ZIP_LIST) $(MKDIR) -p $(JDK_IMAGE_DIR)/db for d in $(DB_ZIP_LIST); do \ ($(CD) $(JDK_IMAGE_DIR)/db && $(UNZIP) -o $$d); \ done endif # Standard jdk image initial-image-jdk:: initial-image-jdk-setup \ initial-image-jdk-db \ $(JDK_LICENSES) $(JDK_DOCFILES) $(MKDIR) $(JDK_IMAGE_DIR)/lib @# @# Copy in the jars in lib that only belong in the JDK @# for l in $(NOTJRELIBS); do \ if [ -r $(LIBDIR)/$$l ]; then \ $(CP) $(LIBDIR)/$$l $(JDK_IMAGE_DIR)/lib; \ fi; \ done ifeq ($(PLATFORM), windows) @# @# Audio soundbank - Bug# 4236400 @# Windows only: adding audio files to JDK's jre/lib directory. @# ($(CD) $(LIBDIR); $(TAR) cf - \ `$(FIND) audio -depth -print`) | \ ($(CD) $(JDK_IMAGE_DIR)/jre/lib; $(TAR) xf -) @# @# @# lib/ @# $(CP) $(LIBDIR)/$(LIB_PREFIX)jvm.$(LIB_SUFFIX) $(JDK_IMAGE_DIR)/lib $(CP) $(LIBDIR)/$(LIB_PREFIX)jawt.$(LIB_SUFFIX) $(JDK_IMAGE_DIR)/lib @# @# bin/ @# @# copy all EXE files and only certain DLL files from BINDIR $(MKDIR) -p $(JDK_IMAGE_DIR)/bin $(CP) $(BINDIR)/*$(EXE_SUFFIX) $(JDK_IMAGE_DIR)/bin $(CP) $(BINDIR)/jli.$(LIBRARY_SUFFIX) $(JDK_IMAGE_DIR)/bin ifeq ($(ARCH_DATA_MODEL), 32) ifeq ($(COMPILER_VERSION), VS2003) $(CP) $(BINDIR)/msvc*71.$(LIBRARY_SUFFIX) $(JDK_IMAGE_DIR)/bin endif endif else # PLATFORM @# @# bin/ @# ($(CD) $(BINDIR)/..; $(TAR) cf - \ `$(FIND) bin \( -type f -o -type l \) -print `) | \ ($(CD) $(JDK_IMAGE_DIR); $(TAR) xf -) endif # PLATFORM @# @# lib/tools.jar @# $(JAR) c0f $(LIBDIR)/tools.jar $(addprefix \ -C $(CLASSBINDIR) , $(TOOLS)) \ $(JAR_JFLAGS) @$(java-vm-cleanup) $(CP) $(LIBDIR)/tools.jar $(JDK_IMAGE_DIR)/lib/tools.jar @# @# lib/ct.sym @# $(JAVAC) -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) $(JAR) c0f $(LIBDIR)/ct.sym -C $(OUTPUTDIR)/symbols META-INF $(JAR_JFLAGS) @$(java-vm-cleanup) $(CP) $(LIBDIR)/ct.sym $(JDK_IMAGE_DIR)/lib/ct.sym @# @# CORBA supported orb.idl and ir.idl should be copied to lib @# $(CP) $(LIBDIR)/orb.idl $(JDK_IMAGE_DIR)/lib/orb.idl $(CP) $(LIBDIR)/ir.idl $(JDK_IMAGE_DIR)/lib/ir.idl ifeq ($(PLATFORM), linux) @# @# on Linux copy jexec from jre/lib to /lib @# $(CP) $(LIBDIR)/jexec $(JDK_IMAGE_DIR)/lib/jexec endif # PLATFORM @# @# src.zip @# $(MKDIR) -p $(JDK_IMAGE_DIR)/src @# @# The '*-*' pattern in the find command excludes files named with dashes, @# such as the java.nio templates for generated classes @# @# The Linux 'tar' command cannot handle the huge command line argument @# generated by the more efficient solaris/windows method of copying files. @# So for Linux, make use of the -T option (like Solaris' -I option) of @# obtaining the list of files from a file. MKS tar has no such option. ifeq ($(PLATFORM), linux) for d in $(SOURCE_DIRS); do \ $(RM) $(ABS_TEMPDIR)/src-files.list; \ ($(CD) $$d; \ for sd in $(SOURCES) ; do \ if [ -d $$sd ] ; then \ $(FIND) $$sd $(SOURCE_FILES_filter) \ -name '*.java' -print \ >> $(ABS_TEMPDIR)/src-files.list ; \ fi; \ done ; \ ) ; \ if [ -f $(ABS_TEMPDIR)/src-files.list ] ; then \ ($(CD) $$d; $(TAR) cf - -T $(ABS_TEMPDIR)/src-files.list ) \ | ($(CD) $(JDK_IMAGE_DIR)/src; $(TAR) xf -); \ fi; \ done else for d in $(SOURCE_DIRS); do \ $(RM) $(ABS_TEMPDIR)/src-files.list; \ ($(CD) $$d; \ for sd in $(SOURCES) ; do \ if [ -d $$sd ] ; then \ $(FIND) $$sd $(SOURCE_FILES_filter) \ -name '*.java' -print \ >> $(ABS_TEMPDIR)/src-files.list ; \ fi; \ done ; \ ) ; \ if [ -f $(ABS_TEMPDIR)/src-files.list ] ; then \ ($(CD) $$d; $(TAR) cf - `$(CAT) $(ABS_TEMPDIR)/src-files.list`) \ | ($(CD) $(JDK_IMAGE_DIR)/src; $(TAR) xf -); \ fi; \ done endif $(RM) $(ABS_TEMPDIR)/src-files.list $(CHMOD) -R +w $(JDK_IMAGE_DIR)/src $(MKDIR) -p $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/java.c $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/java.h $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/manifest_info.h $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/parse_manifest.c $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/version_comp.c $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/version_comp.h $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/wildcard.h $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/wildcard.c $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/jli_util.h $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/jli_util.c $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/splashscreen_stubs.c $(JDK_IMAGE_DIR)/src/launcher $(CP) $(SHARE_SRC)/bin/splashscreen.h $(JDK_IMAGE_DIR)/src/launcher $(CP) $(PLATFORM_SRC)/bin/java_md.c $(JDK_IMAGE_DIR)/src/launcher $(CP) $(PLATFORM_SRC)/bin/java_md.h $(JDK_IMAGE_DIR)/src/launcher $(CD) $(JDK_IMAGE_DIR)/src; $(ZIPEXE) -qr ../src.zip * $(RM) -r $(JDK_IMAGE_DIR)/src @# @# demo, include @# @# since variables contain relative path names, create a @# temporary jar file and then move it. $(RM) -r $(DEMODIR)/jpda $(MKDIR) -p $(DEMODIR)/jpda $(RM) $(ABS_TEMPDIR)/tmp.jar $(CD) $(JPDA_SHARE_SRC)/classes; \ $(ABS_JAR) cf $(ABS_TEMPDIR)/tmp.jar \ `$(FIND) $(JPDA_DEMO_PKGS) $(SCM_DIRS_prune) \ -o \( -name '*.java' \ -o -name 'README*' \ -o -name '*.html' \ -o -name '*.jj' \) -print` \ $(JAR_JFLAGS) @$(CD) $(JPDA_SHARE_SRC)/classes; $(java-vm-cleanup) $(MV) $(TEMPDIR)/tmp.jar $(DEMODIR)/jpda/examples.jar @# @# $(CP) -r -f $(DEMODIR) $(JDK_IMAGE_DIR) $(CP) -r -f $(SAMPLEDIR) $(JDK_IMAGE_DIR) $(CP) -r $(INCLUDEDIR) $(JDK_IMAGE_DIR) @# @# Swing BeanInfo generation @# $(CD) javax/swing/beaninfo; $(MAKE) swing-1.2-beans ifneq ($(PLATFORM), windows) $(MKDIR) -p $(JDK_IMAGE_DIR)/$(DEST_MAN_PATH) $(CP) $(MANDIR)/*.1 $(JDK_IMAGE_DIR)/$(DEST_MAN_PATH) @# @# Add Japanese manpages for Solaris @# ifeq ($(PLATFORM), linux) for manpage in $(JDK_MAN_PAGES); do \ for encoding in $(JA_TARGET_ENCODINGS); do \ MAN_DEST_PATH=$(JDK_IMAGE_DIR)/man/ja; \ if [ "$${encoding}" != "$(JA_SOURCE_ENCODING)" ]; then \ MAN_DEST_PATH=$${MAN_DEST_PATH}_JP.$${encoding}; \ fi; \ MAN_DEST_PATH=$${MAN_DEST_PATH}/man1; \ $(MKDIR) -p $${MAN_DEST_PATH}; \ $(CAT) $(JA_MANDIR)/ja/$${manpage} \ | $(NATIVE2ASCII) -encoding $(JA_SOURCE_ENCODING) \ | $(NATIVE2ASCII) -reverse -encoding $${encoding} \ > $${MAN_DEST_PATH}/$${manpage}; \ done; \ done $(MV) $(JDK_IMAGE_DIR)/man/ja $(JDK_IMAGE_DIR)/man/ja_JP.$(JA_SOURCE_ENCODING) $(CD) $(JDK_IMAGE_DIR)/man; $(LN) -s ja_JP.$(JA_SOURCE_ENCODING) ja else for manpage in $(JDK_MAN_PAGES); do \ for encoding in $(JA_TARGET_ENCODINGS); do \ MAN_DEST_PATH=$(JDK_IMAGE_DIR)/man/ja; \ if [ "$${encoding}" != "$(JA_SOURCE_ENCODING)" ]; then \ MAN_DEST_PATH=$${MAN_DEST_PATH}_JP.$${encoding}; \ fi; \ MAN_DEST_PATH=$${MAN_DEST_PATH}/man1; \ $(MKDIR) -p $${MAN_DEST_PATH}; \ $(CAT) $(JA_MANDIR)/ja/$${manpage} \ | $(NATIVE2ASCII) -encoding $(JA_SOURCE_ENCODING) \ | $(SED) 's/@@VERSION@@/$(jdkversion)/g' \ | $(NATIVE2ASCII) -reverse -encoding $${encoding} \ > $${MAN_DEST_PATH}/$${manpage}; \ done; \ done endif # PLATFORM endif # PLATFORM @#Copy demo applets $(MKDIR) -p $(JDK_IMAGE_DIR)/demo $(CP) -r -f $(DEMODIR)/applets $(JDK_IMAGE_DIR)/demo # Trim out files we don't want to ship trim-image-jdk:: @# Remove tools that should not be part of SDK. for t in $(NOTJDKTOOLS); do \ $(RM) $(JDK_IMAGE_DIR)/bin/$${t}$(EXE_SUFFIX) \ $(JDK_IMAGE_DIR)/bin/*/native_threads/$${t}$(EXE_SUFFIX); \ done # Get list of Elf files in the jdk JDK_ELF_LIST=$(ABS_TEMPDIR)/jdk-elf-files.list $(JDK_ELF_LIST): ifneq ($(PLATFORM), windows) $(RM) $@ $(FIND) $(JDK_IMAGE_DIR)/jre/lib -type f -name \*.$(LIB_SUFFIX) >> $@ $(FILE) `$(FIND) $(JDK_IMAGE_DIR)/jre/bin -type f -name \*$(EXE_SUFFIX)` \ | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@ file `$(FIND) $(JDK_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-image-jdk:: $(JDK_ELF_LIST) ifneq ($(POST_STRIP_PROCESS), ) for f in `$(CAT) $(JDK_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_ELF_LIST)`; do \ $(CHMOD) u+w $${f}; \ $(ECHO) $(POST_MCS_PROCESS) $${f}; \ $(POST_MCS_PROCESS) $${f}; \ $(CHMOD) go-w $${f}; \ done endif $(RM) $(JDK_ELF_LIST) ################################################################### # Compare JRE image filelist with previous release image filelist ################################################################### previous-jre:: $(RM) -r $(TEMPDIR)/previous_jre $(MKDIR) -p $(TEMPDIR)/previous_jre $(CP) $(PREVIOUS_JRE_BUNDLE) $(TEMPDIR)/previous_jre ifeq ($(PLATFORM), linux) ($(CD) $(TEMPDIR)/previous_jre; \ $(GUNZIP) -dc $(PREVIOUS_JRE_FILE) | \ $(TAR) xf - ) else ($(CD) $(TEMPDIR)/previous_jre; \ $(TAR) xf $(PREVIOUS_JRE_FILE)) endif compare-image-jre:: previous-jre $(TEMPDIR)/DirDiff/DirDiff.class $(JAVA) -classpath $(TEMPDIR)/DirDiff/ DirDiff \ $(TEMPDIR)/previous_jre/jre$(PREVIOUS_JDK_VERSION) \ $(JRE_IMAGE_DIR) | $(SORT) >> $(WARNING_FILE) $(ECHO) >> $(WARNING_FILE) @$(java-vm-cleanup) ################################################################### # Compare JDK image filelist with previous release image filelist ################################################################### previous-jdk:: $(RM) -r $(TEMPDIR)/previous_jdk $(MKDIR) -p $(TEMPDIR)/previous_jdk $(CP) $(PREVIOUS_JDK_BUNDLE) $(TEMPDIR)/previous_jdk ifeq ($(PLATFORM), linux) ($(CD) $(TEMPDIR)/previous_jdk; \ $(GUNZIP) -dc $(PREVIOUS_JDK_FILE) | \ $(TAR) xf - ) else ($(CD) $(TEMPDIR)/previous_jdk; \ $(TAR) xf $(PREVIOUS_JDK_FILE)) endif compare-image-jdk:: previous-jdk $(TEMPDIR)/DirDiff/DirDiff.class $(JAVA) -classpath $(TEMPDIR)/DirDiff/ DirDiff \ $(TEMPDIR)/previous_jdk/jdk$(PREVIOUS_JDK_VERSION) \ $(JDK_IMAGE_DIR) | $(SORT) >> $(WARNING_FILE) $(ECHO) >> $(WARNING_FILE) @$(java-vm-cleanup) ###################################################### # clobber ###################################################### images-clobber:: $(RM) -r $(REORDER_TEMPDIR) $(RM) -r $(JARFILELISTS_TEMPDIR) $(RM) -r $(META_INDEX_TEMPDIR) ifeq ($(ARCH_DATA_MODEL), 32) $(CD) javax/swing/beaninfo; $(MAKE) swingbeans.clobber $(RM) -r $(DEMODIR)/jpda $(RM) -r $(CLASSBINDIR)/META-INF $(RM) $(TEMPDIR)/tmp.jar endif ifeq ($(PLATFORM), linux) $(RM) -r $(OUTPUTDIR)/$(ARCH) endif ifeq ($(PLATFORM), windows) $(RM) $(TEMPDIR)/rebase.input endif $(RM) -r $(JDK_IMAGE_DIR) $(RM) -r $(JDK_DEBUG_IMAGE_DIR) $(RM) -r $(JRE_IMAGE_DIR) compare-image-clobber: $(RM) -r $(TEMPDIR)/DirDiff $(RM) -r $(TEMPDIR)/previous_jre $(RM) -r $(TEMPDIR)/previous_jdk images images-clobber:: @$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."; @$(java-vm-cleanup) .PHONY: images image-jre image-jdk \ initial-image-jre initial-image-jdk \ initial-image-jre-sol64 initial-image-jdk-sol64 \ initial-image-jdk-setup \ initial-image-jdk-db \ initial-image-jdk64-bindemos \ initial-image-jre-setup \ trim-image-jre trim-image-jdk \ process-image-jre process-image-jdk \ compare-image-jre compare-image-jdk \ images-clobber compare-image-clobber # Force rule FRC: