Os códigos de erro não são de make: make está reportando o status de retorno do comando que falhou. Você precisa examinar a documentação de cada comando para saber o que cada valor de status significa. A maioria dos comandos não se incomoda com distinções além de 0 = sucesso, qualquer outra coisa = falha.
Em cada um dos seus exemplos, ./dpp
não pode ser executado. Quando isso acontece, o shell que tentou invocá-lo sai com o código de status 126 (isso é comportamento padrão ). A instância do make que estava executando esse shell detecta um comando com falha (o shell) e sai, mostrando Error 126
. Essa instância de make é, por si só, um comando executado por uma instância pai de make, e o utilitário make
retorna 2 em caso de erro, portanto, o pai faz relatórios Error 2
.
A falha da sua compilação provavelmente será proveniente de test: too many arguments
. Isso pode ser um erro de sintaxe no makefile ou pode ser devido a recursos específicos do bash quando você tem um /bin/sh
que não é bash. Tente executar make SHELL=/bin/bash target
ou make SHELL=/bin/ksh target
; se isso não funcionar, você precisa consertar seu makefile.