make -d
должно дать вам больше информации, достаточной для отладки вашего make-файла.
Имейте в виду: анализ выходных данных займет некоторое время и усилия, но загрузка выходных данных в ваш любимый редактор и выполнение поиска очень помогут.
Вы можете значительно уменьшить объем отладочной информации, если укажите конкретную цель, которая вас интересует. Так что, если вас интересует только цель dodgy
, а не просто make -d
, что может привести к сотне вещи, попробуйте:
make clean
make -d dodgy
(если, конечно, у вас есть цель clean
).
make --debug
идентичен make -d
, но вы также можете указать:
make --debug=FLAGS
где флаги могут быть:
a
для всей отладки (аналогично make -d
и make --debug
).
b
для базовой отладки.
v
для немного более подробной базовой отладки.
i
для неявных правил.
j
для информации о вызове.
m
для информации во время римейков make-файла.
Похоже, make --debug=b
- лучший вариант для того, что вам нужно, как показано в следующей расшифровке:
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'.