]> git.kernelconcepts.de Git - karo-tx-redboot.git/blobdiff - doc/html/cdl-guide/ref.active-if.html
Cleanup CVS ipmorted branch
[karo-tx-redboot.git] / doc / html / cdl-guide / ref.active-if.html
diff --git a/doc/html/cdl-guide/ref.active-if.html b/doc/html/cdl-guide/ref.active-if.html
deleted file mode 100644 (file)
index 3949bb8..0000000
+++ /dev/null
@@ -1,428 +0,0 @@
-<!-- Copyright (C) 2003 Red Hat, Inc.                                -->
-<!-- This material may be distributed only subject to the terms      -->
-<!-- and conditions set forth in the Open Publication License, v1.0  -->
-<!-- or later (the latest version is presently available at          -->
-<!-- http://www.opencontent.org/openpub/).                           -->
-<!-- Distribution of the work or derivative of the work in any       -->
-<!-- standard (paper) book form is prohibited unless prior           -->
-<!-- permission is obtained from the copyright holder.               -->
-<HTML
-><HEAD
-><TITLE
->active_if</TITLE
-><meta name="MSSmartTagsPreventParsing" content="TRUE">
-<META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
-REL="HOME"
-TITLE="The eCos Component Writer's Guide"
-HREF="cdl-guide.html"><LINK
-REL="UP"
-TITLE="CDL Language Specification"
-HREF="reference.html"><LINK
-REL="PREVIOUS"
-TITLE="cdl_interface"
-HREF="ref.cdl-interface.html"><LINK
-REL="NEXT"
-TITLE="calculated"
-HREF="ref.calculated.html"></HEAD
-><BODY
-CLASS="REFENTRY"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><DIV
-CLASS="NAVHEADER"
-><TABLE
-SUMMARY="Header navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TH
-COLSPAN="3"
-ALIGN="center"
->The <SPAN
-CLASS="APPLICATION"
->eCos</SPAN
-> Component Writer's Guide</TH
-></TR
-><TR
-><TD
-WIDTH="10%"
-ALIGN="left"
-VALIGN="bottom"
-><A
-HREF="ref.cdl-interface.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="80%"
-ALIGN="center"
-VALIGN="bottom"
-></TD
-><TD
-WIDTH="10%"
-ALIGN="right"
-VALIGN="bottom"
-><A
-HREF="ref.calculated.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-></TABLE
-><HR
-ALIGN="LEFT"
-WIDTH="100%"></DIV
-><H1
-><A
-NAME="REF.ACTIVE-IF"><SPAN
-CLASS="PROPERTY"
->active_if</SPAN
-></H1
-><DIV
-CLASS="REFNAMEDIV"
-><A
-NAME="AEN3662"
-></A
-><H2
->Name</H2
->Property <SPAN
-CLASS="PROPERTY"
->active_if</SPAN
->&nbsp;--&nbsp;Allow additional control over the active state of an
-option or other CDL entity.</DIV
-><DIV
-CLASS="REFSYNOPSISDIV"
-><A
-NAME="AEN3666"><H2
->Synopsis</H2
-><TABLE
-BORDER="5"
-BGCOLOR="#E0E0F0"
-WIDTH="70%"
-><TR
-><TD
-><PRE
-CLASS="SYNOPSIS"
->cdl_option &lt;name&gt; {
-    active_if &lt;condition&gt;
-    &#8230;
-}</PRE
-></TD
-></TR
-></TABLE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3668"
-></A
-><H2
->Description</H2
-><P
->Configuration options or other entities may be either active or
-inactive. Typically this is controlled by the option's location in the
-overall hierarchy. Consider the option
-<TT
-CLASS="LITERAL"
->CYGDBG_INFRA_DEBUG_PRECONDITIONS</TT
->, which exists
-below the component <TT
-CLASS="LITERAL"
->CYGDBG_USE_ASSERT</TT
->. If the whole
-component is disabled then the options it contains are inactive: there
-is no point in enabling preconditions unless there is generic
-assertion support; any <SPAN
-CLASS="PROPERTY"
->requires</SPAN
-> constraints associated with
-preconditions are irrelevant; any <SPAN
-CLASS="PROPERTY"
->compile</SPAN
-> property or other
-build-related property is ignored.</P
-><P
->In some cases the hierarchy does not provide sufficient control over
-whether or not a particular option should be active. For example, the
-math library could have support for floating point exceptions which
-is only worthwhile if the hardware implements appropriate
-functionality, as specified by the architectural HAL. The relevant
-math library configuration options should remain below the
-<TT
-CLASS="LITERAL"
->CYGPKG_LIBM</TT
-> package in the overall hierarchy, but
-should be inactive unless there is appropriate hardware support. In
-cases like this an <SPAN
-CLASS="PROPERTY"
->active_if</SPAN
-> property is appropriate.</P
-><P
->Another common use of <SPAN
-CLASS="PROPERTY"
->active_if</SPAN
-> properties is to avoid excessive
-nesting in the configuration hierarchy. If some option B is only
-relevant if option A is enabled, it is possible to turn A into a
-component that contains B. However adding another level to the
-hierarchy for a component which will contain just one entry may be
-considered excessive. In such cases it is possible for B to have an
-<SPAN
-CLASS="PROPERTY"
->active_if</SPAN
-> dependency on A.</P
-><P
-><SPAN
-CLASS="PROPERTY"
->active_if</SPAN
-> takes a goal expression as argument. For details of goal
-expression syntax see <A
-HREF="language.values.html#LANGUAGE.GOAL-EXPRESSION"
->the Section called <I
->Goal Expressions</I
-> in Chapter 3</A
->. In
-most cases the goal expression will be very simple, often involving
-just one other option, but more complicated expressions can be used
-when appropriate. It is also possible to have multiple <SPAN
-CLASS="PROPERTY"
->active_if</SPAN
->
-conditions in a single option, in which case all of the conditions
-have to be satisfied if the option is to be active.</P
-><P
->The <SPAN
-CLASS="PROPERTY"
->active_if</SPAN
-> and <SPAN
-CLASS="PROPERTY"
->requires</SPAN
-> properties have certain similarities,
-but they serve a different purpose. Suppose there are two options A
-and B, and option B relies on functionality provided by A. This could
-be expressed as either <TT
-CLASS="LITERAL"
->active_if&nbsp;A</TT
-> or as
-<TT
-CLASS="LITERAL"
->requires&nbsp;A</TT
->. The points to note are:</P
-><P
-></P
-><UL
-><LI
-><P
->If <TT
-CLASS="LITERAL"
->active_if&nbsp;A</TT
-> is used and A is disabled or
-inactive, then graphical tools will generally prevent any attempt at
-modifying B. For example the text for B could be grayed out, and the
-associated checkbutton (if B is a boolean option) would be disabled.
-If the user needs the functionality provided by option B then it is
-necessary to go to option A first and manipulate it appropriately.</P
-></LI
-><LI
-><P
->If <TT
-CLASS="LITERAL"
->requires&nbsp;A</TT
-> is used and A is disabled or
-inactive, graphical tools will still allow B to be manipulated and
-enabled. This would result in a new conflict which may get resolved
-automatically or which may need user intervention.</P
-></LI
-><LI
-><P
->If there are hardware dependencies then an <SPAN
-CLASS="PROPERTY"
->active_if</SPAN
-> condition is
-usually the preferred approach. There is no point in allowing the user
-to manipulate a configuration option if the corresponding
-functionality cannot possibly work on the currently-selected hardware.
-Much the same argument applies to coarse-grained dependencies, for
-example if an option depends on the presence of a TCP/IP stack then an
-<TT
-CLASS="LITERAL"
->active_if&nbsp;CYGPKG_NET</TT
-> condition is appropriate:
-it may be possible to satisfy the condition, but it requires the
-fairly drastic step of loading another package; further more, if the
-user wanted a TCP/IP stack in the configuration then it would probably
-have been loaded already. </P
-></LI
-><LI
-><P
->If option B exists to provide additional debugging information about
-the functionality provided by A then again an <SPAN
-CLASS="PROPERTY"
->active_if</SPAN
-> constraint
-is appropriate. There is no point in letting users enable extra
-debugging facilities for a feature that is not actually present.</P
-></LI
-><LI
-><P
->The configuration system's inference engine will cope equally well
-with <SPAN
-CLASS="PROPERTY"
->active_if</SPAN
-> and <SPAN
-CLASS="PROPERTY"
->requires</SPAN
-> properties. Suppose there is a
-conflict because some third option depends on B. If B is
-<TT
-CLASS="LITERAL"
->active_if&nbsp;A</TT
-> then the inference engine will
-attempt to make A active and enabled, and then to enable B if
-necessary. If B <TT
-CLASS="LITERAL"
->requires&nbsp;A</TT
-> then the inference
-engine will attempt to enable B and resolve the resulting conflict by
-causing A to be both active and enabled. Although the inference occurs
-in a different order, in most cases the effect will be the same.</P
-></LI
-></UL
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3710"
-></A
-><H2
->Example</H2
-><TABLE
-BORDER="5"
-BGCOLOR="#E0E0F0"
-WIDTH="70%"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-># Do not provide extra semaphore debugging if there are no semaphores
-cdl_option CYGDBG_KERNEL_INSTRUMENT_BINSEM {
-    active_if CYGPKG_KERNEL_SYNCH
-    &#8230;
-}
-
-# Avoid another level in the configuration hierarchy
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY {
-    active_if CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE
-    &#8230;
-}
-
-# Functionality that is only relevant if another package is loaded
-cdl_option CYGSEM_START_UITRON_COMPATIBILITY {
-    active_if CYGPKG_UITRON
-    &#8230;
-}
-
-# Check that the hardware or HAL provide the appropriate functionality
-cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
-    active_if CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
-    &#8230;
-}</PRE
-></TD
-></TR
-></TABLE
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3713"
-></A
-><H2
->See Also</H2
-><P
->Property <A
-HREF="ref.requires.html"
-><SPAN
-CLASS="PROPERTY"
->requires</SPAN
-></A
->.</P
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-SUMMARY="Footer navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="ref.cdl-interface.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="cdl-guide.html"
-ACCESSKEY="H"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="ref.calculated.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><TT
-CLASS="LITERAL"
->cdl_interface</TT
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="reference.html"
-ACCESSKEY="U"
->Up</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><SPAN
-CLASS="PROPERTY"
->calculated</SPAN
-></TD
-></TR
-></TABLE
-></DIV
-></BODY
-></HTML
->
\ No newline at end of file