Есть ли способ заставить GNU make напечатать «обратную трассировку» целей, которые привели к выполнению команды в случае сбоя? Я регулярно сталкиваюсь с сильно запутанными make-файлами, решая проблемы с переносимостью, создавая программное обеспечение в новой системе, и мне кажется, что это должно быть чрезвычайно простой задачей для make, которая очень помогла бы в отладке, но я не могу найти способ запросить Это. То, что я хотел бы видеть, это что-то вроде:
gcc: error: ...
make[2]: error: gcc ...
make[2]: error building target bar
make[2]: error building dependency bar for target foo
make[1]: error: make -C subdir
make[1]: error building target subdir
make[1]: error building dependency subdir for target all
...
показывая весь путь зависимости того, как неудачная команда закончилась выполнением.
Есть какой-либо способ сделать это?
bar
для целиfoo
и целиsubdir
, и это может быть создание целиfoo
для целиsubdir
и целиall
, и созданиеsubdir
для целиall
. Я не думаю, что это усложняет создание, чем трассировку стека, просто труднее читать... - person Steve Jessop   schedule 17.02.2011