spigot rayotutoriales rangos prefijos poner plugin permissionsex nametagedit crear configurado con como colored makefile gnu-make

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 bajo make -n '' (o ''make -t'' o ''make -q'') cuando los comandos no se ejecutan normalmente. Ver también la especificación POSIX para make y 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".