/etc/make.conf


make — означает создание, или компиляцию программы на машинном языке из ее исходного кода. Этот процесс обсуждается в главе 11. Файл /etc/make.conf управляет процессом сборки программного обеспечения и позволяет определять параметры, значения которых оказывают влияние на сборку программ. Запомните, все, что будет добавлено в файл make.conf, будет оказывать влияние на сборку всего программного обеспечения в системе, включая и обновления. Это может вызвать ошибки процесса обновления.* Многие параметры в make.conf представляют интерес только для разработчиков.

Если вам желательно определять значения параметров сборки, которые оказывают влияние только на обновление системы, то вместо make.conf следует использовать файл /etc/src.conf.

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

CFLAGS

Задает параметры оптимизации для сборки программ, не относящихся к ядру. Многие другие UNIX-подобные операционные системы предлагают компилировать программное обеспечение с определенными флагами компилятора (compiler flags), или CFLAGS. Такая практика не приветствуется в системе FreeBSD. Системные компоненты, требующие установки определенных флагов, уже имеют необходимые настройки в файлах конфигурации, а настройки для дополнительного программного обеспечения определяются в отдельных файлах. Хотя некоторые администраторы могут порекомендовать другие настройки CFLAGS, любые другие опции Проектом FreeBSD не поддерживаются.

Вообще код FreeBSD лучше всего компилируется без дополнительных параметров. Их применение лишь ухудшит производительность. Если при использовании тех или иных нестандартных флагов программа работает со сбоями, вернитесь к стандартным флагам и пересоберите программу.

COPTFLAGS

Параметры оптимизации COPTFLAGS используются только для сборки ядра. Повторюсь: установки, отличные от принятых по умолчанию, могут привести к созданию неработоспособного ядра.

CXXFLAGS

Параметр CXXFLAGS содержит флаги, которые используются при компиляции исходных текстов, написанных на языке программирования C++. Чтобы добавить в этот параметр инструкции в дополнение к тем, что указаны в параметрах сборки пакета, следует использовать оператор +=. Все, что раньше было сказано о CFLAGS, в равной степени применимо и к CXXFLAGS.

CPUTYPE=i686

Некоторые пакеты программного обеспечения могут быть оптимизированы под различные типы микропроцессоров (CPU). Если указать тип CPU в файле /etc/make.conf, компилятор попытается оптимизировать программное обеспечение под указанный микропроцессор.

Это может положительно сказаться на производительности в случае обновления операционной системы из исходных кодов (глава 13). FreeBSD оптимизирует под конкретный процессор не только саму операционную систему, но и любое программное обеспечение сторонних производителей, которое будет устанавливаться впоследствии.

На отдельной машине всегда устанавливайте значение параметра CPUTYPE в соответствии с фактическим типом микропроцессора. Если сборка производится на одной машине, а затем через NFS экспортируются каталоги /usr/obj и /usr/src для других машин, то чтобы выполнять на них обновление, минуя этап компиляции, устанавливайте значение CPUTYPE равным самому слабому CPU всех систем.

Таблица 10.1. Типы микропроцессоров

Архитектура Подходящие типы
архитектура i386, Intel core2, core, nocona, pentium4m, pentium4, prescott, pentium3m, pentium3, pentium-m, pentium2, pentiumpro, pentium-mmx, pentium, i486, i386
архитектура i386, VIA c3, c3-2
архитектура i386, AMD opteron, athlon64, athlon-mp, athlon-xp, athlon-4, athlon-tbird, athlon, k8, k7, k6-2, k6, k5
архитектура amd64, Intel nocona, prescott, core, core2
архитектура amd64, AMD opteron, athlon64

INSTALL=install -C

По умолчанию при установке собранной программы система FreeBSD записывает новый исполняемый файл поверх старого. Параметр install -С заставляет инсталлятор install(1) сравнивать новую версию программы со старой. Если они идентичны, то новый исполняемый файл не устанавливается. Благодаря этому предотвращается бессмысленное изменение значения времени последнего изменения файлов в /usr/include, и программа make(1) не будет считать, что программа устарела только потому, что заголовочные файлы были заменены более новыми, хотя и совершенно идентичными версиями. Кроме того, за счет этого можно также ускорить процесс обновления и сократить количество операций записи на диск. Последнее обычно не имеет большого значения, но при необходимости этим можно воспользоваться.

Примечание
В главе 11 мы будем рассматривать некоторые параметры make.conf, полезные для коллекции портов, а в главе 20 поговорим о некоторых необычных параметрах, которые помогут уменьшить объем операционной системы FreeBSD.

Комментарии запрещены.