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. -->
12 >The eCos Component Writer's Guide</TITLE
13 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
16 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
20 HREF="overview.html"></HEAD
39 > Component Writer's Guide</H1
43 NAME="AEN8">Bart Veer</H3
47 NAME="AEN11">John Dallaway</H3
50 >Copyright © 2000, 2001 by Red Hat Inc.</P
68 HREF="overview.html#OVERVIEW.TERMINOLOGY"
75 HREF="overview.html#CONCEPTS.TERMINOLOGY.FRAMEWORK"
76 >Component Framework</A
80 HREF="overview.html#CONCEPTS.TERMINOLOGY.OPTION"
81 >Configuration Option</A
85 HREF="overview.html#CONCEPTS.TERMINOLOGY.COMPONENT"
90 HREF="overview.html#CONCEPTS.TERMINOLOGY.PACKAGE"
95 HREF="overview.html#CONCEPTS.TERMINOLOGY.CONFIGURATION"
100 HREF="overview.html#CONCEPTS.TERMINOLOGY.TARGET"
105 HREF="overview.html#CONCEPTS.TERMINOLOGY.TEMPLATE"
110 HREF="overview.html#CONCEPTS.TERMINOLOGY.PROPERTIES"
115 HREF="overview.html#CONCEPTS.TERMINOLOGY.CONSEQUENCES"
120 HREF="overview.html#CONCEPTS.TERMINOLOGY.CONSTRAINTS"
125 HREF="overview.html#CONCEPTS.TERMINOLOGY.CONFLICTS"
130 HREF="overview.html#CONCEPTS.TERMINOLOGY.CDL"
135 HREF="overview.html#CONCEPTS.TERMINOLOGY.REPO"
136 >Component Repository</A
142 HREF="overview.configurability.html"
143 >Why Configurability?</A
147 HREF="overview.approaches.html"
148 >Approaches to Configurability</A
152 HREF="overview.degress.html"
153 >Degrees of Configurability</A
157 HREF="overview.warning.html"
165 >Package Organization</A
171 HREF="package.html#PACKAGE.HIERARCHY"
172 >Packages and the Component Repository</A
176 HREF="package.versions.html"
177 >Package Versioning</A
181 HREF="package.contents.html"
182 >Package Contents and Layout</A
188 HREF="package.contents.html#PACKAGE.BUILD"
189 >Outline of the Build Process</A
193 HREF="package.contents.html#PACKAGE.SOURCE"
194 >Configurable Source Code</A
198 HREF="package.contents.html#PACKAGE.HEADERS"
199 >Exported Header Files</A
203 HREF="package.contents.html#PACKAGE.DOCUMENTATION"
204 >Package Documentation</A
208 HREF="package.contents.html#PACKAGE.TESTS"
213 HREF="package.contents.html#PACKAGE.HOST"
214 >Host-side Support</A
220 HREF="package.distrib.html"
221 >Making a Package Distribution</A
227 HREF="package.distrib.html#PACKAGE.DISTRIB.FORMAT"
231 > package distribution file format</A
235 HREF="package.distrib.html#PACKAGE.DISTRIB.PREPARE"
236 >Preparing eCos packages for distribution</A
251 HREF="language.html#LANGUAGE.OVERVIEW"
252 >Language Overview</A
256 HREF="language.commands.html"
261 HREF="language.properties.html"
268 HREF="language.properties.html#LANGUAGE.PROPERTIES.USER"
269 >Information-providing Properties</A
273 HREF="language.properties.html#LANGUAGE.PROPERTIES.HIERARCHY"
274 >The Configuration Hierarchy</A
278 HREF="language.properties.html#LANGUAGE.PROPERTIES.VALUE"
279 >Value-related Properties</A
283 HREF="language.properties.html#LANGUAGE.PROPERTIES.DEFINE"
284 >Generating the Configuration Header Files</A
288 HREF="language.properties.html#LANGUAGE.PROPERTIES.BUILD"
289 >Controlling what gets Built</A
293 HREF="language.properties.html#LANGUAGE.PROPERTIES.MISCELLANEOUS"
294 >Miscellaneous Properties</A
300 HREF="language.naming.html"
301 >Option Naming Convention</A
305 HREF="language.tcl.html"
306 >An Introduction to Tcl</A
310 HREF="language.values.html"
311 >Values and Expressions</A
317 HREF="language.values.html#LANGUAGE.VALUES.VALUE"
322 HREF="language.values.html#LANGUAGE.EXPRESSION"
323 >Ordinary Expressions</A
327 HREF="language.values.html#LANGUAGE.FUNCTIONS"
332 HREF="language.values.html#LANGUAGE.GOAL-EXPRESSION"
337 HREF="language.values.html#LANGUAGE.LIST-EXPRESSION"
344 HREF="language.interface.html"
349 HREF="language.database.html"
360 >The Build Process</A
366 HREF="build.html#BUILD.OUTLINE"
367 >Build Tree Generation</A
371 HREF="build.headers.html"
372 >Configuration Header File Generation</A
378 HREF="build.headers.html#BUILD.HEADERS.SYSTEM.H"
388 HREF="build.make.html"
395 HREF="build.make.html#BUILD.MAKE.UPDATE"
396 >Updating the Build Tree</A
400 HREF="build.make.html#BUILD.MAKE.EXPORT"
401 >Exporting Public Header Files</A
405 HREF="build.make.html#BUILD.MAKE.COMPILES"
410 HREF="build.make.html#BUILD.MAKE.LIBRARIES"
411 >Generating the Libraries</A
415 HREF="build.make.html#BUILD.EXTRAS"
423 HREF="build.make.html#BUILD.FLAGS"
424 >Compilers and Flags</A
428 HREF="build.make.html#BUILD.CUSTOM"
429 >Custom Build Steps</A
433 HREF="build.make.html#BUILD.STARTUP"
438 HREF="build.make.html#BUILD.LINKERSCRIPT"
439 >The Linker Script</A
445 HREF="build.tests.html"
446 >Building Test Cases</A
452 HREF="reference.html"
453 >CDL Language Specification</A
459 HREF="ref.cdl-option.html"
464 > -- Define a single configuration option</DT
467 HREF="ref.cdl-component.html"
472 > -- Define a component, a collection of configuration options</DT
475 HREF="ref.cdl-package.html"
480 > -- Define a package, a component that can be distributed</DT
483 HREF="ref.cdl-interface.html"
488 > -- Define an interface, functionality that can be provided by
489 a number of different implementations.</DT
492 HREF="ref.active-if.html"
497 > -- Allow additional control over the active state of an
498 option or other CDL entity.</DT
501 HREF="ref.calculated.html"
506 > -- Used if the current option's value is not user-modifiable,
507 but is calculated using a suitable CDL expression.</DT
510 HREF="ref.compile.html"
515 > -- List the source files that should be built if this option
516 is active and enabled.</DT
519 HREF="ref.default-value.html"
524 > -- Provide a default value for this option using a CDL expression.</DT
527 HREF="ref.define.html"
532 > -- Specify additional <TT
536 should go into the owning package's configuration header file.</DT
539 HREF="ref.define-format.html"
544 > -- Control how an option's value will appear in the
545 configuration header file.</DT
548 HREF="ref.define-header.html"
553 > -- Specify the configuration header file that
554 will be generated for a given package.</DT
557 HREF="ref.define-proc.html"
562 > -- Use a fragment of Tcl code to output additional data to
563 configuration header files.</DT
566 HREF="ref.description.html"
571 > -- Provide a textual description for an option.</DT
574 HREF="ref.display.html"
579 > -- Provide a short string describing this option.</DT
587 > -- The location of online-documentation for a configuration option.</DT
590 HREF="ref.flavor.html"
595 > -- Specify the nature of a configuration option.</DT
598 HREF="ref.hardware.html"
603 > -- Specify that a package is tied to specific hardware.</DT
606 HREF="ref.if-define.html"
611 > -- Output a common preprocessor construct to a configuration
615 HREF="ref.implements.html"
620 > -- Enabling this option provides one instance of a more
621 general interface.</DT
624 HREF="ref.include-dir.html"
629 > -- Specify the desired location of a package's exported
630 header files in the install tree.</DT
633 HREF="ref.include-files.html"
638 > -- List the header files that are exported by a package.</DT
641 HREF="ref.legal-values.html"
646 > -- Impose constraints on the possible values for an option.</DT
649 HREF="ref.library.html"
654 > -- Specify which library should contain the object files
655 generated by building this package.</DT
663 > -- Define an additional custom build step associated with an
664 option, resulting in a target that should not go directly into a library.</DT
667 HREF="ref.make-object.html"
672 > -- Define a custom build step, resulting in an object file
673 that should go into a library.</DT
676 HREF="ref.no-define.html"
681 > -- Suppress the normal generation of a preprocessor
685 > symbol in a configuration header file.</DT
688 HREF="ref.parent.html"
693 > -- Control the location of an option in the configuration hierarchy.</DT
696 HREF="ref.requires.html"
701 > -- List constraints that the configuration should satisfy if
702 a given option is active and enabled..</DT
705 HREF="ref.script.html"
710 > -- Include additional configuration information from another
717 >Templates, Targets and Other Topics</A
723 HREF="advanced.html#ADVANCED.TEMPLATES"
728 HREF="advanced.targets.html"
741 SUMMARY="Footer navigation table"