make/common/BuildToolJar.gmk

changeset 114
1c130e7b7a2e
parent 1
55540e827aef
child 158
91006f157c46
     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 -

mercurial