MAKE.CONF(5) FreeBSD File Formats Manual MAKE.CONF(5)
ИМЯ
make.conf -- информация для построения системы
ОПИСАНИЕ
Файл make.conf содержит общесистемные параметры, которые будут применяться к каждому построению с использованием make(1) и стандартного файла sys.mk. Это достигается следующим образом: make(1) обрабатывает системный Makefile sys.mk после любого другого файла по умолчанию, а sys.mk включает make.conf.
Файл make.conf использует стандартный синтаксис Makefile. Однако, make.conf не должен содержать никаких зависимостей по отношению к make(1). Наоборот, make.conf задает make(1) переменные, которые управляют действием других Makefile's.
По умолчанию make.conf располагается в /etc/make.conf, хотя альтернативное местоположение может быть указано make(1) переменной __MAKE_CONF. Возможно, вам придется переопределить расположение make.conf, если общесистемные настройки не подходят для конкретной сборки. Например, настройка __MAKE_CONF на /dev/null эффективно сбрасывает контроль всех сборок к действию по умолчанию.
Главная цель make.conf заключается в контролировании компилирования исходников FreeBSD, документации и портированных приложений, которые обычно расположены в /usr/src, /usr/doc и /usr/ports. Как правило, системный администратор создает make.conf, когда значения некоторых управляемых переменных должны быть изменены с их значения по умолчанию.
Процедура системной сборки происходит в четырех широких областях: мир, ядро, документация и порты. Переменные, установленные в make.conf, могут быть применимы в одной, двух или во всех четырех этих областях. Кроме того, управляющие переменные могут быть заданы через ключ -D при вызове make(1) или в environ(7).
Ниже перечислены короткие пояснения для каждой переменной, которые вы можете указывать во время сборки. Значения, присвоенные переменным типа bool, игнорируются; само по себе обозначение этой переменной содержит в себе значение.
ALWAYS_CHECK_MAKE (bool)
Указывает make(1) проверять наличие самого главного Makefile в дереве исходников (обычно в /usr/src). Как правило, она задается только при сборке мира и сборки целей мира при обновлении с более ранних версий FreeBSD.
CFLAGS (str)
Управление настройкой копилятора, когда компилируется C код. Уровни оптимизации, отличные от -O и -O2, не поддерживаются. BDECFLAGS, предложенные Bruce Evans для разработки и тестирования, используются, чтобы задать настройки для gcc(1), они могут быть использованы, если задать так:
CFLAGS+=${BDECFLAGS}
CPUTYPE (str)
Контролирует, какой процессор должен быть целевым для генерируемого кода. Этим параметром контролируется процессорозависимая оптимизация в определенном коде (в настоящее время только OpenSSL), также изменяются значения CFLAGS и COPTFLAGS, содержащие соответствующие директивы для gcc(1). Автоматическое переопределние CFLAGS и COPTFLAGS можно запретить, используя соответственно переменные NO_CPU_CFLAGS и NO_CPU_COPTFLAGS. Обратитесь к /usr/share/examples/etc/make.conf для ознакомления с допустимыми опциями CPUTYPE.
CVS_UPDATE (bool)
Укажите, чтобы использовать cvs(1) при обновлении ваших портов командой "make update''.
CXXFLAGS (str)
Контролирует настройки компилятора, когда компилируется C++ код. CXXFLAGS изначально установлен в значение CFLAGS. Если вы хотите добавить значения к CXXFLAGS, используйте "+='' вместо "=''.
DOCSUPFILE (str)
supfile для документации, который будет использользован по команде "make update''. По умолчанию располагается здесь /usr/share/examples/cvsup/doc-supfile.
INSTALL (str)
Команда установки по умолчанию. Для установки только файлов, для которых цель отличается или не существует, используйте:
INSTALL="install -C"
Имейте ввиду, что некоторые Makefile (в том числе /usr/share/mk) могут быть содержать жесткие опции для команды установки.
LOCAL_DIRS (str)
Можно задать список директорий, которые будут прорабатываться, когда выполняется сборка в /usr/src.
MAKE_SHELL (str)
Контролирует shell внутри make(1) для выполнения команд скриптов Makefile's. На текущий момент поддерживаются sh(1), ksh(1) и csh(1).
MAKE_SHELL?=sh
MTREE_FOLLOWS_SYMLINKS (str)
Задайте этот параметр в "-L", чтобы mtree(8) следовал символическим ссылкам.
NO_CPU_CFLAGS (str)
Установка этой переменной будет препятствовать автоматическому добавлению специфичных для процессора флагов компилятора CFLAGS.
NO_CPU_COPTFLAGS (str)
Установка этой переменной будет препятствовать автоматическому добавлению специфичных для процессора флагов компилятора COPTFLAGS.
NO_DOCUPDATE (bool)
Задайте, если не хотите, чтобы дерево документов обновлялось по команде "make update''.
NO_PORTSUPDATE (bool)
Задайте, если не хотите, чтобы дерево портов обновлялось по команде "make update''.
PORTSSUPFILE (str)
Указывает supfile портов, когда используется команда "make update''. По умолчанию это файл /usr/share/examples/cvsup/ports-supfile.
SUP (str)
Указывает местоположение csup(1) или cvsup(1) при выполнении команды "make update''.
SUPFILE (str)
Первый файл supfile, когда выполняется команда "make update''. По умолчанию это файл /usr/share/examples/cvsup/standard-supfile.
SUPFILE1 (str)
Второй файл supfile, когда выполняется команда "make update''. По умолчанию это файл /usr/share/examples/cvsup/secure-supfile.
SUPFILE2 (str)
Третий файл supfile, когда выполняется команда "make update''. По умолчанию это файл /usr/share/examples/cvsup/secure-supfile.
SUPFLAGS (str)
Флаги для команды sup(1), когда выполняется команда "make update''. По умолчанию "-g -L 2".
SUPHOST (str)
hostname sup-сервера, используемый, когда выполняется команда "make update''.
SUP_UPDATE (bool)
Задайте для использования cvsup(1), чтобы обновить ваши порты при выполнении команды "make update''.
СБОРКА ЯДРА
Ниже представлен список параметров, которые применяются только во время сборки ядра:
BOOTWAIT (int)
Задайте время ожидания нажатия клавиши (миллисекунды), по истечении которого загрузится ядро по умолчанию. Нажатие клавишь принимается BIOS'ом, до загрузки с диска, что позволяет пользователю выбрать произвольную загрузку, даже если время установлено в 0.
COPTFLAGS (str)
Управляет настройками компилятора, когда собирается ядро. Оптимизация уровней выше [-O (-O2, ...)] не гарантирует правильной работы.
KERNCONF (str)
Указывает какие конфигурации ядра должны быть собраны командой "${MAKE} buildkernel" и инсталлированы командой "${MAKE} installkernel". Например:
KERNCONF=MINE DEBUG GENERIC OTHERMACHINE
соберет ядра, заданные конфигурационными файлами MINE, DEBUG, GENERIC и OTHERMACHINE; и проинсталлирует ядро, заданное конфигурационным файлом MINE. По молчанию это GENERIC.
MODULES_OVERRIDE (str)
Укажите список модулей, которые вы хотите построить, заместо построения всех модулей.
NO_KERNELCONFIG (bool)
Задайте этот параметр, чтобы не запускалась команда "${MAKE} depend" через команду "${MAKE} buildkernel".
NO_MODULES (bool)
Задайте, чтобы вместе с ядром не собирались модули.
PORTS_MODULES
Задайте список портов, которые вы хотите перестраивать каждый раз, когда собираете ядро.
WITHOUT_MODULES (str)
Задайте список модулей, которые вы не хотите собирать. Внимательно: этот параметр применяется после MODULES_OVERRIDE.
СБОРКА МИРА
Ниже представлен список параметров, которые применяются во время сборки мира:
BOOT_COMCONSOLE_PORT (str)
Адрес порта, для использования консоли, если загрузочные блоки были настроены на использование последовательной консоли вместо клавиатуры/видео карты.
BOOT_COMCONSOLE_SPEED (int)
Скорость передачи данных, при использовании консоли, если загрузочные блоки были настроены на использование последовательной консоли вместо клавиатуры/видео карты.
BOOT_PXELDR_ALWAYS_SERIAL (bool)
Компилирование внутрь кода pxeboot(8), что заставляет использовать последовательную консоль. Такой подход аналогичен использованию ключа -h в boot(8) блоках.
BOOT_PXELDR_PROBE_KEYBOARD (bool)
Компилирование внутрь кода pxeboot(8), что позволяет распознавать клавиатуру. Если ни одна консоль не найдена, то загружается с двойной конфигурационной консолью. Такой подход аналогичен использованию ключа -D в boot(8) блоках.
ENABLE_SUID_K5SU (bool)
Задайте это, если вы хотите использовать утилиты ksu. В противном случае, мир будет собран без задания set-user-ID бита.
ENABLE_SUID_NEWGRP (bool)
Задайте это для установки newgrp(1) с битом set-user-ID. В противном случае, newgrp(1) не сможет изменять группы пользователей.
ENABLE_SUID_SSH (bool)
Задайте это для установки ssh(1) с включенным битом set-user-ID.
LOADER_TFTP_SUPPORT (bool)
По умолчанию pxeboot(8) загрузчик получает доступ к ядру через NFS. Задайте эту опцию и перекомпилируйте /usr/src/sys/boot, чтобы получить доступ к Ядру через TFTP. Это позволяет pxeboot(8) загружать пользовательским BOOTP бездисковое ядро, которое все еще монтирует серверный /, вместо того, чтобы загружать серверное ядро.
LOADER_FIREWIRE_SUPPORT (bool)
Задайте эту опцию и перекомпилируйте /usr/src/sys/boot/i386, чтобы добавить dcons(4) консольный драйвер к loader(8) и разрешить доступ поверх FireWire(IEEE1394), используя dconschat(8). На текущий момент, поддерживаются только i386 и amd64.
MODULES_WITH_WORLD (bool)
Задайте модули, собираемые с системой, заместо ядра.
NO_CLEAN (bool)
Задайте этот параметр для запрета очистки во время команды "make buildworld". Вы не должны использовать этот параметр, пока вы не понимается что он значит.
NO_CLEANDIR (bool)
Задайте этот параметр для запуска "${MAKE} clean'' вместо "${MAKE} cleandir''.
NO_MANCOMPRESS (bool)
manual pages будут собраны без сжатия.
NO_SHARE (bool)
Поддиректория share не будет собрана.
NO_SHARED (bool)
Задайте этот параметр, чтобы /bin и /sbin собрались статически слинкованными, что может быть плохо. Если задан, то все утилиты, которые используют bsd.prog.mk должны быть слинкованы статично.
PPP_NO_NAT (bool)
ppp(8) соберется без поддержки network address translation (NAT).
PPP_NO_NETGRAPH (bool)
ppp(8) соберется без поддержки Netgraph.
PPP_NO_RADIUS (bool)
ppp(8) соберется без поддержки RADIUS.
PPP_NO_SUID (bool)
Задайте этот параметр, чтобы запретить инсталлировать ppp(8) в качестве set-user-ID root программы.
SENDMAIL_*** ...
Отключу сборку Sendmail в src.conf, поэту все параметры, связанные с Sendmail не рассматриваю вообще.
TOP_TABLE_SIZE (int)
top(1) использует хеш-таблицы для имен пользователей. Размер этого хеша может быть настройн в соответствии с числом локальных пользователей. Размер таблицы должно быть простое число в два раза больше количества строк в /etc/passwd. Значение по умолчанию 20011.
WANT_FORCE_OPTIMIZATION_DOWNGRADE (int)
Если параметр задан, то системный компилятор будет собирать с оптимизацией ниже на один уровень. Известно, что gcc(1) -O2 и выше могут вызвать ошибки компиляции.
СБОРКА ДОКУМЕНТАЦИИ
Ниже представлен список параметров, которые применяются во время сборки документации:
DISTDIR (str)
Указывает, где располагаются файлы дистрибутивов. Обычно это папка distfiles в PORTSDIR.
DOC_LANG (str)
Список языков и кодировок, которые собираются и устанавливаются.
PRINTERDEVICE (str)
Формат по умолчанию для документации системы, зависит от вашего принтера. Может быть задан в "ascii" для простых принтеров, или "ps" для postscript или графических принтеров с ghostscript фильтрами, или и то и то.
ФАЙЛЫ
/etc/make.conf
/usr/doc/Makefile
/usr/share/examples/etc/make.conf
/usr/share/mk/sys.mk
/usr/src/Makefile
/usr/src/Makefile.inc1
SEE ALSO
gcc(1), install(1), make(1), src.conf(5), environ(7), ports(7), sendmail(8)
ИСТОРИЯ
make.conf появилься где-то перед FreeBSD 4.0
АВТОРЫ
Это руководство было написано Mike W. Meyer .
BUGS
Параметры, указанные в этом руководстве могут быть устаревшими по отношению к реально доступным параметрам, использующимся на текущий момент в make.conf. Пожалуйста ознакомьтесь с /usr/share/examples/etc/make.conf, в котором перечислены доступные на данный момент параметры.
CAVEATS
Обратите внимание, что MAKEOBJDIRPREFIX и MAKEOBJDIR - переменные среды, и их нельзя определять в make.conf.
FreeBSD 7.2 September 5, 2006 FreeBSD 7.2
P.S.За перевод спасибо Баранову Алексею