View | Details | Raw Unified | Return to bug 202491
Collapse All | Expand All

(-)en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml (+78 lines)
Lines 4015-4020 Link Here
4015
	    must be added to <varname>OPTIONS_DEFINE</varname>.</para>
4015
	    must be added to <varname>OPTIONS_DEFINE</varname>.</para>
4016
	</note>
4016
	</note>
4017
      </sect3>
4017
      </sect3>
4018
4019
      <sect3 xml:id="makefile-options-implies-prevents">
4020
	<title>Options Dependencies/Conflicts</title>
4021
4022
	<para>Where options have dependencies or conflicts between
4023
	  each other, these should be registered using the
4024
	  <varname><replaceable>OPT</replaceable>_IMPLIES</varname>
4025
	  and <varname><replaceable>OPT</replaceable>_PREVENTS</varname>
4026
	  macros.</para>
4027
4028
	<sect4>
4029
	  <title><varname><replaceable>OPT</replaceable>_IMPLIES</varname></title>
4030
4031
	  <para>If an option depends on other options, these should be
4032
	    registered by a space separated list using the
4033
	    <replaceable>OPT</replaceable>_IMPLIES macro.  If the
4034
	    option with dependencies is enabled, the dependent options
4035
	    named in <replaceable>OPT</replaceable>_IMPLIES will get
4036
	    enabled automatically.</para>
4037
4038
	  <para>For example, if <replaceable>OPT1</replaceable>
4039
	    depends on <replaceable>OPT2</replaceable> and
4040
	    <replaceable>OPT3</replaceable>:</para>
4041
4042
	  <programlisting>OPT1_IMPLIES=	OPT2 OPT3</programlisting>
4043
4044
	  <note>
4045
	    <para>No notification or warning is provided in the build
4046
	      output or the options configuration dialog to alert the
4047
	      user that an option has been automatically
4048
	      enabled.</para>
4049
	  </note>
4050
	</sect4>
4051
4052
	<sect4>
4053
	  <title><varname><replaceable>OPT</replaceable>_PREVENTS</varname></title>
4054
4055
	  <para>If options conflict with each other, these should be
4056
	    registered by a space separated list using the
4057
	    <replaceable>OPT</replaceable>_PREVENTS macro.  When an
4058
	    option is enabled, if any of the conflicting options named
4059
	    in <replaceable>OPT</replaceable>_PREVENTS are also
4060
	    enabled, the port build will produce an error which
4061
	    explains the conflicting options.</para>
4062
4063
	  <para>For example, if <replaceable>OPT1</replaceable>
4064
	    conflicts with <replaceable>OPT2</replaceable> and
4065
	    <replaceable>OPT3</replaceable>:</para>
4066
4067
	  <programlisting>OPT1_PREVENTS=	OPT2 OPT3</programlisting>
4068
4069
	  <note>
4070
	    <para>No notification is provided in the options
4071
	      configuration dialog to alert the user that conflicting
4072
	      options have been enabled, however an error will be
4073
	      generated during the port build explaining the
4074
	      conflict.</para>
4075
	  </note>
4076
4077
	  <para>If options are conflicting because a maximum of one
4078
	    option should be enabled in a list, then the
4079
	    <literal>OPTIONS_SINGLE</literal> or
4080
	    <literal>OPTIONS_RADIO</literal> macros should be used
4081
	    in preference to the <replaceable>OPT</replaceable>_PREVENTS
4082
	    macro.  The <replaceable>OPT</replaceable>_PREVENTS macro
4083
	    should be used for more complicated conflict scenarios,
4084
	    for example:</para>
4085
4086
	  <programlisting>OPTIONS_DEFINE= PORTS_SSL
4087
OPTIONS_SINGLE= GSSAPI
4088
OPTIONS_SINGLE_GSSAPI=	GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
4089
4090
# Ensure port does not link with libcrypto.so from both base and ports
4091
GSSAPI_BASE_PREVENTS= PORTS_SSL</programlisting>
4092
4093
	</sect4>
4094
4095
      </sect3>
4018
    </sect2>
4096
    </sect2>
4019
4097
4020
    <sect2 xml:id="makefile-options-auto-activation">
4098
    <sect2 xml:id="makefile-options-auto-activation">

Return to bug 202491