1.1 --- a/make/common/BuildToolJar.gmk Tue Sep 01 23:44:41 2009 +0100 1.2 +++ b/make/common/BuildToolJar.gmk Wed Sep 02 09:20:17 2009 -0700 1.3 @@ -1,5 +1,5 @@ 1.4 # 1.5 -# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. 1.6 +# Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. 1.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 # 1.9 # This code is free software; you can redistribute it and/or modify it 1.10 @@ -24,22 +24,29 @@ 1.11 # 1.12 1.13 # Input: BUILDDIR PACKAGE PKGDIR PROGRAM BUILDTOOL_SOURCE_ROOT BUILDTOOL_MAIN 1.14 - 1.15 + 1.16 +# All subdirectories under the package root for the tool (max depth 4) 1.17 +_WC_DIRS = * */* */*/* */*/*/* 1.18 + 1.19 BUILDTOOL_MAIN_SOURCE_FILE = $(BUILDTOOL_SOURCE_ROOT)/$(BUILDTOOL_MAIN) 1.20 BUILDTOOL_MANIFEST_FILE = $(BUILDTOOLCLASSDIR)/$(PROGRAM)_manifest.mf 1.21 BUILDTOOL_JAR_FILE = $(BUILDTOOLJARDIR)/$(PROGRAM).jar 1.22 -BUILDTOOL_ALL_FILES := $(shell $(CD) $(BUILDTOOL_SOURCE_ROOT) \ 1.23 - && $(FIND) $(PKGDIR) $(SCM_DIRS_prune) -o -type f -print) 1.24 -BUILTTOOL_MAINCLASS = $(subst /,.,$(BUILDTOOL_MAIN:%.java=%)) 1.25 +BUILTTOOL_MAINCLASS = $(subst /,.,$(BUILDTOOL_MAIN:%.java=%)) 1.26 1.27 -all build: $(BUILDTOOL_JAR_FILE) tool_info 1.28 +# Wildcard patterns that find all the sources for this build tool 1.29 +BUILDTOOL_WC_PATTERNS = $(BUILDTOOL_SOURCE_ROOT)/$(PKGDIR)/*.java \ 1.30 + $(patsubst %, $(BUILDTOOL_SOURCE_ROOT)/$(PKGDIR)/%/*.java, $(_WC_DIRS)) 1.31 + 1.32 +# Wildcard expansion that finds all the files 1.33 +BUILDTOOL_SRC_FILES := $(wildcard $(BUILDTOOL_WC_PATTERNS)) 1.34 + 1.35 +all build: $(BUILDTOOL_JAR_FILE) 1.36 1.37 $(BUILDTOOL_MANIFEST_FILE): $(BUILDTOOL_MAIN_SOURCE_FILE) 1.38 @$(prep-target) 1.39 $(ECHO) "Main-Class: $(BUILTTOOL_MAINCLASS)" > $@ 1.40 1.41 -$(BUILDTOOL_JAR_FILE): $(BUILDTOOL_MANIFEST_FILE) \ 1.42 - $(BUILDTOOL_ALL_FILES:%=$(BUILDTOOL_SOURCE_ROOT)/%) 1.43 +$(BUILDTOOL_JAR_FILE): $(BUILDTOOL_MANIFEST_FILE) $(BUILDTOOL_SRC_FILES) 1.44 @$(prep-target) 1.45 @$(MKDIR) -p $(BUILDTOOLCLASSDIR) 1.46 $(BOOT_JAVAC_CMD) -d $(BUILDTOOLCLASSDIR) \ 1.47 @@ -49,23 +56,8 @@ 1.48 $(JAR_JFLAGS) || $(RM) $@ 1.49 @$(java-vm-cleanup) 1.50 1.51 -# Printing out a build tool information line 1.52 -define printBuildToolSetting 1.53 -if [ "$2" != "" ] ; then $(PRINTF) "%-25s %s\n" "$1:" "$2"; fi 1.54 -endef 1.55 +clean clobber:: 1.56 + $(RM) -r $(BUILDTOOLCLASSDIR)/$(PKGDIR) \ 1.57 + $(BUILDTOOL_MANIFEST_FILE) \ 1.58 + $(BUILDTOOL_JAR_FILE) 1.59 1.60 -# Print out the build tool information 1.61 -tool_info: 1.62 - @$(ECHO) "=========================================================" 1.63 - @$(call printBuildToolSetting,BUILDTOOL,$(PROGRAM)) 1.64 - @$(call printBuildToolSetting,PACKAGE,$(PACKAGE)) 1.65 - @$(call printBuildToolSetting,BUILDTOOL_SOURCE_ROOT,$(BUILDTOOL_SOURCE_ROOT)) 1.66 - @$(call printBuildToolSetting,BUILTTOOL_MAINCLASS,$(BUILTTOOL_MAINCLASS)) 1.67 - @$(call printBuildToolSetting,BUILDTOOL_JAR_FILE,$(BUILDTOOL_JAR_FILE)) 1.68 - @$(ECHO) "=========================================================" 1.69 - 1.70 -clean clobber:: 1.71 - $(RM) -r $(BUILDTOOLCLASSDIR)/$(PKGDIR) 1.72 - $(RM) $(BUILDTOOL_MANIFEST_FILE) 1.73 - $(RM) $(BUILDTOOL_JAR_FILE) 1.74 -