jdk/makefiles/common/Rules.gmk
changeset 13164 72c5d01a857d
parent 13082 9b19b2302c28
child 13167 efec101d7d87
--- a/jdk/makefiles/common/Rules.gmk	Wed Jul 05 18:14:56 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,357 +0,0 @@
-#
-# Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-#
-#
-# Rules shared by all Java makefiles.
-#
-# Used to apply to source file $<, checks code conventions, issues warnings.
-define check-conventions
-  if [ "$(CONVENTION_WATCH)" = "true" ] ; then \
-    if [ "`$(CAT) -n -v -t $< | $(EGREP) -v '\@\(\#\)' | $(EGREP) '\^[MLI]'`" != "" ] ; then \
-      $(ECHO) "WARNING: File contains tabs, ^M, or ^L characters: $<"; \
-      if [ "$(CONVENTION_DETAILS)" = "true" ] ; then \
-        $(CAT) -n -v -t $< | $(EGREP) -v '\@\(\#\)' | $(EGREP) '\^[MLI]' ; \
-      fi; \
-    fi; \
-  fi
-endef
-
-# Make sure the default rule is all
-rules_default_rule: all
-
-#
-# Directory set up.  (Needed by deploy workspace)
-# 
-$(CLASSDESTDIR) $(CLASSHDRDIR) $(OBJDIR) $(OUTPUTDIR) $(BINDIR) $(LIBDIR) $(LIBDIR)/$(LIBARCH) $(TEMPDIR) $(EXTDIR):
-	$(MKDIR) -p $@ 
-
-#
-# All source tree areas for java/properties files (a few may be closed)
-#
-ifeq ($(PLATFORM), macosx)
-  ifdef OPENJDK
-    ALL_CLASSES_SRC = $(call JavaSrcDirList,,classes)
-  else
-    ALL_CLASSES_SRC = \
-	  $(CLOSED_SHARE_SRC)/classes $(CLOSED_PLATFORM_SRC)/classes \
-	  $(call JavaSrcDirList,,classes)
-  endif
-else
-  ifdef OPENJDK
-    ALL_CLASSES_SRC = $(SHARE_SRC)/classes $(PLATFORM_SRC)/classes
-  else
-    ALL_CLASSES_SRC = \
-	  $(CLOSED_SHARE_SRC)/classes $(CLOSED_PLATFORM_SRC)/classes \
-	  $(SHARE_SRC)/classes $(PLATFORM_SRC)/classes
-  endif
-endif
-
-#
-# If AUTO_FILES_PROPERTIES_DIRS used, automatically find properties files
-#
-ifdef AUTO_FILES_PROPERTIES_DIRS
-  AUTO_FILES_PROPERTIES_FILTERS1  = $(SCM_DIRs) ',*'
-  AUTO_FILES_PROPERTIES_FILTERS1 += $(AUTO_PROPERTIES_PRUNE)
-  FILES_properties_find_filters1 = $(AUTO_FILES_PROPERTIES_FILTERS1:%=-name % -prune -o)
-  FILES_properties_auto1 := \
-     $(shell \
-        for dir in $(ALL_CLASSES_SRC) ; do \
-          if [ -d $$dir ] ; then \
-            ( $(CD) $$dir; \
-              for sdir in $(AUTO_FILES_PROPERTIES_DIRS); do \
-                if [ -d $$sdir ] ; then \
-                  $(FIND) $$sdir $(FILES_properties_find_filters1) \
-                                 -name '*.properties' -print ; \
-                fi ; \
-              done \
-            ); \
-          fi; \
-        done \
-      )
-else
-  FILES_properties_auto1 =
-endif # AUTO_FILES_PROPERTIES_DIRS
-
-# Add any automatically found properties files to the properties file list
-FILES_properties += $(FILES_properties_auto1)
-
-#
-# Get Resources help
-#
-include $(JDK_TOPDIR)/makefiles/common/internal/Resources.gmk
-
-#
-# Compiling .java files.
-#
-
-#
-# Automatically add to FILES_java if AUTO_FILES_JAVA_DIRS is defined
-#
-#    There are two basic types of sources, normal source files and the
-#    generated ones. The Normal sources will be located in:
-#         $(ALL_CLASSES_SRC)
-#    The generated sources, which might show up late to dinner, are at:
-#         $(GENSRCDIR)
-#    and since they could be generated late, we need to be careful that
-#    we look for these sources late and not use the ':=' assignment which
-#    might miss their generation.
-
-ifdef AUTO_FILES_JAVA_DIRS
-  # Filter out these files or directories
-  AUTO_FILES_JAVA_SOURCE_FILTERS1  = $(SCM_DIRs) ',*'
-  AUTO_FILES_JAVA_SOURCE_FILTERS2  = 
-  AUTO_FILES_JAVA_SOURCE_FILTERS1 += $(AUTO_JAVA_PRUNE)
-  AUTO_FILES_JAVA_SOURCE_FILTERS2 += $(AUTO_JAVA_PRUNE)
-
-  # First list is the normal sources that should always be there,
-  #   by using the ':=', which means we do this processing once.
-  FILES_java_find_filters1 = $(AUTO_FILES_JAVA_SOURCE_FILTERS1:%=-name % -prune -o)
-  FILES_java_auto1 := \
-     $(shell \
-        for dir in $(ALL_CLASSES_SRC) ; do \
-          if [ -d $$dir ] ; then \
-            ( $(CD) $$dir; \
-              for sdir in $(AUTO_FILES_JAVA_DIRS); do \
-                if [ -d $$sdir ] ; then \
-                  $(FIND) $$sdir $(FILES_java_find_filters1) \
-                                 -name '*.java' -print ; \
-                fi ; \
-              done \
-            ); \
-          fi; \
-        done \
-      )
-  # Second list is the generated sources that should be rare, but will likely
-  #   show up late and we need to look for them at the last minute, so we
-  #   cannot use the ':=' assigment here. But if this gets expanded multiple
-  #   times, the if tests should make them relatively cheap.
-  FILES_java_find_filters2 = $(AUTO_FILES_JAVA_SOURCE_FILTERS2:%=-name % -prune -o)
-  FILES_java_auto2 = \
-     $(shell \
-        for dir in $(GENSRCDIR); do \
-          if [ -d $$dir ] ; then \
-            ( $(CD) $$dir; \
-              for sdir in $(AUTO_FILES_JAVA_DIRS); do \
-                if [ -d $$sdir ] ; then \
-                  $(FIND) $$sdir $(FILES_java_find_filters2) \
-                                 -name '*.java' -print ; \
-                fi ; \
-              done \
-            ); \
-          fi; \
-        done \
-      )
-else
-  FILES_java_auto1 =
-  FILES_java_auto2 =
-endif
-
-# Add all found java sources to FILES_java macro (if AUTO_FILES_JAVA_DIRS used)
-FILES_java += $(FILES_java_auto1) $(FILES_java_auto2)
-
-# File that will hold java source names that need compiling
-JAVA_SOURCE_LIST=$(TEMPDIR)/.classes.list
-
-# Add a java source to the list
-define add-java-file
-$(ECHO) "$?" >> $(JAVA_SOURCE_LIST)
-$(check-conventions)
-endef
-
-ifdef DEMOS
-$(CLASSDESTDIR)/%.class: $(SOURCEPATH)/%.java
-	$(add-java-file)
-#Redirect zh_HK java files to tmp directory which created from zh_TW
-#$(CLASSDESTDIR)/%_zh_HK.class: $(JDK_L10N_TMP_OUTPUTDIR)/%_zh_HK.java
-#	$(add-java-file)
-else
-
-#
-# Rules for closed files
-#
-# If filenames are duplicated between open/closed workspaces, prefer
-# the closed files.
-#
-# Rule ordering in this Makefile is important: some targets depend
-# on closed files replacing open ones, and thus the closed file rules
-# must be found before the open ones.
-#
-# Don't reorder without consulting teams that depend on this behavior.
-#
-ifndef OPENJDK
-$(CLASSDESTDIR)/%.class: $(CLOSED_PLATFORM_SRC)/classes/%.java
-	$(add-java-file)
-$(CLASSDESTDIR)/%.class: $(CLOSED_SHARE_SRC)/classes/%.java
-	$(add-java-file)
-endif
-
-$(CLASSDESTDIR)/%.class: $(GENSRCDIR)/%.java
-	$(add-java-file)
-
-ifeq ($(PLATFORM), macosx)
-$(CLASSDESTDIR)/%.class: $(JDK_TOPDIR)/src/macosx/classes/%.java
-	$(add-java-file)
-endif
-$(CLASSDESTDIR)/%.class: $(PLATFORM_SRC)/classes/%.java
-	$(add-java-file)
-
-$(CLASSDESTDIR)/%.class: $(SHARE_SRC)/classes/%.java
-	$(add-java-file)
-
-#Redirect zh_HK java files to tmp directory which created from zh_TW
-$(CLASSDESTDIR)/%_zh_HK.class: $(JDK_L10N_TMP_OUTPUTDIR)/%_zh_HK.java
-	$(add-java-file)
-endif
-
-# List of class files needed
-FILES_class = $(FILES_java:%.java=$(CLASSDESTDIR)/%.class)
-
-# Got to include exported files.
-FILES_class += $(FILES_export:%.java=$(CLASSDESTDIR)/%.class)
-
-# Construct list of java sources we need to compile
-source_list_prime:
-	mkdir -p $(TEMPDIR)
-# Note that we slip resources in so that compiled properties files get created:
-$(JAVA_SOURCE_LIST) : source_list_prime resources $(FILES_class)
-	touch $@
-
-.delete.classlist:
-	rm -f $(JAVA_SOURCE_LIST)
-
-# Make sure all newer sources are compiled (in a batch)
-classes : $(CLASSES_INIT) .delete.classlist .compile.classlist
-
-.compile.classlist : $(JAVA_SOURCE_LIST)
-	$(MKDIR) -p $(CLASSDESTDIR)
-	$(RM) $<.filtered
-	$(CAT) $< | $(NAWK) 'length>0' | $(SORT) -u > $<.filtered
-	numfiles=`$(WC) -l < $<.filtered` ; \
-	  if [ $$numfiles -ge 1 ] ; then \
-	    $(ECHO) "# Java sources to be compiled: (listed in file $<)"; \
-	    $(CAT) $<.filtered; \
-	    $(ECHO) "# Running javac: $$numfiles files; in $(CURDIR)"; \
-	    $(ECHO) $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$<.filtered; \
-	    $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$<.filtered && \
-	    $(ECHO) "# javac finished"; \
-	  fi
-	$(java-vm-cleanup)
-
-clobber clean::
-	rm -f $(JAVA_SOURCE_LIST)
-
-ifndef DONT_CLOBBER_CLASSES
-  ifndef PACKAGE
-    DONT_CLOBBER_CLASSES = true
-  else
-    DONT_CLOBBER_CLASSES = false
-  endif
-endif
-
-packages.clean:
-ifeq ($(DONT_CLOBBER_CLASSES),false)
-  ifdef AUTO_FILES_JAVA_DIRS
-	for sdir in $(AUTO_FILES_JAVA_DIRS); do \
-	  echo "rm -f -r $(CLASSDESTDIR)/$$sdir"; \
-	  rm -f -r $(CLASSDESTDIR)/$$sdir; \
-        done
-  else
-	rm -f -r $(CLASSDESTDIR)/$(PKGDIR)
-  endif
-endif
-
-ifdef DEMOS
-classes.clean:
-	rm -f -r $(DEMODST) $(CLASSDESTDIR)
-else
-classes.clean: packages.clean
-	rm -f $(JAVA_SOURCE_LIST)
-endif
-
-#
-# C and C++ make dependencies
-#
-include $(JDK_TOPDIR)/makefiles/common/internal/NativeCompileRules.gmk
-
-#
-# Running Javah to generate stuff into CClassHeaders.
-#
-
-ifdef FILES_export
-
-CLASSES.export  = $(subst /,.,$(FILES_export:%.java=%))
-CLASSES.export += $(subst /,.,$(FILES_export2:%.java=%))
-CLASSES.export += $(subst /,.,$(FILES_export3:%.java=%))
-CLASSES_export  = $(FILES_export:%.java=$(CLASSDESTDIR)/%.class)
-CLASSES_export += $(FILES_export2:%.java=$(CLASSDESTDIR)/%.class)
-CLASSES_export += $(FILES_export3:%.java=$(CLASSDESTDIR)/%.class)
-
-# Fix when deploy workspace makefiles don't depend on this name
-#CLASSHDR_DOTFILE=$(CLASSHDRDIR)/.classheaders
-
-CLASSHDR_DOTFILE=$(OBJDIR)/.class.headers.$(ARCH)
-
-classheaders: classes $(CLASSHDR_DOTFILE)
-
-$(CLASSHDR_DOTFILE): $(CLASSES_export)
-	$(prep-target)
-	echo "# Running javah:"
-	echo $(UNCYGDRIVE) $(JAVAH_CMD) -d $(CLASSHDRDIR)/ \
-		$(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner))
-	$(UNCYGDRIVE) $(JAVAH_CMD) -d $(CLASSHDRDIR)/ \
-		$(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner))
-	$(java-vm-cleanup)
-	touch $@
-
-classheaders.clean:
-	rm -f $(CLASSHDR_DOTFILE)
-	rm -f -r $(CLASSHDRDIR)
-
-else # FILES_export
-
-classheaders: classes
-
-classheaders.clean: 
-
-endif # FILES_export
-
-clean clobber:: classheaders.clean classes.clean .delete.classlist
-
-# 
-# Default dependencies
-#
-
-all: build
-
-build: classheaders
-
-default: all
-
-.PHONY: all build clean clobber \
-        .delete.classlist classes .compile.classlist classes.clean \
-	 classheaders classheaders.clean \
-	 batch_compile
-