Есть ли опция makefile, чтобы удалить только файлы obj, но оставить цели нетронутыми? - PullRequest
0 голосов
/ 11 августа 2011

Мне не хватает места на диске, когда я пытаюсь сравнить разные версии Android (каждый из них занимает около 6-7G после сборки). Я подумал, что есть опция make (похожая на make clean), которая удаляет все промежуточные файлы .obj и оставляет цели (ы) в покое. Но я не мог вспомнить, что это такое; или есть такая опция?!

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Может быть, директива .INTERMEDIATE поможет. Из документации GNU Make (10.4 Цепочки неявных правил):

Второе отличие состоит в том, что если make' _does_ create B in order to update something else, it deletes B later on after it is no longer needed. Therefore, an intermediate file which did not exist before make 'также не существует после того, как make'. make' сообщит об удалении печатая команду `rm -f ', показывающую, какой это файл удаление.

Обычно файл не может быть промежуточным, если он указан в Makefile в качестве цели или предпосылки. Тем не менее, вы можете явно пометить файл как промежуточный, указав его как обязательное условие специальная цель `.INTERMEDIATE '. Это вступает в силу, даже если файл прямо упоминается как-то иначе.

1 голос
/ 11 августа 2011

Makefile будет делать все, что написано.Цель clean - это соглашение для make-файлов, а не функция Make.У make-файла не должно быть правила clean;если есть правило clean, и если оно написано правильно, оно очистит файлы, которые вы хотели очистить, если оно написано плохо, нет предела тому, насколько плохо оно может испортить все.

Есливы пишете (или редактируете) make-файл, вы можете вставить правило для удаления объектных файлов.Если вы используете make-файл, написанный кем-то другим, либо у него есть такое правило, либо нет.

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