unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OpenBSD-5.7)
Page:
Section:
Apropos / Subsearch:
optional field

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

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 <&lt;bsd.port.arch.mk>&gt;

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

     .include <&lt;bsd.port.mk>&gt;

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.

     o   multi-packages ports that need to remove some subpackages based on
         pseudo-flavors or architecture constraints.

     o   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>]
     and optionally, if the default won't be appropriate
           NO_SHARED_LIBS
           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
           LP64_ARCHS
           NO_SHARED_ARCHS
           NO_SHARED_LIBS
           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 avail-
     able 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 his-
     torical accident, NO_SHARED_LIBS is not such a constant.  Test PROPERTIES
     to assert whether a given platform supports shared libraries.

SEE ALSO
     bsd.port.mk(5)

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

BSD                             August 10, 2013                            BSD