Subject: Re: [RFC/PATCH] build: avoid possible confusion between GNU/XPG4 make on Solaris

From: Thomas Rast <[email-masked]>
Date: Fri, 2 Mar 2012 10:34:31 +0100

Stefano Lattarini <[email-masked]> writes:

> +# FIXME: this is ugly, and which(1) is quite unportable.  Find a better
> +# 	 way to obtain the same effect.
> +MAKE := $(shell set $(MAKE); m1=$$1; shift; \
> +                m2=`which $$m1 2>/dev/null` && test -n "$$m2" || m2=$$m1; \
> +                echo "$$m2 $$*")

There's 'command -v make'.  'man 1p command' on my system (opensuse
installs a bunch of POSIX reference material) says

       -v     (On  systems  supporting  the  User  Portability Utilities
              option.) Write a string to standard output that  indicates
              the pathname or command that will be used by the shell, in
              the current shell execution environment (see Shell  Execu-
              tion  Environment  ),  to  invoke command_name, but do not
              invoke command_name.

               * Utilities, regular  built-in  utilities,  command_names
                 including  a  slash  character, and any implementation-
                 defined functions that are found using the  PATH  vari-
                 able  (as  described in Command Search and Execution ),
                 shall be written as absolute pathnames.

So perhaps enough systems including Solaris "support the User
Portability Utilities option", and you can use this?

-- 
Thomas Rast
trast@{inf,student}.ethz.ch