Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BUILDFLAGS.CONF(5)	       File Formats Manual	      BUILDFLAGS.CONF(5)

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).

	   .sinclude "/usr/local/share/bsdadminscripts2/buildflags.mk"

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:

     /usr/local/share/bsdadminscripts2/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  possi-
     ble 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.  '/usr/ports'  is  a  link  to  '/mnt/vault/ports' a location like
     '/usr/ports/x11*' will be resolved into '/mnt/vault/ports/x11*'.	In  this
     case '/usr/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:

	   /usr/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 com-
     ments  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:

	   /usr/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.

SEE ALSO
     buildflags.awk(1), buildflags.mk(1) make(1)

FILES
     ${HOME}/.buildflags.conf
	     User specific build settings.

     /usr/local/etc/buildflags.conf
	     Default location of the buildflags.conf.

     /usr/local/etc/buildflags.conf.sample
	     An example configuration file.

HISTORY
     The buildflags.conf file first appeared in the bsdadminscripts-2.0  collec-
     tion.

AUTHORS
     Dominic Fandrey <freebsd@k4m1.org>

FreeBSD ports 15.quarterly	18 November, 2023	      BUILDFLAGS.CONF(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=buildflags.conf&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help