J'ai un Makefile construire de nombreux fichiers C avec de longues lignes de commandes à long et nous avons nettoyé la sortie en ayant des règles telles que:Obtenir calme Faire faire écho à des lignes de commande en cas d'erreur
.c${MT}.doj:
@echo "Compiling $<";\
$(COMPILER) $(COPTS) -c -o [email protected] $<
Maintenant, ce qui est grand comme le @ supprime la ligne de compilation émise. Mais quand nous obtenons une erreur, tout ce que nous obtenons est le message d'erreur, pas de ligne de commande. Quelqu'un peut-il penser à un moyen «propre» d'émettre la ligne de commande? Tout ce que je peux penser à faire est de faire écho à un fichier et avoir un niveau plus élevé faire attraper l'erreur et chat le fichier. Hacky je sais.
Notez que de cette façon ne faites plus remarquer que la commande a échoué et continuera comme si elle avait réussi. Peut-être que vous pouvez ajouter un "&& faux" à la fin pour compenser cela. – mweerden
J'avais besoin d'ajouter des parenthèses comme: @echo ...; compiler ... || (echo ... && faux) –