1.Модуль сборки + зависимости
mmma
медленнее, чем mmm
, так как первый проверяет соответствие всех зависимостей для модуля и, если они не совпадают, компилирует их.Поэтому сначала вместо полной команды make
создайте зависимости, касающиеся интересующего вас модуля, используя следующее:
mmma -j4 adir/yourmoduledir
2.Модуль сборки
Теперь, когда зависимости встретились, продолжайте перекомпиляцию только того модуля, который вам интересен. Пропуск проверки зависимостей экономит драгоценное время.Однако каталог, который вы используете, может содержать несколько целей компиляции.Чтобы скомпилировать одну цель, используйте что-то вроде:
mmm -j4 adir/yourmoduledir:moduletargetname
Пример
Сборка libart
Сборка библиотеки и всех ее зависимостей
Once :
mmma -j4 art/runtime
ModifyКод libart и быстрое его построение:
mmm -j4 art/runtime:libart
Вы получите половину времени компиляции по сравнению с подходом Юрия, так как, например, отладочный вариант libart
(libartd
) будет полностью исключен.
Дальнейшее ускорение?
Вы, конечно, должны включить кэширование, как предложено в aultbot
.
Также, в зависимости от интересующих вас модулей, могут быть цели компиляции, которые вы можете отключить копаниемв make-файлах.Например, libart
компилируется как для хоста, так и для цели.Если вы измените переменную в make-файлах, это может привести к принудительной компиляции только для одного из 2, что сэкономит вам половину времени.
Дополнительная информация: