Makefile (s) debug: какой файл / строка вызывает команду? - PullRequest
3 голосов
/ 26 декабря 2011

Я сталкиваюсь с ошибкой в ​​системе сборки make-файла (Android построен под Linux) - некоторые файлы удаляются командой 'rm', и я вижу эту команду в журнале сборки.

Какя могу найти точную строку в make-файлах, которая вызывает 'rm'?Есть ли какой-нибудь автоматизированный метод?

Ответы [ 3 ]

4 голосов
/ 26 декабря 2011

Для GNU Make вы можете сделать следующий трюк:

__shell := $(SHELL)
SHELL = \
    $(warning making '$@'$(if $^, from '$^')$(if $?, because of '$?'))$(__shell)

SHELL переменная раскрывается каждый раз, когда Make вызывает субоболочку для выполнения рецепта.В этих строках он заменяется таким образом, чтобы при каждом расширении он печатал цель, ее предпосылки и предпосылки, более новые, чем цель.Также к каждому сообщению отладки добавляется файл и номер строки выполняемого правила.

Тот же метод используется в GMD для установки точек останова для определенных целей.

1 голос
/ 26 декабря 2011

Предполагая, что make является Gnu make , вы также можете передать некоторые параметры отладки , например --debug=b (базовые сообщения отладки, очень часто) или --debug=all что совпадает с -d

Некоторые файлы могут быть удалены, поскольку они являются промежуточными . Читайте также о вторичных файлах и драгоценных файлах в make

0 голосов
/ 26 декабря 2011

Вы можете попробовать сделать -d -w, а затем выполнить grep вашего файла из огромного количества строк вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...