diff -r 000000000000 -r 55540e827aef make/common/shared/Defs-utils.gmk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make/common/shared/Defs-utils.gmk Sat Dec 01 00:00:00 2007 +0000 @@ -0,0 +1,211 @@ +# +# Copyright 2005-2007 Sun Microsystems, Inc. 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. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# + +# +# Shared variables for standard unix utilties on all platforms. +# +# Assumes Platform.gmk has been included before this file. +# +# These input UTILS_* variables can be defined at anytime, ideally once. +# Unix Commands: Normally /bin/, /usr/bin/. or C:/mksnt/mksnt/ +# UTILS_COMMAND_PATH +# /usr/bin/ +# UTILS_USR_BIN_PATH +# /usr/ccs/bin/ (sccs, m4, lex, yacc, as, ar, strip, mcs) +# UTILS_CCS_BIN_PATH +# Dev Tools: zip, unzip, etc that we may have special versions of +# UTILS_DEVTOOL_PATH +# +# WARNING: This file cannot assume that any of these utilties are available +# to be run via their variable names defined here. +# The paths inside the UTILS_* variables may not be defined yet. +# +# Note: There is no guarantee that all these exist on all platforms. +# Some only make sense for one platform, but are harmless. +# + +ifeq ($(PLATFORM),linux) + UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH) + UTILS_USR_BIN_PATH=$(USRBIN_PATH) + UTILS_CCS_BIN_PATH=$(USRBIN_PATH) + UTILS_DEVTOOL_PATH=$(USRBIN_PATH) +endif + +ifeq ($(PLATFORM),solaris) + UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH) + UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH) + UTILS_CCS_BIN_PATH=$(UNIXCCS_PATH) + UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH) +endif + +ifeq ($(PLATFORM),windows) + UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH) + UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH) + UTILS_CCS_BIN_PATH=$(UNIXCOMMAND_PATH) + UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH) +endif + +# Utilities ant and findbugs +ifndef ANT_HOME + ANT_HOME = $(JDK_DEVTOOLS_DIR)/share/ant/latest +endif +ANT = $(ANT_HOME)/bin/ant +ifndef FINDBUGS_HOME + FINDBUGS_HOME = $(JDK_DEVTOOLS_DIR)/share/findbugs/latest +endif +FINDBUGS = $(FINDBUGS_HOME)/bin/findbugs + +# Utilities +ADB = $(UTILS_COMMAND_PATH)adb +AR = $(UTILS_CCS_BIN_PATH)ar +AS = $(UTILS_CCS_BIN_PATH)as +BASENAME = $(UTILS_COMMAND_PATH)basename +CAT = $(UTILS_COMMAND_PATH)cat +CHMOD = $(UTILS_COMMAND_PATH)chmod +CMP = $(UTILS_USR_BIN_PATH)cmp +COMM = $(UTILS_USR_BIN_PATH)comm +COMPRESS = $(UTILS_USR_BIN_PATH)compress +CP = $(UTILS_COMMAND_PATH)cp +CPIO = $(UTILS_COMMAND_PATH)cpio +CUT = $(UTILS_USR_BIN_PATH)cut +DATE = $(UTILS_COMMAND_PATH)date +DF = $(UTILS_COMMAND_PATH)df +DIFF = $(UTILS_USR_BIN_PATH)diff +DIRNAME = $(UTILS_USR_BIN_PATH)dirname +ECHO = $(UTILS_COMMAND_PATH)echo +EGREP = $(UTILS_COMMAND_PATH)egrep +EXPR = $(UTILS_USR_BIN_PATH)expr +FILE = $(UTILS_USR_BIN_PATH)file +FIND = $(UTILS_USR_BIN_PATH)find +FMT = $(UTILS_COMMAND_PATH)fmt +GDB = $(UTILS_USR_BIN_PATH)gdb +GREP = $(UTILS_COMMAND_PATH)grep +GUNZIP = $(UTILS_COMMAND_PATH)gunzip +HEAD = $(UTILS_USR_BIN_PATH)head +ID = $(UTILS_COMMAND_PATH)id +ISAINFO = $(UTILS_COMMAND_PATH)isainfo +KSH = $(UTILS_COMMAND_PATH)ksh +LD = $(UTILS_CCS_BIN_PATH)ld +LEX = $(UTILS_CCS_BIN_PATH)lex +LN = $(UTILS_COMMAND_PATH)ln +LS = $(UTILS_COMMAND_PATH)ls +MCS = $(UTILS_CCS_BIN_PATH)mcs +M4 = $(UTILS_CCS_BIN_PATH)m4 +MKDIR = $(UTILS_COMMAND_PATH)mkdir +MKSINFO = $(UTILS_COMMAND_PATH)mksinfo +MSGFMT = $(UTILS_USR_BIN_PATH)msgfmt +MV = $(UTILS_COMMAND_PATH)mv +NAWK = $(UTILS_USR_BIN_PATH)nawk +NM = $(UTILS_CCS_BIN_PATH)nm +PKGMK = $(UTILS_COMMAND_PATH)pkgmk +PRINTF = $(UTILS_USR_BIN_PATH)printf +PWD = $(UTILS_COMMAND_PATH)pwd +RC = $(UTILS_COMMAND_PATH)rc +RMDIR = $(UTILS_COMMAND_PATH)rmdir +RPM = $(UTILS_COMMAND_PATH)rpm +RPMBUILD = $(UTILS_COMMAND_PATH)rpmbuild +SCCS = $(UTILS_CCS_BIN_PATH)sccs +SED = $(UTILS_COMMAND_PATH)sed +SH = $(UTILS_COMMAND_PATH)sh +SHOWREV = $(UTILS_USR_BIN_PATH)showrev +SORT = $(UTILS_COMMAND_PATH)sort +STRIP = $(UTILS_CCS_BIN_PATH)strip +TAIL = $(UTILS_USR_BIN_PATH)tail +TAR = $(UTILS_COMMAND_PATH)tar +TEST = $(UTILS_USR_BIN_PATH)test +TOUCH = $(UTILS_COMMAND_PATH)touch +TR = $(UTILS_USR_BIN_PATH)tr +TRUE = $(UTILS_COMMAND_PATH)true +UNAME = $(UTILS_COMMAND_PATH)uname +UNIQ = $(UTILS_USR_BIN_PATH)uniq +UNZIP = $(UTILS_USR_BIN_PATH)unzip +UNZIPSFX = $(UTILS_DEVTOOL_PATH)unzipsfx +WC = $(UTILS_USR_BIN_PATH)wc +WHICH = $(UTILS_USR_BIN_PATH)which +YACC = $(UTILS_CCS_BIN_PATH)yacc +ZIPEXE = $(UTILS_DEVTOOL_PATH)zip + +# Special cases +#RM is defined by GNU Make as 'rm -f' +CD = cd # intrinsic unix command + +# Windows specific +ifeq ($(PLATFORM),windows) + ifdef USING_CYGWIN + # Intrinsic unix command, with backslash-escaped character interpretation + ECHO = $(UNIXCOMMAND_PATH)echo -e + ZIPEXE = $(UNIXCOMMAND_PATH)zip + UNZIP = $(UNIXCOMMAND_PATH)unzip + else + ZIPEXE = $(UTILS_DEVTOOL_PATH)zip + UNZIP = $(UTILS_DEVTOOL_PATH)unzip + endif + # Re-define some utilities + LEX =# override GNU Make intrinsic: no lex on windows + NAWK = $(UNIXCOMMAND_PATH)awk +endif + +# Linux specific +ifeq ($(PLATFORM),linux) + # A few redefines + # Allows for builds on Debian GNU Linux, basename is in a different place + BASENAME=$(firstword $(wildcard $(UTILS_COMMAND_PATH)basename) \ + $(wildcard $(UTILS_USR_BIN_PATH)basename)) + # RPM 4 has replaced "rpm -b" with an entirely new utility "rpmbuild". + # Also, some distribution (Ubuntu, Debian, others?) place the rpm command + # itself in /usr/bin rather than it's traditional home in /bin. + RPM=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpm) \ + $(wildcard $(UTILS_USR_BIN_PATH)rpm)) + RPMBUILD=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpmbuild) \ + $(wildcard $(UTILS_USR_BIN_PATH)rpmbuild) \ + $(wildcard $(UTILS_COMMAND_PATH)rpm) \ + $(wildcard $(UTILS_USR_BIN_PATH)rpm)) + # Most Linux distros have "sort" in /bin. Ubuntu, Debian and perhaps + # others have it in /usr/bin. + SORT=$(firstword $(wildcard $(UTILS_COMMAND_PATH)sort) \ + $(wildcard $(UTILS_USR_BIN_PATH)sort)) + NAWK = $(USRBIN_PATH)gawk + # Intrinsic unix command, with backslash-escaped character interpretation + ECHO = /bin/echo -e + # These are really in UTILS_USR_BIN_PATH on Linux (only sccs is not) + AR = $(UTILS_USR_BIN_PATH)ar + AS = $(UTILS_USR_BIN_PATH)as + LD = $(UTILS_USR_BIN_PATH)ld + LEX = $(UTILS_USR_BIN_PATH)lex + MCS = $(UTILS_USR_BIN_PATH)mcs + M4 = $(UTILS_USR_BIN_PATH)m4 + NM = $(UTILS_USR_BIN_PATH)nm + STRIP = $(UTILS_USR_BIN_PATH)strip + YACC = $(UTILS_USR_BIN_PATH)yacc +endif + +# Solaris specific +ifeq ($(PLATFORM),solaris) + # Intrinsic unix command, with backslash-escaped character interpretation + # (not using -e will cause build failure when using /bin/bash) + # (using -e breaks something else) + ECHO = /usr/bin/echo +endif +