Как linux kernel Makefile понимает .config?

Как linux kernel Makefile понимает .config? У него есть парсер файла defconfig? Он должен производить много #defines для каждой включенной опции из defconfig, а также поддерживать много мелких Makefile, которые скомпилированы или нет, на основе директив в файле .config.

One Solution collect form web for “Как linux kernel Makefile понимает .config?”

Синтаксис файла .config совместим с make; например, строка типа CONFIG_CRC16=m устанавливает переменную make CONFIG_CRC16 в значение m . Он анализируется make и включен косвенно в файл Makefile :

  • Makefile содержит -include include/config/auto.conf
  • include/config/auto.conf путем рекурсивного вызова Makefile на цели silentoldconfig .

Условная компиляция файлов выполняется в основном путем игры с целевыми именами: make-файлы включают такие правила, как

 obj-$(CONFIG_CRC16) += crc16.o 

Таким образом, целевой obj-y строит все объекты, которые включены как встроенные параметры конфигурации, и obj-m строит все объекты, которые включены в качестве модулей. Существуют также условные директивы в make-файлах для более сложных случаев.

Для условной компиляции на языке C исходные файлы C включают include/generated/autoconf.h который содержит строки типа #define CONFIG_CRC16_MODULE 1 . Этот файл создается из include/config/auto.conf с помощью программ, вызываемых целями xxxconfig ( scripts/kconfig/conf для пакетных целей, таких как oldconfig , scripts/kconfig/qconf для xconfig и т. Д.); исходный код для этого – scripts/kconfig/confdata.c который выполняет очень простую обработку текста.

  • Не удается установить драйвер в Arch
  • Запустить запуск демона с помощью Linux
  • как регистрировать даты перезагрузки
  • Почему пользователь sudo может использовать sched_setscheduler SCHED_RR, а root не может?
  • Должен ли я записывать ошибки вверх по течению, моим менеджерам распространения или тому и другому?
  • Linux и Unix - лучшая ОС в мире.