J'ai structuré quelque chose comme makefile ceci:makefile exécuter une autre cible
all :
compile executable
clean :
rm -f *.o $(EXEC)
j'ai réalisé que je courais toujours « make clean » suivi de « clair » dans mon terminal avant de lancer « faire tout ». J'aime avoir un terminal propre avant d'essayer de passer au crible les erreurs de compilation C++. J'ai donc essayé d'ajouter une troisième cible:
fresh :
rm -f *.o $(EXEC)
clear
make all
Cela fonctionne, mais cela exécute une deuxième instance de make (je crois). Existe-t-il un bon moyen d'obtenir la même fonctionnalité sans exécuter une 2ème instance de make? En fait
@ sas4740.: fondamentalement tout suit '.PHONY:' est traité comme un mot-clé qui est toujours exécuté, alors que les cibles non-fausses sont destinées à être des fichiers. – Dacav
sont des "Conditions préalables à la commande" conditionnelles? pour la cible t2 Je veux d'abord faire t0, que seulement si t0 réussit t1, et seulement si les deux réussissent une tâche en t3 – fantastory
@fantastory, non, je ** pense ** qu'ils sont indépendants. 't2' dépendra de' t0', 't1' et' t3'. Si vous en avez besoin, vous devez mettre 't3' comme requis par' t2', 't1' comme requis par' t3' et 't0' comme requis par' t1'. Cela signifie 3 règles différentes. Vous devriez vérifier ceci, cependant. Je ne suis pas sûr à 100%. – Dacav