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).