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.