CompileJavaModules.gmk revision 1236:bebfcf0b68ea
192195Sjake# 292195Sjake# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 392195Sjake# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 492195Sjake# 592195Sjake# This code is free software; you can redistribute it and/or modify it 692195Sjake# under the terms of the GNU General Public License version 2 only, as 792195Sjake# published by the Free Software Foundation. Oracle designates this 892195Sjake# particular file as subject to the "Classpath" exception as provided 992195Sjake# by Oracle in the LICENSE file that accompanied this code. 1092195Sjake# 1192195Sjake# This code is distributed in the hope that it will be useful, but WITHOUT 1292195Sjake# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1392195Sjake# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1492195Sjake# version 2 for more details (a copy is included in the LICENSE file that 1592195Sjake# accompanied this code). 1692195Sjake# 1792195Sjake# You should have received a copy of the GNU General Public License version 1892195Sjake# 2 along with this work; if not, write to the Free Software Foundation, 1992195Sjake# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2092195Sjake# 2192195Sjake# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2292195Sjake# or visit www.oracle.com if you need additional information or have any 2392195Sjake# questions. 2492195Sjake# 2592195Sjake 2692195Sjake# This must be the first rule 2792195Sjakedefault: all 2892195Sjake 2992195Sjakeinclude $(SPEC) 3092195Sjakeinclude MakeBase.gmk 3192195Sjakeinclude Modules.gmk 3292195Sjakeinclude JavaCompilation.gmk 3392195Sjakeinclude SetupJavaCompilers.gmk 3492195Sjake 3592195Sjake# Hook to include the corresponding custom file, if present. 3692195Sjake$(eval $(call IncludeCustomExtension, , CompileJavaModules.gmk)) 3792195Sjake 3892195Sjake################################################################################ 3992195Sjake# Module specific build settings 40172708Smarius 41172708Smariusjava.activation_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS 42172708Smarius 4398724Sjake################################################################################ 4498724Sjake 4598724Sjakejava.base_COPY := .icu .dat .spp content-types.properties hijrah-config-islamic-umalqura.properties 4692195Sjakejava.base_CLEAN := intrinsic.properties 4792195Sjake 4892195Sjakejava.base_EXCLUDES += java/lang/doc-files 4992195Sjake 5092195Sjake# Exclude BreakIterator classes that are just used in compile process to generate 5192195Sjake# data files and shouldn't go in the product 5292195Sjakejava.base_EXCLUDE_FILES += sun/text/resources/BreakIteratorRules.java 5392195Sjake 5492195Sjakeifeq ($(OPENJDK_TARGET_OS), macosx) 5592195Sjake JAVA_BASE_UNIX_DIR := $(JDK_TOPDIR)/src/java.base/unix/classes 5692195Sjake # TODO: make JavaCompilation handle overrides automatically instead of excluding here 5792195Sjake # These files are overridden in macosx 5892195Sjake java.base_EXCLUDE_FILES += \ 5992195Sjake $(JAVA_BASE_UNIX_DIR)/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java \ 6092195Sjake $(JAVA_BASE_UNIX_DIR)/java/net/DefaultInterface.java \ 6192195Sjake $(JAVA_BASE_UNIX_DIR)/java/lang/ClassLoaderHelper.java \ 6292195Sjake $(JAVA_BASE_UNIX_DIR)/sun/nio/ch/DefaultSelectorProvider.java \ 6392195Sjake # 6492195Sjake # This is just skipped on macosx 6592195Sjake java.base_EXCLUDE_FILES += $(JAVA_BASE_UNIX_DIR)/sun/nio/fs/GnomeFileTypeDetector.java 6692195Sjakeendif 6792195Sjake 6892195Sjakeifneq ($(OPENJDK_TARGET_OS), solaris) 6992195Sjake java.base_EXCLUDE_FILES += \ 7092195Sjake SolarisLoginModule.java \ 7192195Sjake SolarisSystem.java \ 7292195Sjake # 7392195Sjakeendif 7492195Sjake 7592195Sjakeifeq ($(filter $(OPENJDK_TARGET_OS), solaris macosx aix), ) 7692195Sjake # 77172708Smarius # only solaris, macosx and aix 7892195Sjake # 7992195Sjake java.base_EXCLUDE_FILES += sun/nio/fs/PollingWatchService.java 8092195Sjakeendif 8192195Sjake 8292195Sjakeifeq ($(OPENJDK_TARGET_OS), windows) 8392195Sjake java.base_EXCLUDE_FILES += \ 8492195Sjake sun/nio/ch/AbstractPollSelectorImpl.java \ 8592195Sjake sun/nio/ch/PollSelectorProvider.java \ 8692195Sjake sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \ 8792195Sjake # 8892195Sjakeendif 8992195Sjake 9092195Sjake################################################################################ 9192195Sjake 9292195Sjakejava.desktop_COPY := .gif .png .wav .txt .xml .css flavormap.properties .pf 9392195Sjakejava.desktop_CLEAN := iio-plugin.properties 9492195Sjake 9592195Sjakejava.desktop_EXCLUDES += \ 9692195Sjake java/awt/doc-files \ 9792195Sjake javax/swing/doc-files \ 9892195Sjake javax/swing/text/doc-files \ 9992195Sjake javax/swing/plaf/synth/doc-files \ 10092195Sjake javax/swing/undo/doc-files \ 10192195Sjake sun/awt/X11/doc-files \ 10292195Sjake # 10392195Sjake 10492195Sjake# The exception handling of swing beaninfo 10592195Sjake# These resources violates the convention of having code and resources together under 10692195Sjake# $(JDK_TOPDIR)/src/.../classes directories 10792195Sjake$(eval $(call SetupCopyFiles,COPY_BEANINFO, \ 10892195Sjake SRC := $(JDK_TOPDIR)/make/data/swingbeaninfo/images, \ 10992195Sjake DEST := $(JDK_OUTPUTDIR)/modules/java.desktop/javax/swing/beaninfo/images, \ 11092195Sjake FILES := $(wildcard $(JDK_TOPDIR)/make/data/swingbeaninfo/images/*.gif))) 11192195Sjake 11292195Sjakejava.desktop_COPY_EXTRA += $(COPY_BEANINFO) 11392195Sjake 11492195Sjakejava.desktop_EXCLUDE_FILES += \ 11592195Sjake javax/swing/plaf/nimbus/InternalFrameTitlePanePainter.java \ 11692195Sjake javax/swing/plaf/nimbus/OptionPaneMessageAreaPainter.java \ 11792195Sjake javax/swing/plaf/nimbus/ScrollBarPainter.java \ 11892195Sjake javax/swing/plaf/nimbus/SliderPainter.java \ 11992195Sjake javax/swing/plaf/nimbus/SpinnerPainter.java \ 12092195Sjake javax/swing/plaf/nimbus/SplitPanePainter.java \ 12192195Sjake javax/swing/plaf/nimbus/TabbedPanePainter.java \ 12292195Sjake sun/awt/resources/security-icon-bw16.png \ 12392195Sjake sun/awt/resources/security-icon-bw24.png \ 12492195Sjake sun/awt/resources/security-icon-bw32.png \ 12592195Sjake sun/awt/resources/security-icon-bw48.png \ 12692195Sjake sun/awt/resources/security-icon-interim16.png \ 12792195Sjake sun/awt/resources/security-icon-interim24.png \ 12892195Sjake sun/awt/resources/security-icon-interim32.png \ 12992195Sjake sun/awt/resources/security-icon-interim48.png \ 13092195Sjake sun/awt/resources/security-icon-yellow16.png \ 13192195Sjake sun/awt/resources/security-icon-yellow24.png \ 13292195Sjake sun/awt/resources/security-icon-yellow32.png \ 13392195Sjake sun/awt/resources/security-icon-yellow48.png \ 13492195Sjake sun/awt/X11/java-icon16.png \ 13592195Sjake sun/awt/X11/java-icon24.png \ 13692195Sjake sun/awt/X11/java-icon32.png \ 13792195Sjake sun/awt/X11/java-icon48.png \ 13892195Sjake .template \ 13992195Sjake # 14092195Sjake 14192195Sjakeifeq ($(OPENJDK_TARGET_OS), macosx) 14292195Sjake # exclude all X11 on Mac. 14392195Sjake java.desktop_EXCLUDES += sun/awt/X11 14492195Sjake java.desktop_EXCLUDE_FILES += \ 14592195Sjake $(JDK_TOPDIR)/src/java.desktop/unix/classes/sun/java2d/BackBufferCapsProvider.java \ 146115396Skan # 14792195Sjakeelse 148115396Skan # TBD: figure out how to eliminate this long list 14992195Sjake java.desktop_EXCLUDE_FILES += \ 15092195Sjake sun/awt/X11/ScreenFormat.java \ 15192195Sjake sun/awt/X11/XArc.java \ 15292195Sjake sun/awt/X11/XChar2b.java \ 15392195Sjake sun/awt/X11/XCharStruct.java \ 15492195Sjake sun/awt/X11/XClassHint.java \ 15592195Sjake sun/awt/X11/XComposeStatus.java \ 15692195Sjake sun/awt/X11/XExtCodes.java \ 15792195Sjake sun/awt/X11/XFontProp.java \ 15892195Sjake sun/awt/X11/XFontSetExtents.java \ 15992195Sjake sun/awt/X11/XFontStruct.java \ 16092195Sjake sun/awt/X11/XGCValues.java \ 161172708Smarius sun/awt/X11/XHostAddress.java \ 16292195Sjake sun/awt/X11/XIMCallback.java \ 16392195Sjake sun/awt/X11/XIMHotKeyTrigger.java \ 164219339Smarius sun/awt/X11/XIMHotKeyTriggers.java \ 16592195Sjake sun/awt/X11/XIMPreeditCaretCallbackStruct.java \ 16692195Sjake sun/awt/X11/XIMPreeditDrawCallbackStruct.java \ 167219339Smarius sun/awt/X11/XIMPreeditStateNotifyCallbackStruct.java \ 168219339Smarius sun/awt/X11/XIMStatusDrawCallbackStruct.java \ 16992195Sjake sun/awt/X11/XIMStringConversionCallbackStruct.java \ 170219339Smarius sun/awt/X11/XIMStringConversionText.java \ 171219339Smarius sun/awt/X11/XIMStyles.java \ 172219339Smarius sun/awt/X11/XIMText.java \ 173219339Smarius sun/awt/X11/XIMValuesList.java \ 174219339Smarius sun/awt/X11/XImage.java \ 175219339Smarius sun/awt/X11/XKeyboardControl.java \ 176219339Smarius sun/awt/X11/XKeyboardState.java \ 177219339Smarius sun/awt/X11/XOMCharSetList.java \ 178219339Smarius sun/awt/X11/XOMFontInfo.java \ 179219339Smarius sun/awt/X11/XOMOrientation.java \ 180219339Smarius sun/awt/X11/XPoint.java \ 18192195Sjake sun/awt/X11/XRectangle.java \ 182219339Smarius sun/awt/X11/XSegment.java \ 18392195Sjake sun/awt/X11/XStandardColormap.java \ 18492195Sjake sun/awt/X11/XTextItem.java \ 18592195Sjake sun/awt/X11/XTextItem16.java \ 18692195Sjake sun/awt/X11/XTextProperty.java \ 187219339Smarius sun/awt/X11/XTimeCoord.java \ 188219339Smarius sun/awt/X11/XWindowChanges.java \ 189219339Smarius sun/awt/X11/XdbeSwapInfo.java \ 190219339Smarius sun/awt/X11/XmbTextItem.java \ 191219339Smarius sun/awt/X11/XwcTextItem.java 192219339Smariusendif 193219339Smarius 19492195Sjakeifeq ($(OPENJDK_TARGET_OS), windows) 19592195Sjake java.desktop_EXCLUDES += com/sun/java/swing/plaf/gtk 19692195Sjakeendif 19792195Sjake 19892195Sjakeifdef BUILD_HEADLESS_ONLY 19992195Sjake java.desktop_EXCLUDES += sun/applet 20092195Sjakeendif 20192195Sjake 20292195Sjake# Why is this in the open source tree? 203216695Skibifdef OPENJDK 204153504Smarcel java.desktop_EXCLUDES += sun/dc 20592195Sjakeendif 20692195Sjake 20792195Sjake# Used on windows and macosx 20892195Sjakeifeq ($(filter $(OPENJDK_TARGET_OS), windows macosx), ) 20992195Sjake java.desktop_EXCLUDE_FILES += sun/awt/AWTCharset.java 21092195Sjakeendif 21192195Sjake 21292195Sjake# These files do not appear in the build result of the old build. This 21392195Sjake# is because they are generated sources, but the AUTO_JAVA_FILES won't 21492195Sjake# pick them up since they aren't generated when the source dirs are 21592195Sjake# searched and they aren't referenced by any other classes so they won't 21692195Sjake# be picked up by implicit compilation. On a rebuild, they are picked up 21792195Sjake# and compiled. Exclude them here to produce the same rt.jar as the old 218216695Skib# build does when building just once. 219216695Skibjava.desktop_EXCLUDE_FILES += \ 22092195Sjake javax/swing/plaf/nimbus/InternalFrameTitlePanePainter.java \ 22192195Sjake javax/swing/plaf/nimbus/OptionPaneMessageAreaPainter.java \ 222216695Skib javax/swing/plaf/nimbus/ScrollBarPainter.java \ 22392195Sjake javax/swing/plaf/nimbus/SliderPainter.java \ 22492195Sjake javax/swing/plaf/nimbus/SpinnerPainter.java \ 22592195Sjake javax/swing/plaf/nimbus/SplitPanePainter.java \ 22692195Sjake javax/swing/plaf/nimbus/TabbedPanePainter.java \ 22792195Sjake # 22892195Sjake 22992195Sjakeifeq ($(OPENJDK_TARGET_OS), macosx) 23092195Sjake # These files are duplicated in MACOSX_SRC_DIRS 23192195Sjake java.desktop_EXCLUDE_FILES += \ 23292195Sjake $(JDK_TOPDIR)/src/java.desktop/unix/classes/sun/java2d/BackBufferCapsProvider.java \ 233216695Skib # 234216695Skibendif 235216695Skib 23692195Sjake################################################################################ 23792195Sjake 238219339Smariusjava.sql_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS 239216695Skib 240216695Skib################################################################################ 241216695Skib 242216695Skibjava.sql.rowset_CLEAN_FILES := $(wildcard \ 24392195Sjake $(JDK_TOPDIR)/src/java.sql.rowset/share/classes/com/sun/rowset/*.properties \ 244216695Skib $(JDK_TOPDIR)/src/java.sql.rowset/share/classes/javax/sql/rowset/*.properties) 245216695Skib 24692195Sjake################################################################################ 24792195Sjake# Exclude building of IIOP transport for RMI Connector 24892195Sjake 24992195Sjakeifeq ($(RMICONNECTOR_IIOP), false) 25092195Sjake java.management_EXCLUDES += com/sun/jmx/remote/protocol/iiop 25192195Sjakeendif 25292195Sjake 253216695Skib################################################################################ 25492195Sjake 25592195Sjakejava.rmi_CLEAN_FILES := $(wildcard \ 25692195Sjake $(JDK_TOPDIR)/src/java.rmi/share/classes/sun/rmi/registry/resources/*.properties \ 25792195Sjake $(JDK_TOPDIR)/src/java.rmi/share/classes/sun/rmi/server/resources/*.properties) 25892195Sjake 25992195Sjake################################################################################ 26092195Sjake 26192195Sjakejava.corba_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS 26292195Sjake 263216695Skibjava.corba_COPY := .prp 26492195Sjakejava.corba_CLEAN := .properties 26592195Sjake 26692195Sjakejava.corba_EXCLUDES += \ 26792195Sjake com/sun/corba/se/PortableActivationIDL \ 26898629Sdillon com/sun/tools/corba/se/logutil \ 26992195Sjake # 27098629Sdillonjava.corba_EXCLUDE_FILES += \ 27198629Sdillon com/sun/corba/se/impl/presentation/rmi/JNDIStateFactoryImpl.java \ 27298629Sdillon com/sun/corba/se/spi/presentation/rmi/StubWrapper.java \ 27398629Sdillon com/sun/org/omg/CORBA/IDLTypeOperations.java \ 274171432Skensmith com/sun/org/omg/CORBA/IRObjectOperations.java \ 275208256Srdivacky org/omg/PortableInterceptor/UNKNOWN.java \ 276208256Srdivacky com/sun/tools/corba/se/idl/ResourceBundleUtil.java \ 277171432Skensmith com/sun/corba/se/impl/presentation/rmi/jndi.properties \ 27898629Sdillon # 27992195Sjake 28092195Sjake################################################################################ 28192195Sjake 282216695Skibjava.xml_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS 28398629Sdillonjava.xml_CLEAN := .properties 28492195Sjake 28598629Sdillon################################################################################ 28698629Sdillon 287208256Srdivackyjava.xml.bind_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS 288208256Srdivackyjava.xml.bind_CLEAN := .properties 28998629Sdillon 29092195Sjake################################################################################ 29192195Sjake 29292195Sjakejava.xml.soap_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS 293216695Skibjava.xml.soap_CLEAN := .properties 294216695Skib 29592195Sjake################################################################################ 29692195Sjake 29792195Sjakejava.xml.ws_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS 29892195Sjakejava.xml.ws_COPY := .xml 299153504Smarceljava.xml.ws_CLEAN := .properties 30092195Sjake 30192195Sjake################################################################################ 30292195Sjake 303115396Skanjava.naming_CLEAN := jndiprovider.properties 30492195Sjake 305153504Smarcel################################################################################ 30692195Sjake 30792195Sjakejava.security.saaj_CLEAN := .properties 30892195Sjake 309172708Smarius################################################################################ 31092195Sjake 31192195Sjakejava.xml.crypto_COPY := .dtd .xml 31292195Sjakejava.xml.crypto_CLEAN := .properties 313219339Smarius 31492195Sjake################################################################################ 31592195Sjake 31692195Sjakejdk.charsets_COPY := .dat 317219339Smarius 31892195Sjake################################################################################ 31992195Sjake 32092195Sjakejdk.compiler_COPY := javax.tools.JavaCompilerTool 32192195Sjake 32292195Sjake################################################################################ 32392195Sjake 324172708Smariusjdk.jcmd_COPY := _options 325172708Smarius 32692195Sjake################################################################################ 32792195Sjake 32892195Sjakejdk.javadoc_COPY := .xml .css .js 32992195Sjake 33092195Sjake################################################################################ 331219339Smarius 332219339Smariusjdk.rmic_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS 33392195Sjakejdk.rmic_CLEAN := .properties 33492195Sjake 335219339Smarius################################################################################ 33692195Sjake 33792195Sjake# No SCTP implementation on Mac OS X or AIX. These classes should be excluded. 33892195SjakeSCTP_IMPL_CLASSES = \ 33992195Sjake $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/AssociationChange.java \ 34092195Sjake $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/AssociationImpl.java \ 34192195Sjake $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/PeerAddrChange.java \ 34292195Sjake $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/ResultContainer.java \ 34392195Sjake $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SctpChannelImpl.java \ 34492195Sjake $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SctpMultiChannelImpl.java \ 345219339Smarius $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SctpNet.java \ 34692195Sjake $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SctpNotification.java \ 347216695Skib $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SctpServerChannelImpl.java \ 34892195Sjake $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SendFailed.java \ 34992195Sjake $(JDK_TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/Shutdown.java 35092195Sjake 351219339Smariusifeq ($(OPENJDK_TARGET_OS), macosx) 35292195Sjake jdk.sctp_EXCLUDE_FILES += $(SCTP_IMPL_CLASSES) 35392195Sjakeendif 35492195Sjake 355172708Smariusifeq ($(OPENJDK_TARGET_OS),aix) 356172708Smarius # These files are duplicated in AIX_SRC_DIRS 357172708Smarius jdk.sctp_EXCLUDE_FILES += $(SCTP_IMPL_CLASSES) 35892195Sjakeendif 35992195Sjake 36092195Sjake################################################################################ 36192195Sjake 36292195Sjakejdk.jconsole_COPY := .gif .png 36392195Sjake 36492195Sjakejdk.jconsole_CLEAN_FILES := $(wildcard \ 36592195Sjake $(JDK_TOPDIR)/src/jdk.jconsole/share/classes/sun/tools/jconsole/resources/*.properties) 36692195Sjake 36792195Sjake################################################################################ 36892195Sjake 36992195Sjakejdk.compiler_CLEAN_FILES := $(wildcard \ 37092195Sjake $(patsubst %, $(JDK_TOPDIR)/src/jdk.compiler/share/classes/%/*.properties, \ 37192195Sjake sun/tools/serialver/resources)) 37292195Sjake 37392195Sjake################################################################################ 37492195Sjake 37592195Sjakejdk.jdi_EXCLUDES += \ 37692195Sjake com/sun/tools/example/debug/bdi \ 37792195Sjake com/sun/tools/example/debug/event \ 37892195Sjake com/sun/tools/example/debug/gui \ 37992195Sjake com/sun/jdi/doc-files \ 38092195Sjake # 38192195Sjake 38292195Sjakejdk.jdi_EXCLUDE_FILES += jdi-overview.html 38392195Sjake 38492195Sjake################################################################################ 38592195Sjake 386115396Skanjdk.dev_CLEAN_FILES := $(wildcard \ 38792195Sjake $(patsubst %, $(JDK_TOPDIR)/src/jdk.dev/share/classes/%/*.properties, \ 38892195Sjake com/sun/tools/script/shell)) 38992195Sjake 390115396Skanjdk.dev_COPY := .js oqlhelp.html .txt 39192195Sjake 39292195Sjake################################################################################ 39392195Sjake 39492195Sjakejdk.jvmstat_COPY := aliasmap 39592195Sjake 39692195Sjake################################################################################ 39792195Sjake 39892195Sjakejdk.xml.bind_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS 39992195Sjakejdk.xml.bind_CLEAN := .properties 400107638Skanjdk.xml.bind_COPY := .xsd JAXBContextFactory.java ZeroOneBooleanAdapter.java 40192195Sjake 40292195Sjake################################################################################ 40392195Sjake 40492195Sjakejdk.xml.ws_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS 40592195Sjakejdk.xml.ws_CLEAN := .properties 40692195Sjake 40792195Sjake################################################################################ 40892195Sjake 40992195Sjakesun.charsets_COPY := .dat 41092195Sjake 41192195Sjake################################################################################ 41292195Sjake 41392195Sjakejdk.localedata_COPY := _dict _th 41492195Sjake# Exclude BreakIterator classes that are just used in compile process to generate 41592195Sjake# data files and shouldn't go in the product 41692195Sjakejdk.localedata_EXCLUDE_FILES += sun/text/resources/th/BreakIteratorRules_th.java 41792195Sjake 41892195Sjake################################################################################ 41992195Sjake# Setup the compilation of each module 42092195Sjake# 42192195Sjake# Do not include nashorn src here since it needs to be compiled separately due 42292195Sjake# to nasgen. 42392195Sjake# 42492195Sjake# Order src dirs in order of override with the most important first. Generated 42592195Sjake# source before static source and platform specific source before shared. 42692195Sjake# 427172708Smarius# To use this variable, use $(call ALL_SRC_DIRS,module) with no space. 42892195SjakeGENERATED_SRC_DIRS += \ 42992195Sjake $(JDK_OUTPUTDIR)/gensrc/$1 \ 430216695Skib $(LANGTOOLS_OUTPUTDIR)/gensrc/$1 \ 43192195Sjake $(CORBA_OUTPUTDIR)/gensrc/$1 \ 43292195Sjake $(JDK_OUTPUTDIR)/gensrc_no_srczip/$1 \ 43392195Sjake # 43492195Sjake 43592195SjakeOS_SRC_DIRS += $(JDK_TOPDIR)/src/$1/$(OPENJDK_TARGET_OS)/classes 43692195Sjakeifneq ($(OPENJDK_TARGET_OS), $(OPENJDK_TARGET_OS_TYPE)) 43792195Sjake OS_TYPE_SRC_DIRS += $(JDK_TOPDIR)/src/$1/$(OPENJDK_TARGET_OS_TYPE)/classes 43892195Sjakeendif 43992195Sjake 44092195SjakeSHARE_SRC_DIRS += \ 44192195Sjake $(JDK_TOPDIR)/src/$1/share/classes \ 44292195Sjake $(LANGTOOLS_TOPDIR)/src/$1/share/classes \ 44392195Sjake $(CORBA_TOPDIR)/src/$1/share/classes \ 44492195Sjake $(JAXP_TOPDIR)/src/$1/share/classes \ 44592195Sjake $(JAXWS_TOPDIR)/src/$1/share/classes \ 44692195Sjake # 44792195Sjake 44892195SjakeALL_SRC_DIRS = \ 44992195Sjake $(GENERATED_SRC_DIRS) \ 45092195Sjake $(OS_SRC_DIRS) \ 45192195Sjake $(OS_TYPE_SRC_DIRS) \ 45292195Sjake $(SHARE_SRC_DIRS) \ 45392195Sjake # 45492195Sjake 45592195Sjake# Find all modules with java sources. Filter out nashorn since it needs to be 45692195Sjake# compiled separately. 45792195SjakeALL_JAVA_MODULES := $(filter-out jdk.scripting.nashorn, $(call FindJavaModules)) 45892195SjakeJAVA_MODULES := $(ALL_JAVA_MODULES) 459216695Skib 46092195Sjake# The JDK_USER_DEFINED_FILTER is a poor man's incremental build: by specifying 46192195Sjake# JDK_FILTER at the make command line, only a subset of the JDK java files will 46292195Sjake# be recompiled. If multiple paths are separated by comma, convert that into a 46392195Sjake# space separated list. 46492195SjakeJDK_USER_DEFINED_FILTER := $(strip $(subst $(COMMA),$(SPACE), $(JDK_FILTER))) 46592195Sjake 46692195Sjake# This macro sets up compilation of a module and declares dependencies for it. 46792195Sjake# Param 1 - module name 46892195Sjakedefine SetupModuleCompilation 46992195Sjake # Find the module dependencies by parsing modules.list file 470172708Smarius $1_DEPS := $$(call FindDepsForModule, $1) 47192195Sjake 47292195Sjake $1_CLASSPATH := $$(addprefix $(JDK_OUTPUTDIR)/modules/,$$($1_DEPS)) 473216695Skib # When crypto classes are prebuilt, need to look for classes already in 474103315Stmm # output dir. 475103315Stmm ifneq ($(BUILD_CRYPTO), true) 47692195Sjake $1_CLASSPATH += $(JDK_OUTPUTDIR)/modules/$1 477107071Stmm endif 47892195Sjake ifeq ($1, jdk.hotspot.agent) 47992195Sjake ## The source of this module is compiled elsewhere, hotspot, and imported. 48092195Sjake ## Service types are required in the classpath when compiing module-info 48192195Sjake $1_CLASSPATH := $$($1_CLASSPATH) $$(addprefix $(JDK_OUTPUTDIR)/modules/,jdk.hotspot.agent) 48292195Sjake endif 48392195Sjake $1_CLASSPATH := $$(subst $$(SPACE),$$(PATH_SEP),$$($1_CLASSPATH)) 484107071Stmm $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)" 485219339Smarius 48692195Sjake $$(eval $$(call SetupJavaCompilation,$1, \ 487107071Stmm SETUP := $$(if $$($1_SETUP), $$($1_SETUP), GENERATE_JDKBYTECODE), \ 48892195Sjake SRC := $$(wildcard $$(call ALL_SRC_DIRS,$1)), \ 489153504Smarcel INCLUDES:=$(JDK_USER_DEFINED_FILTER),\ 49092195Sjake BIN := $(JDK_OUTPUTDIR)/modules/$1, \ 491107071Stmm HEADERS := $(JDK_OUTPUTDIR)/gensrc_headers/$1, \ 492107071Stmm ADD_JAVAC_FLAGS := $$($1_JAVAC_FLAGS))) 493107071Stmm 494107071Stmm $1: $$($1) $$($1_COPY_EXTRA) 495107071Stmm 49692195Sjake # Declare dependencies between java compilation of different modules. 497107071Stmm # Since not all modules have been declared yet, or might be declared 49892195Sjake # in different invocations of this file, use the macro to find the 499107071Stmm # correct target file to depend on. 500107071Stmm # Only the javac compilation actually depends on other modules so limit 50192195Sjake # dependency declaration to that by using the *_COMPILE_TARGET variable. 50292195Sjake $$($1_COMPILE_TARGETS): $$(foreach d,$$($1_DEPS), \ 50392195Sjake $$(call SetupJavaCompilationCompileTarget, $$d, $(JDK_OUTPUTDIR)/modules/$$d)) 50492195Sjakeendef 50592195Sjake 50692195Sjake# Setup compilation for each module 50792195Sjake$(foreach m,$(JAVA_MODULES),$(eval $(call SetupModuleCompilation,$m))) 508107071Stmm 509107071Stmm################################################################################ 510107071Stmm# Copy zh_HK properties files from zh_TW 511107071Stmm 51292195Sjake$(JDK_OUTPUTDIR)/modules/%_zh_HK.properties: $(JDK_OUTPUTDIR)/modules/%_zh_TW.properties 513107071Stmm $(install-file) 514107071Stmm 515107071Stmmdefine CreateHkTargets 51692195Sjake $(patsubst $(JDK_TOPDIR)/src/%, $(JDK_OUTPUTDIR)/modules/%, \ 517153504Smarcel $(subst /share/classes,, \ 518107071Stmm $(subst _zh_TW,_zh_HK, $(filter %_zh_TW.properties, $1)))) 519107071Stmmendef 520115396Skan 521107071Stmmjava.sql.rowset: $(call CreateHkTargets, $(java.sql.rowset_CLEAN_FILES)) 522107071Stmmjava.rmi: $(call CreateHkTargets, $(java.rmi_CLEAN_FILES)) 523107071Stmm 524107071Stmmall: $(JAVA_MODULES) 525107071Stmm 526107071Stmm.PHONY: all $(JAVA_MODULES) 527107071Stmm