您的 port 应遵循 CFLAGS 变量的设置。 这也就是说, port 不应使用绝对的方式来设置这个变量的值, 而罔顾已经存在的设置; 与此相反, 它应该在其值后加入需要的其它值, 这样, 就可以设置全局的联编选项, 令其影响所有的 port 联编过程了。
如果实在无法这样做, 请在 Makefile 中加入 NO_PACKAGE=ignores cflags。
下面的 Makefile 例子, 可以帮助我们理解如何遵循 CFLAGS 的设置。 注意所用的 +=:
CFLAGS+= -Wall -Werror
下面是一个未能遵循 CFLAGS 设置的例子:
CFLAGS= -Wall -Werror
一般来说, CFLAGS 在 FreeBSD 系统中是在 /etc/make.conf 里配置的。 第一个例子在 CFLAGS 变量中增加了一些参数, 并保持了所有系统预定义的标志。 而第二个例子, 则会覆盖掉任何先前定义的参数。
您应从第三方软件的 Makefile 中去掉特殊的优化设置。 系统的 CFLAGS 给出了全系统范围内的优化设置参数。 下面是一个未经修改的 Makefile 实例:
CFLAGS= -O3 -funroll-loops -DHAVE_SOUND
如果使用系统的优化参数, 则 Makefile 中的设置应该类似下面这样:
CFLAGS+= -DHAVE_SOUND