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