jdk/makefiles/CompileJavaClasses.gmk
changeset 13164 72c5d01a857d
parent 12893 483a74a0b295
child 13586 31ba61c73020
equal deleted inserted replaced
13082:9b19b2302c28 13164:72c5d01a857d
    43 		com/sun/tools/example/debug/bdi\
    43 		com/sun/tools/example/debug/bdi\
    44 		com/sun/tools/example/debug/event\
    44 		com/sun/tools/example/debug/event\
    45 		com/sun/tools/example/debug/gui \
    45 		com/sun/tools/example/debug/gui \
    46 		com/oracle/security
    46 		com/oracle/security
    47 
    47 
    48 ifeq ($(PLATFORM)-$(ARCH_DATA_MODEL),windows-64)
    48 ifeq ($(OPENJDK_TARGET_OS)-$(ARCH_DATA_MODEL),windows-64)
    49      EXCLUDES += sun/security/pkcs11
    49      EXCLUDES += sun/security/pkcs11
    50 endif
    50 endif
    51 
    51 
    52 ifdef OPENJDK
    52 ifdef OPENJDK
    53     EXCLUDES+=	sun/dc \
    53     EXCLUDES+=	sun/dc \
    59 ifndef OPENJDK
    59 ifndef OPENJDK
    60    # There exists two versions of this file...
    60    # There exists two versions of this file...
    61    EXFILES := $(JDK_TOPDIR)/src/share/classes/javax/crypto/JarVerifier.java
    61    EXFILES := $(JDK_TOPDIR)/src/share/classes/javax/crypto/JarVerifier.java
    62 endif
    62 endif
    63 
    63 
    64 ifneq ($(PLATFORM),solaris)
    64 ifneq ($(OPENJDK_TARGET_OS),solaris)
    65    # Exclude Solaris nio and two security related files in src/share/classes
    65    # Exclude Solaris nio and two security related files in src/share/classes
    66    EXFILES += SolarisAclFileAttributeView.java \
    66    EXFILES += SolarisAclFileAttributeView.java \
    67 	SolarisFileStore.java \
    67 	SolarisFileStore.java \
    68 	SolarisFileSystem.java \
    68 	SolarisFileSystem.java \
    69 	SolarisFileSystemProvider.java \
    69 	SolarisFileSystemProvider.java \
    70 	SolarisNativeDispatcher.java \
    70 	SolarisNativeDispatcher.java \
    71 	SolarisUserDefinedFileAttributeView.java \
    71 	SolarisUserDefinedFileAttributeView.java \
    72 	SolarisWatchService.java \
    72 	SolarisWatchService.java \
    73 	SolarisAclFileAttributeView.java \
    73 	SolarisAclFileAttributeView.java \
    74 	SolarisFileStore.java \
       
    75 	SolarisFileSystem.java \
       
    76 	SolarisFileSystemProvider.java \
       
    77 	SolarisUserDefinedFileAttributeView.java \
       
    78 	SolarisNativeDispatcher.java \
       
    79 	SolarisWatchService.java \
       
    80 	SolarisLoginModule.java \
    74 	SolarisLoginModule.java \
    81 	SolarisSystem.java \
    75 	SolarisSystem.java \
       
    76 	sun/nio/ch/EventPortSelectorImpl.java \
       
    77 	sun/nio/ch/EventPortSelectorProvider.java \
       
    78 	sun/nio/ch/EventPortWrapper.java \
    82 	sun/tools/attach/SolarisAttachProvider.java \
    79 	sun/tools/attach/SolarisAttachProvider.java \
    83 	sun/tools/attach/SolarisVirtualMachine.java
    80 	sun/tools/attach/SolarisVirtualMachine.java
    84 endif
    81 endif
    85 
    82 
    86 # In the old build, this isn't excluded on macosx, even though it probably
    83 # In the old build, this isn't excluded on macosx, even though it probably
    87 # should be.
    84 # should be.
    88 ifneq ($(PLATFORM),macosx)
    85 ifneq ($(OPENJDK_TARGET_OS),macosx)
    89 	EXFILES+=WrapperGenerator.java
    86 	EXFILES+=WrapperGenerator.java
    90 endif
    87 endif
    91 
    88 
    92 ifneq ($(PLATFORM),windows)
    89 ifneq ($(OPENJDK_TARGET_OS),windows)
    93     # Exclude Window security related files in src/share/classes
    90     # Exclude Window security related files in src/share/classes
    94     EXFILES+=NTLoginModule.java \
    91     EXFILES+=NTLoginModule.java \
    95              NTSystem.java
    92              NTSystem.java
    96 
    93 
    97 endif
    94 endif
    98 
    95 
    99 ifeq ($(PLATFORM),windows)
    96 ifeq ($(OPENJDK_TARGET_OS),windows)
   100     # Don't build GTK L&F on Windows
    97     # Don't build GTK L&F on Windows
   101     EXCLUDES+=	com/sun/java/swing/plaf/gtk
    98     EXCLUDES+=	com/sun/java/swing/plaf/gtk
   102 endif
    99 endif
   103 
   100 
   104 ifneq ($(PLATFORM),linux)
   101 ifneq ($(OPENJDK_TARGET_OS),linux)
   105     EXFILES+=sun/tools/attach/LinuxAttachProvider.java \
   102     EXFILES+=sun/tools/attach/LinuxAttachProvider.java \
   106 	sun/tools/attach/LinuxVirtualMachine.java \
   103 	sun/tools/attach/LinuxVirtualMachine.java \
   107 	sun/nio/fs/LinuxDosFileAttributeView.java \
   104 	sun/nio/fs/LinuxDosFileAttributeView.java \
   108 	sun/nio/fs/LinuxFileStore.java \
   105 	sun/nio/fs/LinuxFileStore.java \
   109 	sun/nio/fs/LinuxFileSystem.java \
   106 	sun/nio/fs/LinuxFileSystem.java \
   111 	sun/nio/fs/LinuxNativeDispatcher.java \
   108 	sun/nio/fs/LinuxNativeDispatcher.java \
   112 	sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
   109 	sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
   113 	sun/nio/fs/LinuxWatchService.java
   110 	sun/nio/fs/LinuxWatchService.java
   114 endif
   111 endif
   115 
   112 
   116 ifneq ($(PLATFORM),macosx)
   113 ifneq ($(OPENJDK_TARGET_OS),macosx)
   117     EXFILES+=sun/nio/fs/BsdFileStore.java \
   114     EXFILES+=sun/nio/fs/BsdFileStore.java \
   118 	     sun/nio/fs/BsdFileSystem.java \
   115 	     sun/nio/fs/BsdFileSystem.java \
   119              sun/nio/fs/BsdFileSystemProvider.java \
   116              sun/nio/fs/BsdFileSystemProvider.java \
   120              sun/nio/fs/BsdNativeDispatcher.java \
   117              sun/nio/fs/BsdNativeDispatcher.java \
   121              sun/tools/attach/BsdAttachProvider.java \
   118              sun/tools/attach/BsdAttachProvider.java \
   135 ifdef OPENJDK
   132 ifdef OPENJDK
   136     EXCLUDES+=sun/java2d/cmm/kcms
   133     EXCLUDES+=sun/java2d/cmm/kcms
   137 endif
   134 endif
   138 
   135 
   139 # Used on windows and macosx
   136 # Used on windows and macosx
   140 ifeq (,$(filter $(PLATFORM), windows macosx))
   137 ifeq (,$(filter $(OPENJDK_TARGET_OS), windows macosx))
   141     EXFILES+=sun/awt/AWTCharset.java
   138     EXFILES+=sun/awt/AWTCharset.java
   142 endif
   139 endif
   143 
   140 
   144 ifneq ($(PLATFORM), macosx)
   141 ifneq ($(OPENJDK_TARGET_OS), macosx)
   145 #
   142 #
   146 # Not in rt.jar on solaris and linux...(windows not checked)
   143 # Not in rt.jar on solaris and linux...(windows not checked)
   147 #     in rt.jar on macosx ??
   144 #     in rt.jar on macosx ??
   148 EXFILES+=sun/awt/X11/ScreenFormat.java \
   145 EXFILES+=sun/awt/X11/ScreenFormat.java \
   149          sun/awt/X11/XArc.java \
   146          sun/awt/X11/XArc.java \
   190 endif
   187 endif
   191 
   188 
   192 # Exclude another implicitly not included file.
   189 # Exclude another implicitly not included file.
   193 EXFILES+=sun/util/locale/AsciiUtil.java
   190 EXFILES+=sun/util/locale/AsciiUtil.java
   194 
   191 
   195 ifeq (,$(filter $(PLATFORM), solaris macosx))
   192 ifeq (,$(filter $(OPENJDK_TARGET_OS), solaris macosx))
   196 #
   193 #
   197 # only solaris and macosx
   194 # only solaris and macosx
   198 #
   195 #
   199     EXFILES+=sun/nio/fs/PollingWatchService.java
   196     EXFILES+=sun/nio/fs/PollingWatchService.java
   200 endif
   197 endif
   203 # Exclude *-linux-arm.java and *-linux-ppc.java from closed.
   200 # Exclude *-linux-arm.java and *-linux-ppc.java from closed.
   204 EXFILES+=-linux-arm.java \
   201 EXFILES+=-linux-arm.java \
   205 	 -linux-ppc.java
   202 	 -linux-ppc.java
   206 
   203 
   207 # TODO: Is this necessary?
   204 # TODO: Is this necessary?
   208 ifeq ($(PLATFORM), windows)
   205 ifeq ($(OPENJDK_TARGET_OS), windows)
   209     EXFILES+=sun/nio/ch/AbstractPollSelectorImpl.java \
   206     EXFILES+=sun/nio/ch/AbstractPollSelectorImpl.java \
   210 	sun/nio/ch/DevPollArrayWrapper.java \
   207 	sun/nio/ch/DevPollArrayWrapper.java \
   211 	sun/nio/ch/DevPollSelectorImpl.java \
   208 	sun/nio/ch/DevPollSelectorImpl.java \
   212         sun/nio/ch/DevPollSelectorProvider.java \
   209         sun/nio/ch/DevPollSelectorProvider.java \
   213 	sun/nio/ch/InheritedChannel.java \
   210 	sun/nio/ch/InheritedChannel.java \
   246 include CopyIntoClasses.gmk
   243 include CopyIntoClasses.gmk
   247 # Now we have COPY_PATTERNS, COPY_FILES and COPY_EXTRA
   244 # Now we have COPY_PATTERNS, COPY_FILES and COPY_EXTRA
   248 
   245 
   249 ifndef OPENJDK
   246 ifndef OPENJDK
   250     CLOSED_SRC_DIRS:=$(JDK_TOPDIR)/src/closed/share/classes \
   247     CLOSED_SRC_DIRS:=$(JDK_TOPDIR)/src/closed/share/classes \
   251 		     $(JDK_TOPDIR)/src/closed/$(LEGACY_HOST_OS_API)/classes
   248 		     $(JDK_TOPDIR)/src/closed/$(LEGACY_OPENJDK_TARGET_OS_API)/classes
   252 endif
   249 endif
   253 
   250 
   254 MACOSX_SRC_DIRS :=
   251 MACOSX_SRC_DIRS :=
   255 ifeq ($(PLATFORM),macosx)
   252 ifeq ($(OPENJDK_TARGET_OS),macosx)
   256      MACOSX_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/classes
   253      MACOSX_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/classes
   257 
   254 
   258      # this files are duplicated in MACOSX_SRC_DIRS
   255      # this files are duplicated in MACOSX_SRC_DIRS
   259      EXFILES+= $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java \
   256      EXFILES+= $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java \
   260                $(JDK_TOPDIR)/src/solaris/classes/sun/java2d/BackBufferCapsProvider.java \
   257                $(JDK_TOPDIR)/src/solaris/classes/sun/java2d/BackBufferCapsProvider.java \
   261                $(JDK_TOPDIR)/src/solaris/classes/java/net/DefaultInterface.java \
   258                $(JDK_TOPDIR)/src/solaris/classes/java/net/DefaultInterface.java \
   262 	       $(JDK_TOPDIR)/src/solaris/classes/java/lang/ClassLoaderHelper.java
   259                $(JDK_TOPDIR)/src/solaris/classes/java/lang/ClassLoaderHelper.java
       
   260 
       
   261      # JObjC.jar contains 1.5 byte-code...so skip it here :-(
       
   262      # MACOSX_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/native/jobjc/src
       
   263      # EXCLUDES+= tests/java/com/apple/jobjc
       
   264 
       
   265      EXCLUDES+= com/apple/jobjc
   263 endif
   266 endif
   264 
   267 
   265 # The exception handling of swing beaninfo
   268 # The exception handling of swing beaninfo
   266 # These resources violates the convention of having code and resources together under
   269 # These resources violates the convention of having code and resources together under
   267 # $(JDK_TOPDIR)/src/.../classes directories
   270 # $(JDK_TOPDIR)/src/.../classes directories
   270 	$(CP) $< $@
   273 	$(CP) $< $@
   271 
   274 
   272 $(eval $(call SetupJavaCompilation,BUILD_JDK,\
   275 $(eval $(call SetupJavaCompilation,BUILD_JDK,\
   273                 SETUP:=GENERATE_JDKBYTECODE,\
   276                 SETUP:=GENERATE_JDKBYTECODE,\
   274 		SRC:=$(JDK_TOPDIR)/src/share/classes \
   277 		SRC:=$(JDK_TOPDIR)/src/share/classes \
   275 		     $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes \
   278 		     $(JDK_TOPDIR)/src/$(LEGACY_OPENJDK_TARGET_OS_API)/classes \
   276 		     $(MACOSX_SRC_DIRS) \
   279 		     $(MACOSX_SRC_DIRS) \
   277 		     $(JDK_OUTPUTDIR)/gensrc \
   280 		     $(JDK_OUTPUTDIR)/gensrc \
   278 		     $(JDK_OUTPUTDIR)/gensrc_swing/javax/swing/beaninfo \
   281 		     $(JDK_OUTPUTDIR)/gensrc_swing/javax/swing/beaninfo \
   279 		     $(CLOSED_SRC_DIRS),\
   282 		     $(CLOSED_SRC_DIRS),\
   280 		EXCLUDES:=$(EXCLUDES),\
   283 		EXCLUDES:=$(EXCLUDES),\
   295 			 sun.nio.ch.IOStatus
   298 			 sun.nio.ch.IOStatus
   296 
   299 
   297 JDK_BASE_HEADER_JAVA_FILES:=$(patsubst %,$(JDK_TOPDIR)/src/share/classes/%.java,\
   300 JDK_BASE_HEADER_JAVA_FILES:=$(patsubst %,$(JDK_TOPDIR)/src/share/classes/%.java,\
   298 				$(subst .,/,$(JDK_BASE_HEADER_CLASSES)))
   301 				$(subst .,/,$(JDK_BASE_HEADER_CLASSES)))
   299 
   302 
   300 ifeq ($(PLATFORM),windows)
   303 ifeq ($(OPENJDK_TARGET_OS),windows)
   301     JDK_BASE_HEADER_CLASSES_WINDOWS:=sun.nio.ch.PollArrayWrapper
   304     JDK_BASE_HEADER_CLASSES_WINDOWS:=sun.nio.ch.PollArrayWrapper
   302     JDK_BASE_HEADER_CLASSES+=$(JDK_BASE_HEADER_CLASSES_WINDOWS)
   305     JDK_BASE_HEADER_CLASSES+=$(JDK_BASE_HEADER_CLASSES_WINDOWS)
   303     JDK_BASE_HEADER_JAVA_FILES+=$(patsubst %,$(JDK_TOPDIR)/src/windows/classes/%.java,\
   306     JDK_BASE_HEADER_JAVA_FILES+=$(patsubst %,$(JDK_TOPDIR)/src/windows/classes/%.java,\
   304 				$(subst .,/,$(JDK_BASE_HEADER_CLASSES_WINDOWS)))
   307 				$(subst .,/,$(JDK_BASE_HEADER_CLASSES_WINDOWS)))
   305 endif
   308 endif
   346 	$(MKDIR) -p $(@D)
   349 	$(MKDIR) -p $(@D)
   347 	$(TOUCH) $@
   350 	$(TOUCH) $@
   348 
   351 
   349 ##########################################################################################
   352 ##########################################################################################
   350 
   353 
       
   354 ifeq ($(OPENJDK_TARGET_OS),macosx)
       
   355 #
       
   356 # JObjC.jar is compiled with BOOT_JAVAC which (may) not support the "-h" flag.
       
   357 #   so we first compile classes with BOOT_JAVAC and then with JDK_JAVAC :-(
       
   358 #
       
   359 $(eval $(call SetupJavaCompiler,GENERATE_15BYTECODE,\
       
   360      JAVAC:=$(JAVAC),\
       
   361      FLAGS:=-source 1.5 -target 1.5 -g -bootclasspath $(BOOT_RTJAR) -cp $(JDK_OUTPUTDIR)/../langtools/dist/lib/classes.jar $(DISABLE_WARNINGS),\
       
   362      SERVER_DIR:=$(JAVAC_SERVERS),\
       
   363      SERVER_JVM:=$(SERVER_JAVA),\
       
   364      MODE:=$(JAVAC_USE_MODE),\
       
   365      USE_DEPS:=$(JAVAC_USE_DEPS)))
       
   366 
       
   367 $(eval $(call SetupJavaCompilation,BUILD_JOBJC_JAR,\
       
   368 		SETUP:=GENERATE_15BYTECODE,\
       
   369 		SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/java \
       
   370 		     $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/java \
       
   371 		     $(JDK_OUTPUTDIR)/gensrc, \
       
   372 		INCLUDES := com/apple/jobjc,\
       
   373                 EXCLUDES := tests/java/com/apple/jobjc,\
       
   374 		BIN:=$(JDK_OUTPUTDIR)/jobjc_classes,\
       
   375 		JAR:=$(JDK_OUTPUTDIR)/lib/JObjC.jar, \
       
   376 		JARINDEX := true))
       
   377 
       
   378 $(BUILD_JOBJC_JAR) : $(BUILD_JDK)
       
   379 
       
   380 JARS += $(JDK_OUTPUTDIR)/lib/JObjC.jar
       
   381 
       
   382 $(eval $(call SetupJavaCompilation,BUILD_JOBJC_HEADERS_JAR,\
       
   383 		SETUP:=GENERATE_JDKBYTECODE,\
       
   384 		SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/java \
       
   385 		     $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/java \
       
   386 		     $(JDK_OUTPUTDIR)/gensrc, \
       
   387 		INCLUDES := com/apple/jobjc,\
       
   388                 EXCLUDES := tests/java/com/apple/jobjc,\
       
   389 		BIN:=$(JDK_OUTPUTDIR)/jobjc_classes_headers,\
       
   390 		JAR:=$(JDK_OUTPUTDIR)/jobjc_classes_headers/dummy.jar, \
       
   391 		HEADERS:=$(JDK_OUTPUTDIR)/gensrc_headers))
       
   392 
       
   393 $(BUILD_JOBJC_HEADERS_JAR) : $(BUILD_JDK)
       
   394 
       
   395 JARS += $(JDK_OUTPUTDIR)/jobjc_classes_headers/dummy.jar
       
   396 
       
   397 endif
       
   398 
       
   399 ##########################################################################################
       
   400 
   351 # copy with -a to preserve timestamps so dependencies down the line aren't messed up
   401 # copy with -a to preserve timestamps so dependencies down the line aren't messed up
   352 all: $(BUILD_JDK) $(JARS) $(COPY_EXTRA) $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin \
   402 all: $(BUILD_JDK) $(JARS) $(COPY_EXTRA) $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin \
   353 	$(JDK_OUTPUTDIR)/classes/_the.jdk.base.headers
   403 	$(JDK_OUTPUTDIR)/classes/_the.jdk.base.headers
   354 
   404 
   355 .PHONY: all
   405 .PHONY: all