1 <!-- Copyright (C) 2003 Red Hat, Inc. -->
2 <!-- This material may be distributed only subject to the terms -->
3 <!-- and conditions set forth in the Open Publication License, v1.0 -->
4 <!-- or later (the latest version is presently available at -->
5 <!-- http://www.opencontent.org/openpub/). -->
6 <!-- Distribution of the work or derivative of the work in any -->
7 <!-- standard (paper) book form is prohibited unless prior -->
8 <!-- permission is obtained from the copyright holder. -->
13 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
16 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
19 TITLE="The eCos Component Writer's Guide"
20 HREF="cdl-guide.html"><LINK
22 TITLE="CDL Language Specification"
23 HREF="reference.html"><LINK
26 HREF="ref.parent.html"><LINK
29 HREF="ref.script.html"></HEAD
40 SUMMARY="Header navigation table"
52 > Component Writer's Guide</TH
60 HREF="ref.parent.html"
74 HREF="ref.script.html"
85 NAME="REF.REQUIRES"><SPAN
99 > -- List constraints that the configuration should satisfy if
100 a given option is active and enabled..</DIV
102 CLASS="REFSYNOPSISDIV"
114 >cdl_option <name> {
115 requires <goal expression>
130 >Configuration options are not independent. For example the C library
131 can provide thread-safe implementations of certain functions, but only
132 if the kernel is present, if the kernel provides multi-threading, and
133 if the kernel options related to per-thread data are enabled. It is
134 possible to express such constraints using <SPAN
139 >The arguments to a <SPAN
142 > property should constitute a goal
143 expression, as described in <A
144 HREF="language.values.html#LANGUAGE.LIST-EXPRESSION"
145 >the Section called <I
149 Most goal expressions are relatively simple because the constraints
150 being described are simple, but complicated expressions can be used
151 when necessary. The body of an option or other CDL entity can contain
155 > constraints. If the option is active and
156 enabled then all these constraints should be satisfied, and any goal
157 expressions which evaluate to <TT
161 conflicts being raised. It is possible for users to ignore such
162 conflicts and attempt to build the current configuration anyway, but
163 there is no guarantee that anything will work. If an option is
164 inactive or disabled then its <SPAN
167 > constraints will be ignored. </P
169 >The configuration system contains an inference engine which can
170 resolve many types of conflicts automatically. For example, if option
174 > is enabled and requires an option
178 > that is currently disabled then the inference
179 engine may attempt to resolve the conflict by enabling
183 >. However this will not always be possible, for
184 example there may be other constraints in the configuration which
188 > to be disabled at present, in which case
189 user intervention is required.</P
205 CLASS="PROGRAMLISTING"
206 >cdl_component CYGPKG_IO_SERIAL_POWERPC_COGENT_SERIAL_A {
207 display "Cogent PowerPC serial port A driver"
210 requires (CYGIMP_KERNEL_INTERRUPTS_CHAIN || \
211 !CYGPKG_IO_SERIAL_POWERPC_COGENT_SERIAL_B)
227 HREF="ref.active-if.html"
239 SUMMARY="Footer navigation table"
250 HREF="ref.parent.html"
259 HREF="cdl-guide.html"
268 HREF="ref.script.html"
287 HREF="reference.html"