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.library.html"><LINK
29 HREF="ref.make-object.html"></HEAD
40 SUMMARY="Header navigation table"
52 > Component Writer's Guide</TH
60 HREF="ref.library.html"
74 HREF="ref.make-object.html"
99 > -- Define an additional custom build step associated with an
100 option, resulting in a target that should not go directly into a library.</DIV
102 CLASS="REFSYNOPSISDIV"
114 >cdl_option <name> {
115 make [-priority=<pri>] {
116 <custom build step>
132 >When building an <SPAN
135 > configuration the primary target is a single
139 >. In some cases it is
140 necessary to build some additional targets. For example architectural
141 HAL packages typically build a linker script and some start-up code.
142 Such additional targets can be specified by a <SPAN
146 option can have one or more <SPAN
149 > properties, although typically such
150 properties only occur in the body of a <TT
158 > property takes a single argument, which resembles a
159 makefile rule: it consists of a target, a list of dependencies, and
160 one or more commands that should be executed. However the argument is
161 not a makefile fragment, and custom build steps may get executed in
162 build environments that do not involve make. For full details of
163 custom build steps see <A
164 HREF="build.make.html#BUILD.CUSTOM"
165 >the Section called <I
166 >Custom Build Steps</I
188 >The exact syntax and limitations of custom build steps have not yet
189 been finalized, and are subject to change in future versions of the
190 configuration tools.</P
199 > property takes an optional priority argument indicating the
200 order in which build steps take place. This priority complements the
201 dependency list, and avoids problems with packages needing to know
202 details of custom build steps in other packages (which may change
203 between releases). The defined order is:</P
213 >The header files exported by the current set of packages are copied
214 to the appropriate places in the
218 > subdirectory of the
219 install tree. Any unnecessary copies are avoided, to prevent rebuilds
220 of package and application source modules caused by header file dependencies.</P
228 >A possible future enhancement of the build system may result in the
229 build and install trees being updated automatically if there has been
233 > configuration savefile.</P
241 >All files specified in <SPAN
244 > properties will get built, producing
245 the corresponding object files. In addition any custom build steps
249 > properties get executed, unless there is
259 >The libraries now get built using the appropriate object files.</P
265 >Any custom build steps specified by <SPAN
269 executed, unless the priority for a particular build step is changed
275 >For example, if a custom build step needs to take place before any of
276 the normal source files get compiled then it should be given a
277 priority somewhere between 0 and 100. If a custom build step involves
278 post-processing an object file prior to its incorporation into a
279 library then a priority between 100 and 200 should be used.</P
295 CLASS="PROGRAMLISTING"
296 >cdl_package CYGPKG_HAL_MN10300_AM33 {
297 display "MN10300 AM33 variant"
298 parent CYGPKG_HAL_MN10300
299 implements CYGINT_HAL_MN10300_VARIANT
302 define_header hal_mn10300_am33.h
304 The MN10300 AM33 variant HAL package provides generic
305 support for this processor architecture. It is also
306 necessary to select a specific target platform HAL
310 <PREFIX>/lib/target.ld: <PACKAGE>/src/mn10300_am33.ld
311 $(CC) -E -P -Wp,-MD,target.tmp -DEXTRAS=1 -xc $(INCLUDE_PATH) $(CFLAGS) -o $@ $<
312 @echo $@ ": \\" > $(notdir $@).deps
313 @tail +2 target.tmp >> $(notdir $@).deps
314 @echo >> $(notdir $@).deps
331 HREF="ref.compile.html"
335 HREF="ref.make-object.html"
339 HREF="ref.library.html"
348 SUMMARY="Footer navigation table"
359 HREF="ref.library.html"
368 HREF="cdl-guide.html"
377 HREF="ref.make-object.html"
396 HREF="reference.html"