
Meta
En el caso habitual de que un objetivo (objetivo madre) llame a otro objetivo (objetivo secundario) como requisito previo, me gustaría asignar una variable específica de patrón (consulte lapagina del manual) con las siguientes condiciones:
- El valor de la variable se basa en el objetivo madre.
- El objetivo secundario necesita esta variable.
Contexto
Puedo reducir mi caso de uso a lo siguiente. Usaré una variable específica del objetivo en lugar de una específica del patrón por simplicidad (el problema es el mismo). Aquí está el archivo Make:
mother-target: VAR = Var-$@
mother-target: child-target
child-target:
echo VAR=$(VAR)
make
saldrá VAR=Var-child-target
, y me gustaría que salga VAR=Var-mother-target
.
Pregunta:¿Cómo hacer referencia al nombre del objetivo que define la variable? La @
variable automática parece resolverse siempre en el "último" objetivo de la cadena.
Intentos:
VAR
como una variable simplemente expandida, es decirmother-target: VAR := Var-$@
. Pero$@
está vacío.- Declarar
VAR
privado para que no se herede no se adapta a mi caso de uso: el objetivo secundario necesita la variable.
El caso real es con una variable específica de patrón donde realmente sería útil tener resuelto el nombre del objetivo (es decir, %-target: VAR = Var-$@
)