2
+ − 1
#
+ − 2
# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
+ − 3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ − 4
#
+ − 5
# This code is free software; you can redistribute it and/or modify it
+ − 6
# under the terms of the GNU General Public License version 2 only, as
+ − 7
# published by the Free Software Foundation. Sun designates this
+ − 8
# particular file as subject to the "Classpath" exception as provided
+ − 9
# by Sun in the LICENSE file that accompanied this code.
+ − 10
#
+ − 11
# This code is distributed in the hope that it will be useful, but WITHOUT
+ − 12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 13
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 14
# version 2 for more details (a copy is included in the LICENSE file that
+ − 15
# accompanied this code).
+ − 16
#
+ − 17
# You should have received a copy of the GNU General Public License version
+ − 18
# 2 along with this work; if not, write to the Free Software Foundation,
+ − 19
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ − 20
#
+ − 21
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ − 22
# CA 95054 USA or visit www.sun.com if you need additional information or
+ − 23
# have any questions.
+ − 24
#
+ − 25
+ − 26
# Input: BUILDDIR PACKAGE PKGDIR PROGRAM BUILDTOOL_SOURCE_ROOT BUILDTOOL_MAIN
+ − 27
+ − 28
BUILDTOOL_MAIN_SOURCE_FILE = $(BUILDTOOL_SOURCE_ROOT)/$(BUILDTOOL_MAIN)
+ − 29
BUILDTOOL_MANIFEST_FILE = $(BUILDTOOLCLASSDIR)/$(PROGRAM)_manifest.mf
+ − 30
BUILDTOOL_JAR_FILE = $(BUILDTOOLJARDIR)/$(PROGRAM).jar
+ − 31
BUILDTOOL_ALL_FILES := $(shell $(CD) $(BUILDTOOL_SOURCE_ROOT) \
+ − 32
&& $(FIND) $(PKGDIR) $(SCM_DIRS_prune) -o -type f -print)
+ − 33
BUILTTOOL_MAINCLASS = $(subst /,.,$(BUILDTOOL_MAIN:%.java=%))
+ − 34
+ − 35
all build: $(BUILDTOOL_JAR_FILE) tool_info
+ − 36
+ − 37
$(BUILDTOOL_MANIFEST_FILE): $(BUILDTOOL_MAIN_SOURCE_FILE)
+ − 38
@$(prep-target)
+ − 39
$(ECHO) "Main-Class: $(BUILTTOOL_MAINCLASS)" > $@
+ − 40
+ − 41
$(BUILDTOOL_JAR_FILE): $(BUILDTOOL_MANIFEST_FILE) \
+ − 42
$(BUILDTOOL_ALL_FILES:%=$(BUILDTOOL_SOURCE_ROOT)/%)
+ − 43
@$(prep-target)
+ − 44
@$(MKDIR) -p $(BUILDTOOLCLASSDIR)
+ − 45
$(BOOT_JAVAC_CMD) -d $(BUILDTOOLCLASSDIR) \
+ − 46
-sourcepath $(BUILDTOOL_SOURCE_ROOT) $(BUILDTOOL_MAIN_SOURCE_FILE)
+ − 47
$(BOOT_JAR_CMD) cfm $@ $(BUILDTOOL_MANIFEST_FILE) \
+ − 48
-C $(BUILDTOOLCLASSDIR) $(PKGDIR) \
+ − 49
$(JAR_JFLAGS) || $(RM) $@
+ − 50
@$(java-vm-cleanup)
+ − 51
+ − 52
# Printing out a build tool information line
+ − 53
define printBuildToolSetting
+ − 54
if [ "$2" != "" ] ; then $(PRINTF) "%-25s %s\n" "$1:" "$2"; fi
+ − 55
endef
+ − 56
+ − 57
# Print out the build tool information
+ − 58
tool_info:
+ − 59
@$(ECHO) "========================================================="
+ − 60
@$(call printBuildToolSetting,BUILDTOOL,$(PROGRAM))
+ − 61
@$(call printBuildToolSetting,PACKAGE,$(PACKAGE))
+ − 62
@$(call printBuildToolSetting,BUILDTOOL_SOURCE_ROOT,$(BUILDTOOL_SOURCE_ROOT))
+ − 63
@$(call printBuildToolSetting,BUILTTOOL_MAINCLASS,$(BUILTTOOL_MAINCLASS))
+ − 64
@$(call printBuildToolSetting,BUILDTOOL_JAR_FILE,$(BUILDTOOL_JAR_FILE))
+ − 65
@$(ECHO) "========================================================="
+ − 66
+ − 67
clean clobber::
+ − 68
$(RM) -r $(BUILDTOOLCLASSDIR)/$(PKGDIR)
+ − 69
$(RM) $(BUILDTOOL_MANIFEST_FILE)
+ − 70
$(RM) $(BUILDTOOL_JAR_FILE)
+ − 71