portconf

portconf is a utility to set per-port Makefile options. Configurations are set in /usr/local/etc/ports.conf.

make config

When using portconf, anytime you run make config and set options manually, they will override any changes made in portconf's configuration. The two configurations will be cumulative, with the settings from make config overriding portconf.

As a result, best practice would be to put all port-specific settings in ports.conf, and not use make config.

Run make rmconfig to reset any settings created by make config. This will allow portconf to use all of it's options.

Examples

The port itself provides some sample syntax:

# this is a comment
*: NOPORTDOCS
editors/openoffice-3: WITH_CCACHE|LOCALIZED_LANG=it
print/ghostscript-* print/lpr-wrapper: A4
sysutils/fusefs-kmod*: !KERNCONF | !NOPORTDOCS
www/firefox-i18n: WITHOUT_SWITCHER | FIREFOX_I18N=fr it
x11/fakeport: CONFIGURE_ARGS=--with-modules="aaa bbb ccc"

Here's an example that could work with a BAMP stack:

databases/rrdtool: WITHOUT_PERL_MODULE
graphics/ImageMagick-nox11: WITHOUT_FREETYPE | WITHOUT_FONTCONFIG | WITHOUT_JASPER | WITHOUT_JBIG | WITHOUT_LCMS2 | WITHOUT_LQR | WITHOUT_PDF | WITHOUT_PERL | WITHOUT_TIFF | WITHOUT_WMF | WITHOUT_FFTW | WITHOUT_FPX | WITHOUT_SVG | WITHOUT_WEBP
graphics/php53-gd: WITHOUT_TRUETYPE | WITHOUT_T1LIB
mail/postfix: WITH_TLS
net-mgmt/collectd5: WITHOUT_BIND | WITH_APACHE | WITH_MYSQL | WITHOUT_PING | WITHOUT_SNMP
www/apache22-worker-mpm: WITHOUT_DAV | WITHOUT_DAV_FS | WITHOUT_CGI | WITH_SUEXEC