make -d
devrait vous donner plus assez d'informations pour déboguer votre makefile.
Attention : l'analyse des résultats demandera un certain temps et des efforts, mais le fait de charger les résultats dans votre éditeur préféré et d'effectuer des recherches vous aidera beaucoup.
Vous pouvez réduire considérablement la quantité de sorties de débogage si vous spécifiez la cible spécifique qui vous intéresse. Ainsi, si vous n'êtes intéressé que par le dodgy
au lieu de simplement make -d
qui peut faire une centaine de choses différentes, essayez :
make clean
make -d dodgy
(en supposant que vous ayez un clean
cible bien sûr).
Le site make --debug
est identique à make -d
mais vous pouvez également spécifier :
make --debug=FLAGS
où les drapeaux peuvent être :
-
a
pour tout débogage (comme make -d
et make --debug
).
-
b
pour le débogage de base.
-
v
pour un débogage de base légèrement plus verbeux.
-
i
pour les règles implicites.
-
j
pour les informations d'invocation.
-
m
pour information lors des remakes de makefile.
On dirait que make --debug=b
est la meilleure option pour ce dont vous avez besoin, comme le montre la transcription suivante :
pax@paxbox> cat makefile
c:a b
touch c
pax@paxbox> touch a b ; make
touch c
pax@paxbox> make
make: 'c' is up to date.
pax@paxbox> touch a ; make --debug=b
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc. Blah, blah, blah.
Reading makefiles...
Updating goal targets....
Prerequisite 'a' is newer than target 'c'.
Must remake target 'c'.
touch c
Successfully remade target file 'c'.
0 votes
Il n'y a pas un mode verbeux ? Et ne pouvez-vous pas simplement entrer
echo
déboguer sur chaque cible pour le découvrir ?