O que significa “-” neste comando “-cp”?

5

Eu me deparei com isso em um dos makefiles do Android ( build / core / Makefile ):

$(hide) -cp $(TARGET_ROOT_OUT)/init.recovery.*.rc $(TARGET_RECOVERY_ROOT_OUT)/

O que significa - na frente de cp aqui? Provavelmente tem algo a ver com a supressão de erros, mas não consegui documentar o Google para isso.

    
por szx 13.02.2017 / 17:05

1 resposta

12

- em uma receita diz ao Make para ignorar quaisquer erros (consulte Erros nas receitas ).

Neste caso específico, qualquer erro relatado por cp será ignorado (a saída conterá quaisquer mensagens, mas a compilação continuará).

Isso só funciona se - for interpretado por Make, ou seja, é o primeiro caractere que não é espaço em branco na linha (ou os caracteres que o precedem também são interpretados por Make). Nesse caso, $(hide) precisa ser considerado: se hide estiver vazio ou @ , -cp terá o efeito pretendido; mas se hide for, por exemplo, @>/dev/null (para que o comando não seja ecoado e sua saída padrão seja descartada), -cp será passado como está para o shell e o comando falhará.

    
por 13.02.2017 / 17:10