makefile - rayotutoriales - plugin de rangos
¿Qué hacen @,-y+como prefijos para las líneas de recetas en Make? (2)
Controlan el comportamiento de make para las líneas de comando etiquetadas:
@suprime el ''eco'' normal del comando que se ejecuta.-significa ignorar el estado de salida del comando que se ejecuta (normalmente, un estado de salida distinto de cero detendría esa parte de la compilación).+significa ''ejecutar este comando bajomake -n'' (o ''make -t'' o ''make -q'') cuando los comandos no se ejecutan normalmente. Ver también la especificación POSIX paramakey también §9.3 del manual GNU Make.
La notación + es una generalización (POSIX-estandarizada) del mecanismo de facto (no estandarizado) mediante el cual una línea de comando que contiene ${MAKE} o $(MAKE) se ejecuta bajo make -n .
( @ se trata en §5.2 del manual GNU Make; - se describe en §5.5 ; y §5.7.1 menciona el uso de + .)
En el manual de GNU Makefile, mentions estos prefijos.
Si se proporciona .ONESHELL, solo se verificará en la primera línea de la receta los caracteres de prefijo especiales (''@'', ''-'' y ''+'').
¿Qué hacen estos prefijos y dónde se mencionan?
@ evita que la línea de comando emita ecos en la consola. Puedes hacerlo globalmente con -s o --keep-silent
- le dice a make que continúe, incluso si el comando falla por alguna razón. Puede hacerlo globalmente a través de la bandera -i (o --ignore-errors ).
+ No estaba familiarizado con antes de que preguntaras. Por lo que puedo decir, niega el efecto de -n , -t y -q , todos los cuales básicamente indican que no se ejecutan realmente los comandos. Entonces una línea con un + en el frente se ejecutará de todos modos.
Si lees el manual oficial de Gnu Make, todos se mencionan en el Capítulo 5 . En mi vieja copia del manual que era el capítulo sobre "comandos", pero el término du jour ahora parece ser "recetas".