La guía o código que encontrarás en este artículo es la solución más rápida y efectiva que hallamos a tu duda o dilema.
Solución:
No hay diferencia: significan exactamente lo mismo (en GNU Make y en POSIX make).
Creo que $(round brackets)
lucir más ordenado, pero eso es solo una preferencia personal.
(Otras respuestas apuntan a las secciones relevantes de la documentación de GNU Make y tenga en cuenta que no debe mezclar las sintaxis dentro de una sola expresión)
los Conceptos básicos de las referencias de variables sección de la GNU make
estado de la documentación sin diferencias:
Para sustituir el valor de una variable, escriba un signo de dólar seguido del nombre de la variable entre paréntesis o llaves: o
$(foo)
o
$foo
es una referencia valida a la variable foo.
Como ya se ha señalado correctamente, no hay diferencia pero tenga cuidado de no mezclar los dos tipos de delimitadores, ya que puede conducir a errores crípticos como en el ejemplo de creación de GNU por unomadh.
Del manual GNU make sobre la sintaxis de llamada de función (énfasis mío):
[…] Si los propios argumentos contienen otras llamadas a funciones o referencias a variables, es mejor utilizar el mismo tipo de delimitadores para todas las referencias; escribe
$(subst a,b,$(x))
no$(subst a,b,$x)
. Esto se debe a que es más claro, y porque solo se compara un tipo de delimitador para encontrar el final de la referencia.
valoraciones y reseñas
Si te animas, eres capaz de dejar un post acerca de qué te ha impresionado de este artículo.