make: support: use command -v' instead of
which'
`which' has been discontinued after 2.21 release in 2015 due this (git
repository is empty [1]) and version shipped in Debian produces warning
[2]:
/usr/bin/which: this version of `which' is deprecated; use `command -v' in scripts instead.
`command is POSIX [3] and supported on all common shells (bash, zsh,
dash, busybox sh, mksh).
Patch tested on dash as the default shell.
[1] https://git.savannah.gnu.org/cgit/which.git
[2] 3a8dd10b45
[3] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
parent
f71e240229
commit
ca6a2907c2
22
Makefile
22
Makefile
@ -284,12 +284,12 @@ HOSTAS := as
|
||||
endif
|
||||
ifndef HOSTCC
|
||||
HOSTCC := gcc
|
||||
HOSTCC := $(shell which $(HOSTCC) || type -p $(HOSTCC) || echo gcc)
|
||||
HOSTCC := $(shell command -v $(HOSTCC) || type -p $(HOSTCC) || echo gcc)
|
||||
endif
|
||||
HOSTCC_NOCCACHE := $(HOSTCC)
|
||||
ifndef HOSTCXX
|
||||
HOSTCXX := g++
|
||||
HOSTCXX := $(shell which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++)
|
||||
HOSTCXX := $(shell command -v $(HOSTCXX) || type -p $(HOSTCXX) || echo g++)
|
||||
endif
|
||||
HOSTCXX_NOCCACHE := $(HOSTCXX)
|
||||
ifndef HOSTCPP
|
||||
@ -310,15 +310,15 @@ endif
|
||||
ifndef HOSTRANLIB
|
||||
HOSTRANLIB := ranlib
|
||||
endif
|
||||
HOSTAR := $(shell which $(HOSTAR) || type -p $(HOSTAR) || echo ar)
|
||||
HOSTAS := $(shell which $(HOSTAS) || type -p $(HOSTAS) || echo as)
|
||||
HOSTCPP := $(shell which $(HOSTCPP) || type -p $(HOSTCPP) || echo cpp)
|
||||
HOSTLD := $(shell which $(HOSTLD) || type -p $(HOSTLD) || echo ld)
|
||||
HOSTLN := $(shell which $(HOSTLN) || type -p $(HOSTLN) || echo ln)
|
||||
HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm)
|
||||
HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy)
|
||||
HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib)
|
||||
SED := $(shell which sed || type -p sed) -i -e
|
||||
HOSTAR := $(shell command -v $(HOSTAR) || type -p $(HOSTAR) || echo ar)
|
||||
HOSTAS := $(shell command -v $(HOSTAS) || type -p $(HOSTAS) || echo as)
|
||||
HOSTCPP := $(shell command -v $(HOSTCPP) || type -p $(HOSTCPP) || echo cpp)
|
||||
HOSTLD := $(shell command -v $(HOSTLD) || type -p $(HOSTLD) || echo ld)
|
||||
HOSTLN := $(shell command -v $(HOSTLN) || type -p $(HOSTLN) || echo ln)
|
||||
HOSTNM := $(shell command -v $(HOSTNM) || type -p $(HOSTNM) || echo nm)
|
||||
HOSTOBJCOPY := $(shell command -v $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy)
|
||||
HOSTRANLIB := $(shell command -v $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib)
|
||||
SED := $(shell command -v sed || type -p sed) -i -e
|
||||
|
||||
export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD
|
||||
export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE
|
||||
|
@ -4,7 +4,7 @@ endif
|
||||
ifndef HOSTMAKE
|
||||
HOSTMAKE = $(MAKE)
|
||||
endif
|
||||
HOSTMAKE := $(shell which $(HOSTMAKE) || type -p $(HOSTMAKE) || echo make)
|
||||
HOSTMAKE := $(shell command -v $(HOSTMAKE) || type -p $(HOSTMAKE) || echo make)
|
||||
|
||||
# If BR2_JLEVEL is 0, scale the maximum concurrency with the number of
|
||||
# CPUs. An additional job is used in order to keep processors busy
|
||||
@ -222,8 +222,8 @@ else
|
||||
TARGET_STRIP = /bin/true
|
||||
STRIPCMD = $(TARGET_STRIP)
|
||||
endif
|
||||
INSTALL := $(shell which install || type -p install)
|
||||
UNZIP := $(shell which unzip || type -p unzip) -q
|
||||
INSTALL := $(shell command -v install || type -p install)
|
||||
UNZIP := $(shell command -v unzip || type -p unzip) -q
|
||||
|
||||
APPLY_PATCHES = PATH=$(HOST_DIR)/bin:$$PATH support/scripts/apply-patches.sh $(if $(QUIET),-s)
|
||||
|
||||
@ -237,7 +237,7 @@ HOST_LDFLAGS += -L$(HOST_DIR)/lib -Wl,-rpath,$(HOST_DIR)/lib
|
||||
# the path to the system perl, before a host-perl built by Buildroot
|
||||
# might get installed into $(HOST_DIR)/bin and therefore appears
|
||||
# in our PATH. This system perl will be used as INTLTOOL_PERL.
|
||||
export PERL=$(shell which perl)
|
||||
export PERL=$(shell command -v perl)
|
||||
|
||||
# host-intltool needs libxml-parser-perl, which Buildroot installs in
|
||||
# $(HOST_DIR)/lib/perl, so we must make sure that the system perl
|
||||
|
@ -5,10 +5,10 @@
|
||||
# that runs on host, e.g. Kconfig. To build code for target use plain
|
||||
# host-{bison,flex}.
|
||||
|
||||
ifeq ($(shell which bison 2>/dev/null),)
|
||||
ifeq ($(shell command -v bison 2>/dev/null),)
|
||||
BR2_BISON_HOST_DEPENDENCY = host-bison
|
||||
endif
|
||||
|
||||
ifeq ($(shell which flex 2>/dev/null),)
|
||||
ifeq ($(shell command -v flex 2>/dev/null),)
|
||||
BR2_FLEX_HOST_DEPENDENCY = host-flex
|
||||
endif
|
||||
|
@ -11,7 +11,7 @@ shift
|
||||
for candidate; do
|
||||
|
||||
# Try to locate the candidate. Discard it if not located.
|
||||
cmake=`which "${candidate}" 2>/dev/null`
|
||||
cmake=`command -v "${candidate}" 2>/dev/null`
|
||||
[ -n "${cmake}" ] || continue
|
||||
|
||||
# Extract version X.Y from versions in the form X.Y or X.Y.Z
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
candidate="$1" # ignored
|
||||
|
||||
gzip="$(which gzip)"
|
||||
gzip="$(command -v gzip)"
|
||||
if [ ! -x "${gzip}" ]; then
|
||||
# echo nothing: no suitable gzip found
|
||||
exit 1
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
candidate="$1"
|
||||
|
||||
lzip=`which $candidate 2>/dev/null`
|
||||
lzip=`command -v $candidate 2>/dev/null`
|
||||
if [ ! -x "$lzip" ]; then
|
||||
lzip=`which lzip 2>/dev/null`
|
||||
lzip=`command -v lzip 2>/dev/null`
|
||||
if [ ! -x "$lzip" ]; then
|
||||
# echo nothing: no suitable lzip found
|
||||
exit 1
|
||||
|
@ -14,7 +14,7 @@ shift
|
||||
# a more recent version.
|
||||
|
||||
for candidate in "${@}" ; do
|
||||
python3=`which $candidate 2>/dev/null`
|
||||
python3=`command -v $candidate 2>/dev/null`
|
||||
if [ ! -x "$python3" ]; then
|
||||
continue
|
||||
fi
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
candidate="$1"
|
||||
|
||||
tar=`which $candidate`
|
||||
tar=`command -v $candidate`
|
||||
if [ ! -x "$tar" ]; then
|
||||
tar=`which tar`
|
||||
tar=`command -v tar`
|
||||
if [ ! -x "$tar" ]; then
|
||||
# echo nothing: no suitable tar found
|
||||
exit 1
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
candidate="$1"
|
||||
|
||||
xzcat=`which $candidate 2>/dev/null`
|
||||
xzcat=`command -v $candidate 2>/dev/null`
|
||||
if [ ! -x "$xzcat" ]; then
|
||||
xzcat=`which xzcat 2>/dev/null`
|
||||
xzcat=`command -v xzcat 2>/dev/null`
|
||||
if [ ! -x "$xzcat" ]; then
|
||||
# echo nothing: no suitable xzcat found
|
||||
exit 1
|
||||
|
@ -58,7 +58,7 @@ fi
|
||||
check_prog_host()
|
||||
{
|
||||
prog="$1"
|
||||
if ! which $prog > /dev/null ; then
|
||||
if ! command -v $prog > /dev/null ; then
|
||||
echo >&2
|
||||
echo "You must install '$prog' on your build machine" >&2
|
||||
exit 1
|
||||
@ -75,7 +75,7 @@ check_prog_host "sed"
|
||||
check_prog_host "/usr/bin/file"
|
||||
|
||||
# Check make
|
||||
MAKE=$(which make 2> /dev/null)
|
||||
MAKE=$(command -v make 2> /dev/null)
|
||||
if [ -z "$MAKE" ] ; then
|
||||
echo
|
||||
echo "You must install 'make' on your build machine";
|
||||
@ -96,9 +96,9 @@ if [ $MAKE_MAJOR -lt 3 ] || [ $MAKE_MAJOR -eq 3 -a $MAKE_MINOR -lt 81 ] ; then
|
||||
fi;
|
||||
|
||||
# Check host gcc
|
||||
COMPILER=$(which $HOSTCC_NOCCACHE 2> /dev/null)
|
||||
COMPILER=$(command -v $HOSTCC_NOCCACHE 2> /dev/null)
|
||||
if [ -z "$COMPILER" ] ; then
|
||||
COMPILER=$(which cc 2> /dev/null)
|
||||
COMPILER=$(command -v cc 2> /dev/null)
|
||||
fi;
|
||||
if [ -z "$COMPILER" ] ; then
|
||||
echo
|
||||
@ -122,9 +122,9 @@ if [ $COMPILER_MAJOR -lt 4 -o $COMPILER_MAJOR -eq 4 -a $COMPILER_MINOR -lt 8 ] ;
|
||||
fi;
|
||||
|
||||
# check for host CXX
|
||||
CXXCOMPILER=$(which $HOSTCXX_NOCCACHE 2> /dev/null)
|
||||
CXXCOMPILER=$(command -v $HOSTCXX_NOCCACHE 2> /dev/null)
|
||||
if [ -z "$CXXCOMPILER" ] ; then
|
||||
CXXCOMPILER=$(which c++ 2> /dev/null)
|
||||
CXXCOMPILER=$(command -v c++ 2> /dev/null)
|
||||
fi
|
||||
|
||||
if [ -z "$CXXCOMPILER" ] ; then
|
||||
@ -164,7 +164,7 @@ fi
|
||||
# Check that a few mandatory programs are installed
|
||||
missing_progs="no"
|
||||
for prog in perl tar wget cpio unzip rsync bc ${DL_TOOLS} ; do
|
||||
if ! which $prog > /dev/null ; then
|
||||
if ! command -v $prog > /dev/null ; then
|
||||
echo "You must install '$prog' on your build machine";
|
||||
missing_progs="yes"
|
||||
if test $prog = "svn" ; then
|
||||
@ -198,7 +198,7 @@ if [ "${PATCH_MAJOR}" -lt 2 ] || [ "${PATCH_MAJOR}" -eq 2 -a "${PATCH_MINOR}" -l
|
||||
fi
|
||||
|
||||
if grep ^BR2_NEEDS_HOST_UTF8_LOCALE=y $BR2_CONFIG > /dev/null; then
|
||||
if ! which locale > /dev/null ; then
|
||||
if ! command -v locale > /dev/null ; then
|
||||
echo
|
||||
echo "You need locale support on your build machine to build a toolchain supporting locales"
|
||||
exit 1 ;
|
||||
|
@ -74,7 +74,7 @@ endif
|
||||
ifeq ($(TOOLCHAIN_EXTERNAL_INSTALL_DIR),)
|
||||
ifneq ($(TOOLCHAIN_EXTERNAL_PREFIX),)
|
||||
# if no path set, figure it out from path
|
||||
TOOLCHAIN_EXTERNAL_BIN := $(dir $(shell which $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc))
|
||||
TOOLCHAIN_EXTERNAL_BIN := $(dir $(shell command -v $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc))
|
||||
endif
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_REL_BIN_PATH = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_REL_BIN_PATH))
|
||||
|
Loading…
Reference in New Issue
Block a user