Порт должен принимать во внимание переменную 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 | Уровень выше | Библиотеки потоков |