OpenBSD manual page server

Manual Page Search Parameters

BSD.PORT.ARCH.MK(5) File Formats Manual BSD.PORT.ARCH.MK(5)

bsd.port.arch.mkports tree Makefile fragment, concerned with arch issues

# Set up such as
MULTI_PACKAGES = -main -special
ONLY_FOR_ARCHS-special = i386


.include <bsd.port.arch.mk>

#some more lines such as
.if ${BUILD_PACKAGES:M-special}
CONFIGURE_ARGS += --enable-special
.endif


.include <bsd.port.mk>

bsd.port.arch.mk holds the logic used for arch-dependent builds in the ports tree. It is normally included as part of the larger bsd.port.mk(5), but it is also available separately for ports that require it.

bsd.port.arch.mk assumes the following variables are already defined:

MULTI_PACKAGES
 
FLAVOR
 
FLAVORS
 
PSEUDO_FLAVORS
 
 
 
and optionally, if the default won't be appropriate

It will set up the following variables for use in the rest of the Makefile:

Most importantly, BUILD_PACKAGES will be correctly set up, taking ONLY_FOR_ARCHS[-<sub>] and NOT_FOR_ARCHS[-<sub>] limitations into account, as well as pseudo-flavors.

Note that thanks to the way make(1) variables are evaluated, a setup such as

ONLY_FOR_ARCHS-foo = ${LP64_ARCHS}
.include <bsd.port.arch.mk>

is perfectly admissible, since ONLY_FOR_ARCHS-foo will be used only after LP64_ARCHS is defined.

Also, you do not need to explicitly include bsd.port.arch.mk just to define

ONLY_FOR_ARCHS = ${LP64_ARCHS}

since bsd.port.mk does define arch constants before evaluating ONLY_FOR_ARCHS. A more detailed description of each variable is available in bsd.port.mk(5).

All the constant values ARCH, ALL_ARCHS, COMPILER_VERION, GCC3_ARCHS, GCC4_ARCHS, LP64_ARCHS, NO_SHARED_ARCHS and PROPERTIES are also available from MODULES and from ${.CURDIR}/../Makefile.inc. Note that due to historical accident, NO_SHARED_LIBS is not such a constant. Test PROPERTIES to assert whether a given platform supports shared libraries.

bsd.port.mk(5)

bsd.port.arch.mk was split from bsd.port.mk(5) in OpenBSD 5.1.

August 10, 2013 OpenBSD-5.7