Parece que esse código é onde está o problema:
test-host: @if [ $$EUID -ne 0 ] ; then \ echo "You must be logged in as root." && exit 1 ; fi @if ! type -p gawk >/dev/null 2>&1 ; then \ echo -e "Missing gawk on host!\nPlease install gawk and re-run 'make'." && exit 1 ; fi
Quando o primeiro if … é executado, a variável EUID não está definida, portanto, o comando [ -ne 0 ] é executado e esta não é uma sintaxe válida para o utilitário [ . Quando o segundo if … for executado, o comando type -p gawk será executado e retornará um status com falha, mesmo que gawk exista, indicando que PATH não está configurado corretamente ou que o comando type não está configurado t suporta a opção -p . (Spoiler: é o último.) E a mensagem de erro tem -e no início, mostrando que echo não reconhece -e como uma opção.
Esse makefile conta com recursos bash: EUID , echo -e e type -p são recursos bash. O sh do seu sistema é traço, não bash (o traço é o padrão no Debian e check-version.sh confirma que /bin/sh é traço). Dash é um shell mais enxuto e rápido que o bash; não tem muito mais do que o POSIX requer, e isso não inclui EUID ou type -p . Eu não passei pelo makefile, mas provavelmente há muito mais lugares onde é necessário bash.
Como o makefile requer o bash, ele deve conter uma linha com SHELL = bash . Na ausência de tal linha, diga make para usar o bash como o shell para todos os comandos: run
make SHELL=/bin/bash