1 # 2 # Copyright (c) 2005, 2012, 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 49 ifeq ($(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) 54 endif 55 56 ifeq ($(PLATFORM),bsd) 57 UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH) 58 UTILS_USR_BIN_PATH=$(USRBIN_PATH) 59 UTILS_CCS_BIN_PATH=$(USRBIN_PATH) 60 UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH) 61 endif 62 63 ifeq ($(PLATFORM),solaris) 64 UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH) 65 UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH) 66 UTILS_CCS_BIN_PATH=$(UNIXCCS_PATH) 67 UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH) 68 endif 69 70 ifeq ($(PLATFORM),windows) 71 UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH) 72 UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH) 73 UTILS_CCS_BIN_PATH=$(UNIXCOMMAND_PATH) 74 UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH) 75 endif 76 77 # Utilities 78 ADB = $(UTILS_COMMAND_PATH)adb 79 AR = $(UTILS_CCS_BIN_PATH)ar 80 AS = $(UTILS_CCS_BIN_PATH)as 81 BASENAME = $(UTILS_COMMAND_PATH)basename 82 CAT = $(UTILS_COMMAND_PATH)cat 83 CHMOD = $(UTILS_COMMAND_PATH)chmod 84 CMP = $(UTILS_USR_BIN_PATH)cmp 85 COMM = $(UTILS_USR_BIN_PATH)comm 86 COMPRESS = $(UTILS_USR_BIN_PATH)compress 87 CP = $(UTILS_COMMAND_PATH)cp 88 CPIO = $(UTILS_COMMAND_PATH)cpio 89 CUT = $(UTILS_USR_BIN_PATH)cut 90 DATE = $(UTILS_COMMAND_PATH)date 91 DF = $(UTILS_COMMAND_PATH)df 92 DIFF = $(UTILS_USR_BIN_PATH)diff 93 DIRNAME = $(UTILS_USR_BIN_PATH)dirname 94 ECHO = $(UTILS_COMMAND_PATH)echo 95 EGREP = $(UTILS_COMMAND_PATH)egrep 96 EXPR = $(UTILS_USR_BIN_PATH)expr 97 FILE = $(UTILS_USR_BIN_PATH)file 98 FIND = $(UTILS_USR_BIN_PATH)find 99 FMT = $(UTILS_COMMAND_PATH)fmt 100 GDB = $(UTILS_USR_BIN_PATH)gdb 101 GREP = $(UTILS_COMMAND_PATH)grep 102 GUNZIP = $(UTILS_COMMAND_PATH)gunzip 103 HEAD = $(UTILS_USR_BIN_PATH)head 104 ID = $(UTILS_COMMAND_PATH)id 105 ISAINFO = $(UTILS_COMMAND_PATH)isainfo 106 KSH = $(UTILS_COMMAND_PATH)ksh 107 LD = $(UTILS_CCS_BIN_PATH)ld 108 LEX = $(UTILS_CCS_BIN_PATH)lex 109 LN = $(UTILS_COMMAND_PATH)ln 110 LS = $(UTILS_COMMAND_PATH)ls 111 MCS = $(UTILS_CCS_BIN_PATH)mcs 112 M4 = $(UTILS_CCS_BIN_PATH)m4 113 MKDIR = $(UTILS_COMMAND_PATH)mkdir 114 MKSINFO = $(UTILS_COMMAND_PATH)mksinfo 115 MSGFMT = $(UTILS_USR_BIN_PATH)msgfmt 116 MV = $(UTILS_COMMAND_PATH)mv 117 NAWK = $(UTILS_USR_BIN_PATH)nawk 118 NM = $(UTILS_CCS_BIN_PATH)nm 119 PKGMK = $(UTILS_COMMAND_PATH)pkgmk 120 PRINTF = $(UTILS_USR_BIN_PATH)printf 121 PWD = $(UTILS_COMMAND_PATH)pwd 122 RC = $(UTILS_COMMAND_PATH)rc 123 RMDIR = $(UTILS_COMMAND_PATH)rmdir 124 RPM = $(UTILS_COMMAND_PATH)rpm 125 RPMBUILD = $(UTILS_COMMAND_PATH)rpmbuild 126 SED = $(UTILS_COMMAND_PATH)sed 127 SH = $(UTILS_COMMAND_PATH)sh 128 SHOWREV = $(UTILS_USR_BIN_PATH)showrev 129 SORT = $(UTILS_COMMAND_PATH)sort 130 STRIP = $(UTILS_CCS_BIN_PATH)strip 131 TAIL = $(UTILS_USR_BIN_PATH)tail 132 TAR = $(UTILS_COMMAND_PATH)tar 133 TEST = $(UTILS_USR_BIN_PATH)test 134 TOUCH = $(UTILS_COMMAND_PATH)touch 135 TR = $(UTILS_USR_BIN_PATH)tr 136 TRUE = $(UTILS_COMMAND_PATH)true 137 UNAME = $(UTILS_COMMAND_PATH)uname 138 UNIQ = $(UTILS_USR_BIN_PATH)uniq 139 UNZIP = $(UTILS_USR_BIN_PATH)unzip 140 UNZIPSFX = $(UTILS_DEVTOOL_PATH)unzipsfx 141 WC = $(UTILS_USR_BIN_PATH)wc 142 WHICH = $(UTILS_USR_BIN_PATH)which 143 YACC = $(UTILS_CCS_BIN_PATH)yacc 144 ZIPEXE = $(UTILS_DEVTOOL_PATH)zip 145 146 # Special cases 147 #RM is defined by GNU Make as 'rm -f' 148 CD = cd # intrinsic unix command 149 150 # Windows specific 151 ifeq ($(PLATFORM),windows) 152 ifdef USING_CYGWIN 153 # Intrinsic unix command, with backslash-escaped character interpretation 154 ECHO = $(UNIXCOMMAND_PATH)echo -e 155 ZIPEXE = $(UNIXCOMMAND_PATH)zip 156 UNZIP = $(UNIXCOMMAND_PATH)unzip 157 else 158 ZIPEXE = $(UTILS_DEVTOOL_PATH)zip 159 UNZIP = $(UTILS_DEVTOOL_PATH)unzip 160 endif 161 # Re-define some utilities 162 LEX =# override GNU Make intrinsic: no lex on windows 163 NAWK = $(UNIXCOMMAND_PATH)awk 164 endif 165 166 # Linux specific 167 ifeq ($(PLATFORM),linux) 168 # A few redefines 169 # Allows for builds on Debian GNU Linux, basename is in a different place 170 BASENAME=$(firstword $(wildcard $(UTILS_COMMAND_PATH)basename) \ 171 $(wildcard $(UTILS_USR_BIN_PATH)basename)) 172 # RPM 4 has replaced "rpm -b" with an entirely new utility "rpmbuild". 173 # Also, some distribution (Ubuntu, Debian, others?) place the rpm command 174 # itself in /usr/bin rather than it's traditional home in /bin. 175 RPM=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpm) \ 176 $(wildcard $(UTILS_USR_BIN_PATH)rpm)) 177 RPMBUILD=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpmbuild) \ 178 $(wildcard $(UTILS_USR_BIN_PATH)rpmbuild) \ 179 $(wildcard $(UTILS_COMMAND_PATH)rpm) \ 180 $(wildcard $(UTILS_USR_BIN_PATH)rpm)) 181 # Most Linux distros have "sort" in /bin. Ubuntu, Debian and perhaps 182 # others have it in /usr/bin. 183 SORT=$(firstword $(wildcard $(UTILS_COMMAND_PATH)sort) \ 184 $(wildcard $(UTILS_USR_BIN_PATH)sort)) 185 NAWK = $(USRBIN_PATH)gawk 186 # Intrinsic unix command, with backslash-escaped character interpretation 187 ECHO = /bin/echo -e 188 # These are really in UTILS_USR_BIN_PATH on Linux (only sccs is not) 189 AR = $(UTILS_USR_BIN_PATH)ar 190 AS = $(UTILS_USR_BIN_PATH)as 191 LD = $(UTILS_USR_BIN_PATH)ld 192 LEX = $(UTILS_USR_BIN_PATH)lex 193 MCS = $(UTILS_USR_BIN_PATH)mcs 194 M4 = $(UTILS_USR_BIN_PATH)m4 195 NM = $(UTILS_USR_BIN_PATH)nm 196 STRIP = $(UTILS_USR_BIN_PATH)strip 197 YACC = $(UTILS_USR_BIN_PATH)yacc 198 endif 199 200 # Solaris specific 201 ifeq ($(PLATFORM),solaris) 202 # Intrinsic unix command, with backslash-escaped character interpretation 203 # (not using -e will cause build failure when using /bin/bash) 204 # (using -e breaks something else) 205 ECHO = /usr/bin/echo 206 endif 207 208 # BSD specific 209 ifeq ($(PLATFORM),bsd) 210 BASENAME = $(UTILS_USR_BIN_PATH)basename 211 EGREP = $(UTILS_USR_BIN_PATH)egrep 212 EXPR = $(UTILS_COMMAND_PATH)expr 213 FMT = $(UTILS_USR_BIN_PATH)fmt 214 GREP = $(UTILS_USR_BIN_PATH)grep 215 GUNZIP = $(UTILS_USR_BIN_PATH)gunzip 216 ID = $(UTILS_USR_BIN_PATH)id 217 MSGFMT = $(UTILS_DEVTOOL_PATH)msgfmt 218 SED = $(UTILS_USR_BIN_PATH)sed 219 SORT = $(UTILS_USR_BIN_PATH)sort 220 TEST = $(UTILS_COMMAND_PATH)test 221 TOUCH = $(UTILS_USR_BIN_PATH)touch 222 TRUE = $(UTILS_USR_BIN_PATH)true 223 UNAME = $(UTILS_USR_BIN_PATH)uname 224 # BSD OS_VENDOR specific 225 ifeq ($(OS_VENDOR), Apple) 226 NAWK = $(UTILS_USR_BIN_PATH)awk 227 UNZIPSFX = $(UTILS_USR_BIN_PATH)unzipsfx 228 ZIPEXE = $(UTILS_USR_BIN_PATH)zip 229 else 230 UNZIP = $(UTILS_DEVTOOL_PATH)unzip 231 endif 232 ifeq ($(OS_VENDOR), OpenBSD) 233 NAWK = $(UTILS_USR_BIN_PATH)awk 234 else 235 CPIO = $(UTILS_USR_BIN_PATH)cpio 236 TAR = $(UTILS_USR_BIN_PATH)tar 237 endif 238 endif