DragonFly On-Line Manual Pages
BUILDFLAGS.CONF(1) DragonFly General Commands Manual BUILDFLAGS.CONF(1)
NAME
buildflags.conf - set build options for ports(7), world and everything
DESCRIPTION
The buildflags.conf file is used by buildflags.mk(1) to configure make(1)
jobs.
The intended way to use it is to add the following lines to make.conf(5).
BUILDFLAGS= %%DATADIR%%/buildflags.mk
.if exists(${BUILDFLAGS})
.include "${BUILDFLAGS}"
.endif
SYNTAX
A buildflags.conf file gets parsed into a make file. If you want to make
sure that your syntax is right you can do so by running:
%%DATADIR%%/buildflags.awk buildflags.conf | less
The buildflags.conf syntax only knows four kinds of data:
comments, locations, knobs and variables
COMMENTS
Comments are everything behind a '#'. The only exception is a '#' within
a '"' block.
# This is a comment.
LOCATIONS
A location is a folder in which a make job runs. Locations make it
possible to limit assignments only to certain ports or other build
systems.
A location consists of a path and/or a pattern. The difference between a
path and a pattern is that the pattern will remain untouched and a path
will be resolved as far as possible. Resolving a path means that a path
will be substituted with its physical path.
Several locations can be connected with '&' (logical and) and '|'
(logical or).
If e.g. '%%PORTS%%' is a link to '/mnt/vault/ports' a location like
'%%PORTS%%/x11*' will be resolved into '/mnt/vault/ports/x11*'. In this
case '%%PORTS%%' is the path and '/x11*' the pattern.
Every location is followed by a block that can contain comments, knobs,
variables and other locations. A block is opened with the character '{'
and closed with '}'. Here is an example:
%%PORTS%%/* & !*/work/*{
WITH_IPV6
*/x11/toolkits-gtk20 {WITHOUT_DEBUG}
}
KNOBS
A knob really is a variable with a default assignment:
WITH_DEBUG
!CPUTYPE
This example would set 'WITH_DEBUG=yes' and undefine 'CPUTYPE'. You can
have several knobs in a single line:
WITH_DEBUG !CPUTYPE
VARIABLES
Assigning variables is simply done with an '=' other ways of assignment
known from make(1) like '?=', ':=' or '!=' can also be used. There may
not be spaces in front of a '='.
If the '=' is followed by spaces. The whole trailing line will be
assigned as the value, unless the first character is a '"'. Values may
not contain a '"'. If the value is right behind the '=' only one word
will be assigned, the next word will be treated as a knob or variable.
Here are some examples of valid assignments:
CPUTYPE?="pentium-m" CFLAGS="-O2 -pipe" THREADS=5
SUPFLAGS= -E -g -L 2 -z
DIRECTIVES
Native make(1) directives can be included. Apart from putting trailing
comments in front of them and removing preceding spaces they are not
changed. Make directives begin with a '.', among them are '.if',
'.include' and '.for'.
The following is a valid example:
%%PORTS%%/* {
.if defined(WANT_I386)
CFLAGS+= -m32
LDCONFIG+= -32
.endif
}
WARNINGS
There are things that should not be done.
WRKDIRPREFIX
Do not set the WRKDIRPREFIX directive in buildflags.conf. Doing so would
break updating of bsdadminscripts(1) in the FreeBSD ports(7) collection.
COMPATIBILITY
The script has been tested on FreeBSD 7.2-PRERELEASE.
SEE ALSO
buildflags.awk(1), buildflags.mk(1), bsdadminscripts(1), make(1)
FILES
%%PREFIX%%/etc/buildflags.conf
Default location of the buildflags.conf.
%%PREFIX%%/etc/buildflags.conf.sample
An example configuration file.
HISTORY
The buildflags.conf file first appeared in the bsdadminscripts-2.0
collection.
AUTHOR
Dominic Fandrey <kamikaze@bsdforen.de>
DragonFly 6.5-DEVELOPMENT April 23, 2009 DragonFly 6.5-DEVELOPMENT