gnu make: “: = $ (expressão)” vs “: = @ (expressão)”

1

Estou tentando determinar qual é a diferença entre o "$" e "@" quando usado durante a avaliação da expressão (se esse for o termo correto). Por exemplo, no Makefile que estou tentando entender, existe a seguinte expressão

NO-DEBUG   := @(if $(DEBUG),,1)

Mais tarde, há a seguinte expressão

NO-CHECKED  := $(if $(CHECKED),,1)

Estes parecem estar fazendo a mesma coisa, mas não tenho certeza de como o "$" e "@" podem estar afetando as avaliações. Não consegui encontrar nada pesquisando ": = @" ou "= @" nas minhas pesquisas superficiais do google. Alguma percepção? Por que um seria usado em oposição ao outro?

Obrigado e cumprimentos, Mark

    
por lordhog 10.06.2015 / 01:24

1 resposta

1

Eu nunca vi e não tenho idéia sobre @(expression) no GNU make. Simplesmente seria deixado sem interpretação se usado. Eu confirmei com testes com o GNU make 4.0. Parece não haver menção no manual .

Em relação a = e := , você deve ler Os dois sabores das variáveis no manual de referência. Há uma explicação detalhada com exemplos.

    
por 10.06.2015 / 01:40

Tags