Руководство FreeBSD по созданию портов
Пред. | Глава 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

Пред. | Начало | След.
Работа как с `CC`, так и `CXX` | Уровень выше | Библиотеки потоков

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