12.10. Использование `CFLAGS`
Пред. | Глава 12. Что делать нужно, и что делать нельзя | След.

## 12.10. Использование `CFLAGS`

Порт должен принимать во внимание переменную `CFLAGS`. Под этим мы подразумеваем, что порт ни в коем случае не должен устанавливать значения этих переменных, переопределяя имеющиеся значения; вместо этого можно добавлять нужные значения к уже имеющимся. Это связано с тем, что параметры построения, относящиеся ко всем портам, могут быть заданы глобально.

Если порты не учитывают значения этой переменной, добавьте строку `NO_PACKAGE=ignores cflags` в файл `Makefile`.

Далее следует пример файла `Makefile`, использующего переменную `CFLAGS`. Обратите внимание на использование символов `+=`:

CFLAGS+= -Wall -Werror

А вот пример, в котором не учитывается значение переменной `CFLAGS`:

CFLAGS= -Wall -Werror

В системе FreeBSD переменная `CFLAGS` определена в файле `/etc/make.conf`. В первом примере к переменной `CFLAGS` добавляются дополнительные флаги, при этом сохраняются все определения, данные ранее на уровне системы. Во втором примере всё, что было задано ранее, игнорируется.

Из сторонних файлов `Makefile` следует удалить флаги оптимизации. Общесистемные флаги оптимизации находятся в системной переменной `CFLAGS`. Пример из немодифицированного `Makefile`:

CFLAGS= -O3 -funroll-loops -DHAVE_SOUND

При использовании системных флагов оптимизации `Makefile` станет похожим на следующий пример:

CFLAGS+= -DHAVE_SOUND

Пред. | Наверх | След.
12.9. Работа как с `CC`, так и `CXX` | Начало | 12.11. Библиотеки потоков

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.