ejecutar - comandos perl
Cómo citar un símbolo de $ perl en un archivo MAKE (1)
En un Makefile, tengo una regla para hacer una lista de figuras de un documento LaTeX canalizando la salida de un script a una expresión perl que incrementa los números $ f ++ y antepone Figure $ f: a las líneas.
Desde una línea de comando, funciona bien, de la siguiente manera:
% texdepend -format=1 -print=f MilestonesProject | perl -pe ''unless (/^#/){$f++; s/^/Figure $f: /}'' > FIGLIST
generando FIGLIST:
# texdepend, v0.96 (Michael Friendly ([email protected]))
# commandline: texdepend -format=1 -print=f MilestonesProject
# FIGS =
Figure 1: fig/langren-google-overlay2.pdf
Figure 2: fig/mileyears4.png
Figure 3: fig/datavis-schema-3.pdf
Figure 4: fig/datavis-timeline2.png
...
No puedo entender cómo hacer que esto funcione en un Makefile, porque el material de $ f en la expresión perl es interpretado por make y no puedo encontrar la manera de citarlo o hacerlo invisible.
Mi intento más reciente en mi Makefile:
## Generate FIGLIST; doesnt work due to Make quoting
FIGLIST:
$(TEXDEPEND) -format=1 -print=f $(MAIN) | perl -pe ''unless (/^#/){/$f++; s/^/Figure /$f: /}'' > FIGLIST
¿Alguien puede ayudar?
-Miguel
Doble los signos de dólar.
## Generate FIGLIST
FIGLIST:
$(TEXDEPEND) -format=1 -print=f $(MAIN) /
| perl -pe ''unless (/^/#/){$$f++; s/^/Figure $$f: /}'' > $@
Es posible que necesite una barra diagonal inversa, también debe escapar del signo de comentario. Lo hice por si acaso.
Ver también http://www.gnu.org/software/make/manual/html_node/Variables-in-Recipes.html#Variables-in-Recipes