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

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

  • Каков самый чистый способ запланировать команду autoexec.bat как команду в Linux?
  • как регистрировать даты перезагрузки
  • Почему пользователь sudo может использовать sched_setscheduler SCHED_RR, а root не может?
  • Почему Linux-игры менее эффективны, чем Win 7?
  • Запустить запуск демона с помощью Linux
  • Перечислить допустимые значения для mknod
  • Запуск установщика .bin в графическом режиме
  • Не удается установить драйвер в Arch
  • 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

    бинарный тест

    CentOS 6 – Нет обновлений

    Преодоление промежуточного ЦС в Linux?

    Возможно ли создать RAID-массив mdadm с параметрами макета и ближайшего макета?

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

    Arch Linux – NetworkManager не может настроить точку доступа

    Почему ошибки OS X `install` на перенаправленном входе, когда одна и та же версия` install` на linux работает нормально?

    Как переместить файл рекурсивно на основе размера и структуры

    apt-get не удается получить архивы

    как проверить, что находится в свопе?

    Не удается установить драйвер для BCM4312 с Fedora 23, без подключения к Интернету

    Я хотел бы сделать конечный загрузочный USB с несколькими дистрибутивами на нем. Как?

    Можно ли использовать virtfs / 9p для совместного использования одной и той же главной папки с несколькими гостями?

    Является родителем оболочки всех процессов в Linux

    ssh на сервер с использованием .ssh / config alias и запускать псевдоним на сервере в одно и то же время

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