source: trunk/openjdk/jdk/make/common/shared/Defs-utils.gmk

Last change on this file was 444, checked in by dmik, 9 years ago

Fix echo -e issues across different shells on OS/2.

File size: 8.3 KB
Line 
1#
2# Copyright (c) 2005, 2007, Oracle and/or its affiliates. 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. Oracle designates this
8# particular file as subject to the "Classpath" exception as provided
9# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22# or visit www.oracle.com if you need additional information or have any
23# questions.
24#
25
26#
27# Shared variables for standard unix utilties on all platforms.
28#
29# Assumes Platform.gmk has been included before this file.
30#
31# These input UTILS_* variables can be defined at anytime, ideally once.
32# Unix Commands: Normally /bin/, /usr/bin/. or C:/mksnt/mksnt/
33# UTILS_COMMAND_PATH
34# /usr/bin/
35# UTILS_USR_BIN_PATH
36# /usr/ccs/bin/ (sccs, m4, lex, yacc, as, ar, strip, mcs)
37# UTILS_CCS_BIN_PATH
38# Dev Tools: zip, unzip, etc that we may have special versions of
39# UTILS_DEVTOOL_PATH
40#
41# WARNING: This file cannot assume that any of these utilties are available
42# to be run via their variable names defined here.
43# The paths inside the UTILS_* variables may not be defined yet.
44#
45# Note: There is no guarantee that all these exist on all platforms.
46# Some only make sense for one platform, but are harmless.
47#
48
49ifeq ($(PLATFORM),linux)
50 UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
51 UTILS_USR_BIN_PATH=$(USRBIN_PATH)
52 UTILS_CCS_BIN_PATH=$(USRBIN_PATH)
53 UTILS_DEVTOOL_PATH=$(USRBIN_PATH)
54endif
55
56ifeq ($(PLATFORM),solaris)
57 UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
58 UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH)
59 UTILS_CCS_BIN_PATH=$(UNIXCCS_PATH)
60 UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
61endif
62
63ifeq ($(PLATFORM),windows)
64 UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
65 UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH)
66 UTILS_CCS_BIN_PATH=$(UNIXCOMMAND_PATH)
67 UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
68endif
69
70ifeq ($(PLATFORM),os2)
71 UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
72 UTILS_USR_BIN_PATH=$(USRBIN_PATH)
73 UTILS_CCS_BIN_PATH=$(USRBIN_PATH)
74 UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
75endif
76
77# Ant
78ifdef ANT_HOME
79 ifeq ($(PLATFORM), windows)
80 ANT = $(subst \,/,$(ANT_HOME))/bin/ant.bat
81 else
82 ifeq ($(PLATFORM), os2)
83 ANT = $(subst \,/,$(ANT_HOME))/bin/ant.cmd
84 else
85 ANT = $(ANT_HOME)/bin/ant
86 endif
87 endif
88 ifneq ($(shell test -x $(ANT); echo $$?), 0)
89 $(error $(ANT) not found -- please update ANT_HOME)
90 endif
91else
92 ANT = ant
93 ifneq ($(shell which $(ANT) > /dev/null; echo $$?), 0)
94 $(error 'ant' not found -- please set ANT_HOME or put 'ant' on your PATH)
95 endif
96endif
97
98# Utilities
99ADB = $(UTILS_COMMAND_PATH)adb
100AR = $(UTILS_CCS_BIN_PATH)ar
101AS = $(UTILS_CCS_BIN_PATH)as
102BASENAME = $(UTILS_COMMAND_PATH)basename
103CAT = $(UTILS_COMMAND_PATH)cat
104CHMOD = $(UTILS_COMMAND_PATH)chmod
105CMP = $(UTILS_USR_BIN_PATH)cmp
106COMM = $(UTILS_USR_BIN_PATH)comm
107COMPRESS = $(UTILS_USR_BIN_PATH)compress
108CP = $(UTILS_COMMAND_PATH)cp
109CPIO = $(UTILS_COMMAND_PATH)cpio
110CUT = $(UTILS_USR_BIN_PATH)cut
111DATE = $(UTILS_COMMAND_PATH)date
112DF = $(UTILS_COMMAND_PATH)df
113DIFF = $(UTILS_USR_BIN_PATH)diff
114DIRNAME = $(UTILS_USR_BIN_PATH)dirname
115ECHO = $(UTILS_COMMAND_PATH)echo
116EGREP = $(UTILS_COMMAND_PATH)egrep
117EXPR = $(UTILS_USR_BIN_PATH)expr
118FILE = $(UTILS_USR_BIN_PATH)file
119FIND = $(UTILS_USR_BIN_PATH)find
120FMT = $(UTILS_COMMAND_PATH)fmt
121GDB = $(UTILS_USR_BIN_PATH)gdb
122GREP = $(UTILS_COMMAND_PATH)grep
123GUNZIP = $(UTILS_COMMAND_PATH)gunzip
124HEAD = $(UTILS_USR_BIN_PATH)head
125ID = $(UTILS_COMMAND_PATH)id
126ISAINFO = $(UTILS_COMMAND_PATH)isainfo
127KSH = $(UTILS_COMMAND_PATH)ksh
128LD = $(UTILS_CCS_BIN_PATH)ld
129LEX = $(UTILS_CCS_BIN_PATH)lex
130LN = $(UTILS_COMMAND_PATH)ln
131LS = $(UTILS_COMMAND_PATH)ls
132MCS = $(UTILS_CCS_BIN_PATH)mcs
133M4 = $(UTILS_CCS_BIN_PATH)m4
134MKDIR = $(UTILS_COMMAND_PATH)mkdir
135MKSINFO = $(UTILS_COMMAND_PATH)mksinfo
136MSGFMT = $(UTILS_USR_BIN_PATH)msgfmt
137MV = $(UTILS_COMMAND_PATH)mv
138NAWK = $(UTILS_USR_BIN_PATH)nawk
139NM = $(UTILS_CCS_BIN_PATH)nm
140PKGMK = $(UTILS_COMMAND_PATH)pkgmk
141PRINTF = $(UTILS_USR_BIN_PATH)printf
142PWD = $(UTILS_COMMAND_PATH)pwd
143RC = $(UTILS_COMMAND_PATH)rc
144RMDIR = $(UTILS_COMMAND_PATH)rmdir
145RPM = $(UTILS_COMMAND_PATH)rpm
146SCCS = $(UTILS_CCS_BIN_PATH)sccs
147SED = $(UTILS_COMMAND_PATH)sed
148SH = $(UTILS_COMMAND_PATH)sh
149SHOWREV = $(UTILS_USR_BIN_PATH)showrev
150SORT = $(UTILS_COMMAND_PATH)sort
151STRIP = $(UTILS_CCS_BIN_PATH)strip
152TAIL = $(UTILS_USR_BIN_PATH)tail
153TAR = $(UTILS_COMMAND_PATH)tar
154TEST = $(UTILS_USR_BIN_PATH)test
155TOUCH = $(UTILS_COMMAND_PATH)touch
156TR = $(UTILS_USR_BIN_PATH)tr
157TRUE = $(UTILS_COMMAND_PATH)true
158UNAME = $(UTILS_COMMAND_PATH)uname
159UNIQ = $(UTILS_USR_BIN_PATH)uniq
160UNZIP = $(UTILS_USR_BIN_PATH)unzip
161UNZIPSFX = $(UTILS_DEVTOOL_PATH)unzipsfx
162WC = $(UTILS_USR_BIN_PATH)wc
163WHICH = $(UTILS_USR_BIN_PATH)which
164YACC = $(UTILS_CCS_BIN_PATH)yacc
165ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
166
167# Special cases
168#RM is defined by GNU Make as 'rm -f'
169CD = cd # intrinsic unix command
170
171# Windows specific
172ifeq ($(PLATFORM),windows)
173 ifdef USING_CYGWIN
174 # Intrinsic unix command, with backslash-escaped character interpretation
175 ECHO = $(UNIXCOMMAND_PATH)echo -e
176 ZIPEXE = $(UNIXCOMMAND_PATH)zip
177 UNZIP = $(UNIXCOMMAND_PATH)unzip
178 # Some CYGWIN nawk versions require BINMODE=w for proper '\r' interpretation
179 NAWK = $(UNIXCOMMAND_PATH)awk -v BINMODE=w
180 else
181 ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
182 UNZIP = $(UTILS_DEVTOOL_PATH)unzip
183 NAWK = $(UNIXCOMMAND_PATH)awk
184 endif
185 # Re-define some utilities
186 LEX =# override GNU Make intrinsic: no lex on windows
187endif
188
189# OS/2 specific
190ifeq ($(PLATFORM),os2)
191 # Prefer built-in echo if it does backslash-escaped character
192 # interpretation (e.g. dash echo does)
193 ifeq ($(shell V=`echo "foo\tbar"` ; [ "$${\#V}" = 7 ] ; echo $$?), 0)
194 ECHO = echo
195 else
196 ECHO = $(UTILS_COMMAND_PATH)echo -e
197 endif
198 NAWK = $(UTILS_COMMAND_PATH)awk
199endif
200
201# Linux specific
202ifeq ($(PLATFORM),linux)
203 # A few redefines
204 # Allows for builds on Debian GNU Linux, basename is in a different place
205 BASENAME=$(firstword $(wildcard $(UTILS_COMMAND_PATH)basename) \
206 $(wildcard $(UTILS_USR_BIN_PATH)basename))
207
208 NAWK = $(USRBIN_PATH)gawk
209 # Intrinsic unix command, with backslash-escaped character interpretation
210 ECHO = /bin/echo -e
211 # These are really in UTILS_USR_BIN_PATH on Linux (only sccs is not)
212 AR = $(UTILS_USR_BIN_PATH)ar
213 AS = $(UTILS_USR_BIN_PATH)as
214 LD = $(UTILS_USR_BIN_PATH)ld
215 LEX = $(UTILS_USR_BIN_PATH)lex
216 MCS = $(UTILS_USR_BIN_PATH)mcs
217 M4 = $(UTILS_USR_BIN_PATH)m4
218 NM = $(UTILS_USR_BIN_PATH)nm
219 STRIP = $(UTILS_USR_BIN_PATH)strip
220 YACC = $(UTILS_USR_BIN_PATH)yacc
221endif
222
223# Solaris specific
224ifeq ($(PLATFORM),solaris)
225 # Intrinsic unix command, with backslash-escaped character interpretation
226 # (not using -e will cause build failure when using /bin/bash)
227 # (using -e breaks something else)
228 ECHO = /usr/bin/echo
229endif
230
Note: See TracBrowser for help on using the repository browser.