NAME
bsd.port.arch.mk —
ports 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.
- multi-packages ports that need to remove some subpackages based on pseudo-flavors or architecture constraints.
- ports that need to make explicit tests on arch-dependent constants.
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>]
It will set up the following variables for use in the rest of the Makefile:
ARCHALL_ARCHSAPM_ARCHSBE_ARCHSCLANG_ARCHSCOMPILER_VERSIONCX11_ARCHSDEBUGINFO_ARCHSGCC3_ARCHSGCC4_ARCHSGCC49_ARCHSGO_ARCHSLE_ARCHSLIBCXXLLD_ARCHSLLD_EMULLLVM_ARCHSLP64_ARCHSLUAJIT_ARCHSMONO_ARCHSOCAML_NATIVE_ARCHSOCAML_NATIVE_DYNLINK_ARCHSPROPERTIESRUST_ARCHSIGNORE-<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_VERSION,
GCC3_ARCHS, GCC4_ARCHS,
LP64_ARCHS and PROPERTIES
are also available from MODULES and from
${.CURDIR}/../Makefile.inc.
SEE ALSO
HISTORY
bsd.port.arch.mk was split from
bsd.port.mk(5) in
OpenBSD 5.1.