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

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

  • Перечислить допустимые значения для mknod
  • Можно ли увидеть мертвые успехи?
  • Запустить запуск демона с помощью Linux
  • как регистрировать даты перезагрузки
  • Не удается установить драйвер в Arch
  • Могу ли я обновить свое ядро ​​Linux с 2.6.32 до 3.0.7?
  • Должен ли я записывать ошибки вверх по течению, моим менеджерам распространения или тому и другому?
  • debian не может установить исходный код ядра
  • 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 который выполняет очень простую обработку текста.

    Interesting Posts

    Характеристики полосы пропускания, CPU и памяти возвращаются в одной строке от терминала

    Что такое «подрезы»?

    Резервное копирование файлов с помощью команды tar и индикатора выполнения?

    В awesome window manager, как я могу привязать ключевые привязки к событиям клавиатуры?

    Визуальное сглаживание не работает

    Почему бы не использовать псевдоним в составных командах?

    несколько сообщений systemd-fcsk при загрузке Debian 8.1

    Не удается подключиться к беспроводной сети

    Недопустимый путь сборки для создания драйвера

    Как устранить ошибку загрузки загрузочного диска сети после замены оборудования?

    Можно ли настроить linux в качестве сервера или рабочей станции в DCS и как?

    Сохранение возможностей завершения вкладок в файл

    Что происходит, когда Редхат говорит: «Больше не клонов RHEL!»

    Загружаются и выгружаются модули драйвера автоматически?

    Любая причина НЕ запускать Linux в виртуальной машине все время?

    Linux и Unix - лучшая ОС в мире.