Перекомпиляция OpenWRT - какие команды make нужны для включения любых изменений при экономии времени на незатронутые файлы - PullRequest
0 голосов
/ 07 февраля 2019

Я изучаю влияние на мой маршрутизатор различных изменений источника на OpenWRT.

Я клонировал тег соответствующего выпуска в новую локальную ветку с помощью git.Я планирую взломать код и посмотреть, нравятся ли мне какие-либо изменения - если я это сделаю, я сделаю официальные патчи для них позже.Сборка компилируется счастливо.Но так как я изменяю тест-компиляцию, мне неясно, как минимизировать работу, которую make должна выполнить, чтобы перекомпилировать ее с любыми изменениями.

Я знаю, что make предназначен длясвести к минимуму перекомпиляцию путем обнаружения файлов, которые необходимо загрузить, по сравнению с уже загруженными / существующими файлами, и файлы, измененные по сравнению с файлами без изменений.Но я не могу понять, какие make команды нужно выполнить (make clean / make distclean / other), чтобы выполнить очистку после компиляции для следующей компиляции, без учета устаревших артефактов из предыдущего запуска.

Пример:

  • Я запускаю make menuconfig, настраиваю базовые варианты (нет смысла делать больше на этом этапе), затем make download, затем make -j6 -V=sc -d --trace (излишний и, вероятно, дублирующий, я знаю, но этоОК)
  • Если сборка работает, я получаю файл .squashfs в выходном каталоге.Yay!
  • Теперь я хочу изменить патч в git dir.Или, возможно, измените несколько строк в некоторых из загруженных инструментов / файлов python в build_dir, которые были загружены / созданы предыдущим запуском.Например, make загружает и создает файлы в ~/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/hostapd-wpad-mini, я их редактирую, а не добавляю патчи, потому что это проще для специального тестирования. (Я согласен, что я мог бы добавить исправления для последних и разрешить их повторную загрузку, но при перекомпиляции на разовой основе для тестирования мне проще + быстрее, если make сохраняетранее загруженные версии и собирается из модифицированных версий без необходимости их повторной загрузки или создания патчей для них.)
  • Теперь я хочу перекомпилировать.Но я хочу быть уверен, что make заметит мои изменения в сценариях, загруженных инструментах и ​​загруженных файлах данных, если таковые имеются, и создаст новую сборку, которая включает их, без необходимости повторной загрузки неизмененных файлов, удаления измененных файлов (поэтому яприходится каждый раз менять их с помощью патчей), и обязательно перезаписывать существующие выходные файлы.

Мне не совсем понятно, что make обычно удаляет и проверяет, или как это было настроено специально для OpenWRT, поэтому я надеюсь, что вопрос действителен, как задано.

Какие команды я должен выполнить, чтобы убедиться, что моя новая сборка содержит изменения, но "принимает как должное" все найденные файлы, которые были найдены, были загружены, но восстанавливает что-либо на их основе, если они были отредактированы?

...