Mesmo que você tenha solicitado algo que "não seja /bin/true ", substituindo true pelo nome completo /bin/true para mostrar que é o programa true em vez de algum outro significado de "true" é provavelmente a melhor solução.
Sua preocupação é que o true em
make TOOL=true
parece ser algo diferente de um nome de comando. Mas se você escrever
make TOOL=/bin/true
então isso é inequivocamente um comando. Alguém pode interpretar mal o TOOL=true para significar que alguma outra ferramenta em algum lugar é intencional, mas não é provável que tal interpretação equivocada de TOOL=/bin/true seja possível.
Não tenho certeza de quando o : , que é um shell embutido, mas não um comando externo, funcionará. Henning Makholm tem informou que parece funcionar . Mas eu acho que não funciona em todas as situações, e você descobriu que não funcionou para você .
Como para um alias de shell, você não pode usá-lo porque a expansão de alias não é executada nos argumentos que você passa para um comando, nem os makefiles usam os aliases de shell definidos anteriormente. Mesmo se make executar seus comandos em um novo shell, esse shell não terá o alias (e não o utilizaria mesmo se o tivesse, porque seria um shell não interativo, em que a expansão de alias não é ativada automaticamente).