From b9ea1c81080439bb0946f9bfb9bc1a872110b422 Mon Sep 17 00:00:00 2001 From: Erik Joelsson Date: Thu, 27 Dec 2012 20:18:42 +0100 Subject: [PATCH] 8005540: build-infra: Improve incremental build speed on windows by caching find results Reviewed-by: ohair --- jdk/makefiles/BuildJdk.gmk | 5 +- jdk/makefiles/CompileDemos.gmk | 11 +- jdk/makefiles/CompileLaunchers.gmk | 3 + jdk/makefiles/CompileNativeLibraries.gmk | 3 + jdk/makefiles/CopyIntoClasses.gmk | 2 +- jdk/makefiles/CreateJars.gmk | 9 +- jdk/makefiles/GensrcProperties.gmk | 196 ++++++++++++++--------- jdk/makefiles/GensrcX11Wrappers.gmk | 4 +- jdk/makefiles/Images.gmk | 32 ++-- jdk/makefiles/Tools.gmk | 5 + 10 files changed, 169 insertions(+), 101 deletions(-) diff --git a/jdk/makefiles/BuildJdk.gmk b/jdk/makefiles/BuildJdk.gmk index b5bad77bb38..9fad3741636 100644 --- a/jdk/makefiles/BuildJdk.gmk +++ b/jdk/makefiles/BuildJdk.gmk @@ -39,10 +39,7 @@ include NativeCompilation.gmk # Setup the java compilers for the JDK build. include Setup.gmk -# Setup the build tools. -include Tools.gmk - -import: $(BUILD_TOOLS) import-only +import: import-only import-only: # Import (corba jaxp jaxws langtools hotspot) +$(MAKE) -f Import.gmk diff --git a/jdk/makefiles/CompileDemos.gmk b/jdk/makefiles/CompileDemos.gmk index 949dcab0305..4346e3dee74 100644 --- a/jdk/makefiles/CompileDemos.gmk +++ b/jdk/makefiles/CompileDemos.gmk @@ -33,6 +33,9 @@ include NativeCompilation.gmk # Setup the java compilers for the JDK build. include Setup.gmk +# Prepare the find cache. Only used if running on windows. +$(eval $(call FillCacheFind,$(JDK_TOPDIR)/src)) + # Append demo goals to this variable. BUILD_DEMOS= @@ -185,7 +188,7 @@ ifndef OPENJDK BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%,\ $(JDK_OUTPUTDIR)/demo/nbproject/%,\ - $(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/demo/nbproject/ -type f)) + $(call CacheFind,$(JDK_TOPDIR)/src/closed/share/demo/nbproject)) $(JDK_OUTPUTDIR)/demo/nbproject/% : $(JDK_TOPDIR)/src/closed/share/demo/nbproject/% $(MKDIR) -p $(@D) $(CP) $< $@ @@ -317,7 +320,7 @@ $(eval $(call SetupJVMTIDemo,versionCheck, agent_util)) # The jpda demo (com/sun/tools/example) is oddly enough stored in src/share/classes. # At least, we do not need to compile the jpda demo, just jar/zip up the sources. -JPDA_SOURCES:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example -type f) +JPDA_SOURCES:=$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/tools/example) # The number of files are few enough so that we can use echo safely below to list them. JPDA_FILES:=$(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES)) @@ -363,7 +366,7 @@ BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/management/index.html \ # The netbeans project files are copied into the demo directory. BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/share/demo/nbproject/%,\ $(JDK_OUTPUTDIR)/demo/nbproject/%,\ - $(shell $(FIND) $(JDK_TOPDIR)/src/share/demo/nbproject/ -type f)) + $(call CacheFind,$(JDK_TOPDIR)/src/share/demo/nbproject)) $(JDK_OUTPUTDIR)/demo/nbproject/% : $(JDK_TOPDIR)/src/share/demo/nbproject/% $(MKDIR) -p $(@D) @@ -439,7 +442,7 @@ endif ################################################################################################## ifndef OPENJDK - DB_DEMO_ZIPFILE := $(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/db -name "*demo*.zip") + DB_DEMO_ZIPFILE := $(wildcard $(JDK_TOPDIR)/src/closed/share/db/*demo*.zip) $(JDK_OUTPUTDIR)/demo/_the.db.unzipped: $(DB_DEMO_ZIPFILE) $(MKDIR) -p $(@D) diff --git a/jdk/makefiles/CompileLaunchers.gmk b/jdk/makefiles/CompileLaunchers.gmk index 102a2e7831f..7a635342690 100644 --- a/jdk/makefiles/CompileLaunchers.gmk +++ b/jdk/makefiles/CompileLaunchers.gmk @@ -32,6 +32,9 @@ include NativeCompilation.gmk # Setup the java compilers for the JDK build. include Setup.gmk +# Prepare the find cache. Only used on windows. +$(eval $(call FillCacheFind,$(JDK_TOPDIR)/src/share/bin)) + # Build tools include Tools.gmk diff --git a/jdk/makefiles/CompileNativeLibraries.gmk b/jdk/makefiles/CompileNativeLibraries.gmk index cb2aae5a8f0..f825cb992ae 100644 --- a/jdk/makefiles/CompileNativeLibraries.gmk +++ b/jdk/makefiles/CompileNativeLibraries.gmk @@ -35,6 +35,9 @@ include Setup.gmk # Copy files (can now depend on $(COPY_FILES)) include CopyFiles.gmk +# Prepare the find cache. Only used if running on windows. +$(eval $(call FillCacheFind,$(JDK_TOPDIR)/src)) + # Build tools include Tools.gmk diff --git a/jdk/makefiles/CopyIntoClasses.gmk b/jdk/makefiles/CopyIntoClasses.gmk index b1becd33ecd..d5ec8573110 100644 --- a/jdk/makefiles/CopyIntoClasses.gmk +++ b/jdk/makefiles/CopyIntoClasses.gmk @@ -169,7 +169,7 @@ COPY_FILES += \ # are uncommented and the configuration file is stored in the output META-INF directory. # Make sure the output directory is created. -$(shell $(MKDIR) -p $(JDK_OUTPUTDIR)/classes/META-INF/services) +$(eval $(call MakeDir,$(JDK_OUTPUTDIR)/classes/META-INF/services)) # Find all META-INF/services/* files ALL_META-INF_DIRS_share:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes -type d -a -name META-INF) ALL_META-INF_DIRS_targetapi:=$(shell $(FIND) $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes -type d -a -name META-INF) diff --git a/jdk/makefiles/CreateJars.gmk b/jdk/makefiles/CreateJars.gmk index 2bfbd358af8..fe5ac693ae8 100644 --- a/jdk/makefiles/CreateJars.gmk +++ b/jdk/makefiles/CreateJars.gmk @@ -30,6 +30,9 @@ include Setup.gmk default: all +# Prepare the find cache. Only used if running on windows. +$(eval $(call FillCacheFind,$(JDK_OUTPUTDIR)/classes)) + include Tools.gmk # @@ -275,8 +278,8 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) endif # Find all files in the classes dir to use as dependencies. This could be more fine granular. -ALL_FILES_IN_CLASSES := $(shell $(FIND) $(JDK_OUTPUTDIR)/classes -type f \ - | $(GREP) -v -e '/_the\.*' -e '^_the\.*' -e 'javac_state') +ALL_FILES_IN_CLASSES := $(call not-containing,_the.,$(filter-out %javac_state,\ + $(call CacheFind,$(JDK_OUTPUTDIR)/classes))) RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib/_the.rt.jar_manifest RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib/_the.resources.jar_manifest @@ -819,7 +822,7 @@ $(IMAGES_OUTPUTDIR)/symbols/_the.symbols: $(IMAGES_OUTPUTDIR)/lib/rt.jar $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS) $(TOUCH) $@ -$(shell $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols) +$(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/symbols)) $(eval $(call SetupArchive,BUILD_CT_SYM,$(IMAGES_OUTPUTDIR)/symbols/_the.symbols,\ SRCS:=$(IMAGES_OUTPUTDIR)/symbols,\ INCLUDES:=META-INF/sym,\ diff --git a/jdk/makefiles/GensrcProperties.gmk b/jdk/makefiles/GensrcProperties.gmk index a00f546fdce..00598f4e94c 100644 --- a/jdk/makefiles/GensrcProperties.gmk +++ b/jdk/makefiles/GensrcProperties.gmk @@ -23,6 +23,9 @@ # questions. # +# Prepare the find cache. This is only used on windows. +$(eval $(call FillCacheFind,$(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/windows/classes)) + # All .properties files to be compiled are appended to this variable. ALL_COMPILED_PROPSOURCES:= # All generated .java files from compilation are appended to this variable. @@ -117,44 +120,54 @@ endef #com/apple/laf/resources ifeq ($(OPENJDK_TARGET_OS),macosx) $(eval $(call add_properties_to_compile,COM_APPLE_LAF,\ - $(shell find $(JDK_TOPDIR)/src/macosx/classes/com/apple/laf/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/macosx/classes/com/apple/laf/resources)),\ + ListResourceBundle)) endif #com/sun/accessibility/internal/resources $(eval $(call add_properties_to_compile,COM_SUN_ACCESSIBILITY,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,COM_SUN_ACCESSIBILITY_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #com/sun/imageio/plugins/common $(eval $(call add_properties_to_clean,COM_SUN_IMAGEIO,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/imageio -name "*.properties"))) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/imageio)))) #com/sun/java/swing/plaf/gtk/resources ifneq ($(OPENJDK_TARGET_OS), windows) # Only compile GTK resource bundles on Solaris/Linux $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_GTK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_GTK_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) endif #com/sun/java/swing/plaf/motif/resources $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_MOTIF,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_MOTIF_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #com/sun/java/swing/plaf/windows/resources $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_WINDOWS,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_WINDOWS_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #com/sun/java/util/jar/pack $(eval $(call add_properties_to_clean,JNDI_COSNAMING,\ $(JDK_TOPDIR)/src/share/classes/com/sun/java/util/jar/pack/intrinsic.properties)) @@ -169,138 +182,171 @@ $(eval $(call add_properties_to_clean,JNDI_COSNAMING,\ #FIXME: The "xmlsecurity*.properties" pattern is not ideal; we might want to find #a better way to select the properties files that are needed. $(eval $(call add_properties_to_clean,XML_SECURITY,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource -name "xmlsecurity*.properties"))) + $(filter $(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity%.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource)))) #com/sun/rowset $(eval $(call add_properties_to_clean,COM_SUN_ROWSET,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/rowset -name "*.properties"))) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/rowset)))) $(eval $(call add_properties_to_clean,COM_SUN_ROWSET_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/rowset -name "*zh_TW.properties"),\ + $(filter %zh_TW.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/rowset)),\ %zh_TW,%zh_HK)) #com/sun/servicetag/resources #com/sun/swing/internal/plaf/basic/resources $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_BASIC,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_BASIC_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #com/sun/swing/internal/plaf/metal/resources $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_METAL,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_METAL_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #com/sun/swing/internal/plaf/synth/resources $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_SYNTH,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_SYNTH_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #com/sun/tools/jdi/resources $(eval $(call add_properties_to_compile,COM_SUN_TOOLS_JDI,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/tools/jdi/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/tools/jdi/resources)),\ + ListResourceBundle)) #com/sun/tools/script/shell #java/util #javax/sql/rowset $(eval $(call add_properties_to_clean,JAVAX_SQL_ROWSET,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/javax/sql/rowset -name "*.properties"))) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/javax/sql/rowset)))) #sun/awt/resources $(eval $(call add_properties_to_compile,SUN_AWT,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/awt/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/awt/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,SUN_AWT_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/awt/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/awt/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #sun/awt/windows/ ifeq ($(OPENJDK_TARGET_OS),windows) $(eval $(call add_properties_to_compile,SUN_AWT,\ - $(shell find $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows -name "awtLocalization*.properties"),\ - ListResourceBundle)) + $(filter $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows/awtLocalization%.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/windows/classes/sun/awt/windows)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,SUN_AWT_HK,\ - $(shell find $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows -name "awtLocalization*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows/awtLocalization%.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/windows/classes/sun/awt/windows)),\ + ListResourceBundle,%zh_TW,%zh_HK)) endif #sun/launcher/resources $(eval $(call add_properties_to_compile,SUN_LAUNCHER,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/launcher/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,SUN_LAUNCHER_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/launcher/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #sun/management/resources $(eval $(call add_properties_to_compile,SUN_MANAGEMENT,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/management/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/management/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,SUN_MANAGEMENT_KH,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/management/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/management/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #sun/print #sun/print/resources $(eval $(call add_properties_to_compile,SUN_PRINT,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/print/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/print/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,SUN_PRINT_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/print/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/print/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #sun/rmi/registry/resources $(eval $(call add_properties_to_clean,SUN_RMI_REGISTRY,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources -name "*.properties"))) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources)))) $(eval $(call add_properties_to_clean,SUN_RMI_REGISTRY_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources -name "*zh_TW.properties"),\ + $(filter %zh_TW.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources)),\ %zh_TW,%zh_HK)) #sun/rmi/rmic/resources $(eval $(call add_properties_to_clean,SUN_RMI_RMIC,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/rmic/resources -name "*.properties"))) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/rmi/rmic/resources)))) #sun/rmi/server/resources $(eval $(call add_properties_to_clean,SUN_RMI_SERVER,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources -name "*.properties"))) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources)))) $(eval $(call add_properties_to_clean,SUN_RMI_SERVER_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources -name "*zh_TW.properties"),\ + $(filter %zh_TW.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources)),\ %zh_TW,%zh_HK)) # sun/tools/jar/resources $(eval $(call add_properties_to_compile,SUN_TOOLS_JAR,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,SUN_TOOLS_JAR_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) #sun/tools/javac/resources # It's unclear if the other localized property files here are supposed to be copied or not # but the old build system didn't copy them. $(eval $(call add_properties_to_clean,SUN_TOOLS_SERIALVER,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/javac/resources -name "javac.properties"))) + $(filter %javac.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/tools/javac/resources)))) #sun/tools/jconsole/resources $(eval $(call add_properties_to_clean,SUN_TOOLS_JCONSOLE,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/resources -name "*.properties"))) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/resources)))) #sun/tools/serialver $(eval $(call add_properties_to_clean,SUN_TOOLS_SERIALVER,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/serialver -name "*.properties"),,,resources)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/tools/serialver)),,,resources)) #sun/util/logging/resources $(eval $(call add_properties_to_compile,SUN_UTIL_LOGGING,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources -name "*.properties"),\ - ListResourceBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources)),\ + ListResourceBundle)) $(eval $(call add_properties_to_compile,SUN_UTIL_LOGGING_HK,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources -name "*.properties"),\ - ListResourceBundle,%zh_TW,%zh_HK)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources)),\ + ListResourceBundle,%zh_TW,%zh_HK)) # sun/util/resources $(eval $(call add_properties_to_compile,SUN_UTIL,\ - $(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/resources -name "*.properties"),\ - sun.util.resources.LocaleNamesBundle)) + $(filter %.properties,\ + $(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/util/resources)),\ + sun.util.resources.LocaleNamesBundle)) # Now setup the rule for the generation of the resource bundles. $(JDK_OUTPUTDIR)/gensrc/_the.compiled_properties : $(ALL_COMPILED_PROPSOURCES) $(BUILD_TOOLS) diff --git a/jdk/makefiles/GensrcX11Wrappers.gmk b/jdk/makefiles/GensrcX11Wrappers.gmk index bad84fc6c69..0d1da2307aa 100644 --- a/jdk/makefiles/GensrcX11Wrappers.gmk +++ b/jdk/makefiles/GensrcX11Wrappers.gmk @@ -54,7 +54,7 @@ endif ########################################################################################## -$(GENSRC_X11WRAPPERS_TMP)/sizer/sizer.%.c : $(GENSRC_SIZER_SRC)/xlibtypes.txt +$(GENSRC_X11WRAPPERS_TMP)/sizer/sizer.%.c : $(GENSRC_SIZER_SRC)/xlibtypes.txt $(BUILD_TOOLS) $(ECHO) "Generating X11 wrapper ($*-bit version)" $(MKDIR) -p $(@D) $(RM) $@ @@ -92,7 +92,7 @@ $(GENSRC_X11WRAPPERS_TMP)/sizer/sizes.64 : $(JDK_TOPDIR)/src/solaris/classes/sun $(CP) $< $@ endif -$(GENSRC_X11WRAPPERS_DST)/_the.generated.x11 : $(foreach S,$(GENSRC_SIZES),$(GENSRC_X11WRAPPERS_TMP)/sizer/$(S)) +$(GENSRC_X11WRAPPERS_DST)/_the.generated.x11 : $(foreach S,$(GENSRC_SIZES),$(GENSRC_X11WRAPPERS_TMP)/sizer/$(S)) $(BUILD_TOOLS) $(RM) $@ $(MKDIR) -p $(@D)/sun/awt/X11 $(TOOL_WRAPPERGENERATOR) $(@D)/sun/awt/X11 $(GENSRC_SIZER_SRC)/xlibtypes.txt "gen" $(GENSRC_X11WRAPPERS_TMP)/sizer/sizes diff --git a/jdk/makefiles/Images.gmk b/jdk/makefiles/Images.gmk index 5a85e6c37f3..eb9ebe95ada 100644 --- a/jdk/makefiles/Images.gmk +++ b/jdk/makefiles/Images.gmk @@ -30,6 +30,15 @@ include Setup.gmk default: images +# Prepare the find cache. Only used if running on windows. +$(eval $(call FillCacheFind,\ + $(wildcard $(JDK_OUTPUTDIR)/bin \ + $(JDK_OUTPUTDIR)/lib \ + $(IMAGES_OUTPUTDIR)/lib \ + $(JDK_OUTPUTDIR)/include \ + $(JDK_OUTPUTDIR)/sample \ + $(JDK_OUTPUTDIR)/demo))) + include Tools.gmk # Note: This double-colon rule is intentional, to support @@ -132,7 +141,7 @@ WINDOWS_JDKJRE_BIN_FILES := \ $(SALIB_NAME) # Find all files in bin dir -ALL_BIN_LIST := $(shell $(FIND) $(JDK_OUTPUTDIR)/bin -type f) +ALL_BIN_LIST := $(call CacheFind,$(JDK_OUTPUTDIR)/bin) # Prevent sjavac from entering the images. ALL_BIN_LIST := $(filter-out %/sjavac,$(ALL_BIN_LIST)) @@ -144,7 +153,7 @@ ifneq ($(OPENJDK_TARGET_OS),windows) else # On windows, the libraries are in the bin dir, only filter out debuginfo files # for executables. "java" is both a library and executable. - ALL_BIN_EXEC_FILES := $(filter-out java.exe,$(notdir $(shell $(FIND) $(JDK_OUTPUTDIR)/bin -type f -name "*.exe"))) + ALL_BIN_EXEC_FILES := $(filter-out java.exe,$(notdir $(filter %.exe,$(ALL_BIN_LIST)))) ALL_BIN_DEBUG_FILTER := $(addprefix %,$(patsubst %.exe,%.debuginfo,$(ALL_BIN_EXEC_FILES)) \ $(patsubst %.exe,%.diz,$(ALL_BIN_EXEC_FILES))) %.pdb ALL_BIN_LIST := $(filter-out $(ALL_BIN_DEBUG_FILTER),$(ALL_BIN_LIST)) @@ -212,13 +221,13 @@ endif # Find all files to copy from $(JDK_OUTPUTDIR)/lib # Jar files are not expected to be here -ALL_JDKOUT_LIB_LIST := $(shell $(FIND) $(JDK_OUTPUTDIR)/lib \( -type f -o -type l \) -a ! \ - \( -name "_the*" -o -name "javac_state " -o -name "*.jar" \) ) +ALL_JDKOUT_LIB_LIST := $(call not-containing,_the.,$(filter-out %.jar,\ + $(call CacheFind,$(JDK_OUTPUTDIR)/lib))) # Find all files to copy from $(IMAGES_OUTPUTDIR)/lib # This is were the jar files are and might not exist if building overlay-images ifneq ($(wildcard $(IMAGES_OUTPUTDIR)/lib),) - ALL_IMAGES_LIB_LIST := $(shell $(FIND) $(IMAGES_OUTPUTDIR)/lib \( -type f -o -type l \) -a ! \ - \( -name "_the*" -o -name "javac_state " \) ) + ALL_IMAGES_LIB_LIST := $(call not-containing,_the.,\ + $(call CacheFind,$(IMAGES_OUTPUTDIR)/lib)) endif # Filter files to copy for each destination @@ -493,13 +502,13 @@ define CreateOverlayDemoRule JDK_OVERLAY_DEMO_TARGETS += $$($1_TARGET) endef -JDK_OVERLAY_DEMO_SOURCES := $(shell $(FIND) $(JDK_OUTPUTDIR)/demo -name "*$(SHARED_LIBRARY_SUFFIX)") +JDK_OVERLAY_DEMO_SOURCES := $(filter %$(SHARED_LIBRARY_SUFFIX),$(call CacheFind,$(JDK_OUTPUTDIR)/demo)) $(foreach lib,$(JDK_OVERLAY_DEMO_SOURCES),$(eval $(call CreateOverlayDemoRule,$(lib)))) ################################################################################ # /sample dir -$(foreach f,$(shell $(FIND) $(JDK_OUTPUTDIR)/sample -type f),\ +$(foreach f,$(call CacheFind,$(JDK_OUTPUTDIR)/sample),\ $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_IMAGE_DIR),$f,JDK_SAMPLE_TARGETS))) ################################################################################ @@ -518,7 +527,7 @@ ifndef OPENJDK $(install-file) JDK_DB_TARGETS := $(patsubst $(JDK_TOPDIR)/src/closed/share/db/%,$(IMAGES_OUTPUTDIR)/_unzip/%.unzipped,\ - $(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/db -name "*.zip" ! -name "*demo*")) \ + $(call not-containing,demo,$(wildcard $(JDK_TOPDIR)/src/closed/share/db/*.zip))) \ $(JDK_IMAGE_DIR)/db/README-JDK.html endif @@ -526,7 +535,7 @@ endif ################################################################################ # /include dir -$(foreach f,$(shell $(FIND) $(JDK_OUTPUTDIR)/include -type f),\ +$(foreach f,$(call CacheFind,$(JDK_OUTPUTDIR)/include),\ $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_IMAGE_DIR),$f,JDK_INCLUDE_TARGETS))) ################################################################################ @@ -625,8 +634,7 @@ $(JDK_IMAGE_DIR)/src.zip: $(IMAGES_OUTPUTDIR)/src.zip ifneq ($(POST_STRIP_CMD),) ifeq ($(OPENJDK_TARGET_OS), windows) - EXEC_LIST_BIN:=$(shell $(FIND) $(JDK_OUTPUTDIR)/bin -type f -name \*.exe \ - -o -name \*.dll | $(EGREP) -v -i "$(MSVCR_DLL)") + EXEC_LIST_BIN:=$(filter-out %$(notdir $(MSVCR_DLL)),$(filter %.exe %.dll,$(ALL_BIN_LIST))) else # Find all executables in JDK_OUTPUTDIR since they exist when this makefile is parsed EXEC_LIST_BIN:=$(shell $(FILE) `$(FIND) $(JDK_OUTPUTDIR)/bin -type f -name \*$(EXE_SUFFIX)` \ diff --git a/jdk/makefiles/Tools.gmk b/jdk/makefiles/Tools.gmk index 545fe3dcb8a..eb3a8ac23d6 100644 --- a/jdk/makefiles/Tools.gmk +++ b/jdk/makefiles/Tools.gmk @@ -23,6 +23,11 @@ # questions. # +# Cache all finds needed for this file. Only used on windows. +$(eval $(call FillCacheFind,$(JDK_TOPDIR)/make/tools \ + $(JDK_TOPDIR)/src/solaris/classes \ + $(JDK_TOPDIR)/makefiles/sun)) + # The exception handling of swing beaninfo which have the own tool directory ifeq (,$(BUILD_TOOLS)) $(eval $(call SetupJavaCompilation,BUILD_TOOLS,\