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:
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.
SEE ALSO
HISTORY
bsd.port.arch.mk
was split from
bsd.port.mk(5) in OpenBSD 5.1.