Even though you've asked for something that is "not
true with the full name
/bin/true to show that it is the
true program rather than some other meaning of "true" is probably the best solution.
Your concern is that the
appears to be something other than a command name. But if you write
then that is unambiguously a command. Somebody might misread
TOOL=true to mean that some other tool somewhere is intended, but no such misreading of
TOOL=/bin/true is likely.
I am unsure as to when
:, which is a shell builtin but not an external command, will work. Henning Makholm has reported that it appears to work. But I think it does not work in all situations, and you found that it did not work for you.
As for a shell alias, you cannot use that because alias expansion is not performed in the arguments you pass to a command, nor do makefiles make any use of previously defined shell aliases. Even if
make runs your commands in a new shell, that shell will not have the alias (and would not use it even if it did have it, because it would be a noninteractive shell, where alias expansion is not automatically enabled).