run phony makefile

makefile - phony - rm-rf contra-rm-rf



makefile windows (1)

En un Makefile, leí:

-rm -rf (en lugar de rm -rf). ¿Qué significa el primer "-" al principio de la línea en un Makefile?


Significa que make ignora cualquier código de error de rm .

En un makefile , si algún comando falla, el proceso make mismo interrumpe el procesamiento. Al prefijar sus comandos con - , usted notifica que debe continuar procesando las reglas sin importar el resultado del comando.

Por ejemplo, la regla makefile:

clean: rm *.o rm *.a

no eliminará los archivos *.a si rm *.o devuelve un error (si, por ejemplo, no hay ningún archivo *.o para eliminar). Utilizando:

clean: -rm *.o -rm *.a

Arreglará ese problema en particular.

Aparte: aunque probablemente no sea necesario en su caso específico (ya que la marca -f parece evitar que rm devuelva un error cuando el archivo no existe), sigue siendo una buena práctica marcar la línea explícitamente en el makefile - rm puede devolver otra Errores en determinadas circunstancias y deja clara su intención.