[OpenBSD]

Manual Page Search Parameters

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

NAME

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

SYNOPSIS

# 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>

DESCRIPTION

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
 
NOT_FOR_ARCHS[-<sub>]
 
ONLY_FOR_ARCHS[-<sub>]
 
and optionally, if the default won't be appropriate
IGNORE[-<sub>]
 
It will set up the following variables for use in the rest of the Makefile:
ARCH
 
ALL_ARCHS
 
APM_ARCHS
 
BE_ARCHS
 
COMPILER_VERSION
 
GCC3_ARCHS
 
GCC4_ARCHS
 
LE_ARCHS
 
LIBCXX
 
LP64_ARCHS
 
PROPERTIES
 
IGNORE-<sub>
 
BUILD_PACKAGES
 
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 and PROPERTIES are also available from MODULES and from ${.CURDIR}/../Makefile.inc.

SEE ALSO

bsd.port.mk(5)

HISTORY

bsd.port.arch.mk was split from bsd.port.mk(5) in OpenBSD 5.1.
April 11, 2017 OpenBSD-current