Plusieurs intervenants ont suggéré l'utilisation d' make -pn
, ce qui permet d'imprimer la base de données de règles, mais de ne pas exécuter quoi que ce soit -- plus ou moins. Le problème avec cette approche est que l' -n
n'a toujours invoquer toutes récursive fait, et il n'a toujours beaucoup plus de travail que nécessaire, parce qu'il affiche chaque commande qu'il aurait invoqué dans un build. Une solution plus efficace serait de créer un trivial makefile, le mannequin.mk, avec ce contenu:
__all_targets__: ; #no-op
Maintenant invoquer faire comme make -p -f Makefile -f dummy.mk __all_targets__
. Sur toute importante de construction, la différence dans le montant de la sortie générée par faire est important. Par exemple:
$ gmake -pn | wc
138985 2632330 69612711
$ gmake -f Makefile -f /tmp/dummy.mk -pn __all_targets__ | wc
21673 93437 878985
Le temps d'exécution est nettement mieux ainsi -- 2.063 s pour la première version, 0.059 s pour le second.