]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/cdl-guide/ref.define-header.html
RedBoot TX53 Release 2012-02-15
[karo-tx-redboot.git] / doc / html / cdl-guide / ref.define-header.html
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.               -->
9 <HTML
10 ><HEAD
11 ><TITLE
12 >define_header</TITLE
13 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
14 <META
15 NAME="GENERATOR"
16 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
17 "><LINK
18 REL="HOME"
19 TITLE="The eCos Component Writer's Guide"
20 HREF="cdl-guide.html"><LINK
21 REL="UP"
22 TITLE="CDL Language Specification"
23 HREF="reference.html"><LINK
24 REL="PREVIOUS"
25 TITLE="define_format"
26 HREF="ref.define-format.html"><LINK
27 REL="NEXT"
28 TITLE="define_proc"
29 HREF="ref.define-proc.html"></HEAD
30 ><BODY
31 CLASS="REFENTRY"
32 BGCOLOR="#FFFFFF"
33 TEXT="#000000"
34 LINK="#0000FF"
35 VLINK="#840084"
36 ALINK="#0000FF"
37 ><DIV
38 CLASS="NAVHEADER"
39 ><TABLE
40 SUMMARY="Header navigation table"
41 WIDTH="100%"
42 BORDER="0"
43 CELLPADDING="0"
44 CELLSPACING="0"
45 ><TR
46 ><TH
47 COLSPAN="3"
48 ALIGN="center"
49 >The <SPAN
50 CLASS="APPLICATION"
51 >eCos</SPAN
52 > Component Writer's Guide</TH
53 ></TR
54 ><TR
55 ><TD
56 WIDTH="10%"
57 ALIGN="left"
58 VALIGN="bottom"
59 ><A
60 HREF="ref.define-format.html"
61 ACCESSKEY="P"
62 >Prev</A
63 ></TD
64 ><TD
65 WIDTH="80%"
66 ALIGN="center"
67 VALIGN="bottom"
68 ></TD
69 ><TD
70 WIDTH="10%"
71 ALIGN="right"
72 VALIGN="bottom"
73 ><A
74 HREF="ref.define-proc.html"
75 ACCESSKEY="N"
76 >Next</A
77 ></TD
78 ></TR
79 ></TABLE
80 ><HR
81 ALIGN="LEFT"
82 WIDTH="100%"></DIV
83 ><H1
84 ><A
85 NAME="REF.DEFINE-HEADER"><SPAN
86 CLASS="PROPERTY"
87 >define_header</SPAN
88 ></H1
89 ><DIV
90 CLASS="REFNAMEDIV"
91 ><A
92 NAME="AEN4123"
93 ></A
94 ><H2
95 >Name</H2
96 >Property <SPAN
97 CLASS="PROPERTY"
98 >define_header</SPAN
99 >&nbsp;--&nbsp;Specify the  configuration header file that
100 will be generated for a given package.</DIV
101 ><DIV
102 CLASS="REFSYNOPSISDIV"
103 ><A
104 NAME="AEN4127"><H2
105 >Synopsis</H2
106 ><TABLE
107 BORDER="5"
108 BGCOLOR="#E0E0F0"
109 WIDTH="70%"
110 ><TR
111 ><TD
112 ><PRE
113 CLASS="SYNOPSIS"
114 >cdl_package &lt;name&gt; {
115     define_header &lt;file name&gt;
116     &#8230;
117 }</PRE
118 ></TD
119 ></TR
120 ></TABLE
121 ></DIV
122 ><DIV
123 CLASS="REFSECT1"
124 ><A
125 NAME="AEN4129"
126 ></A
127 ><H2
128 >Description</H2
129 ><P
130 >When the configuration tools generate a build tree, one of the steps
131 is to output each package's configuration data to a header file. For
132 example the kernel's configuration data gets output to
133 <TT
134 CLASS="FILENAME"
135 >pkgconf/kernel.h</TT
136 >. This allows
137 each package's source code to <TT
138 CLASS="LITERAL"
139 >#include</TT
140 > the
141 appropriate header file and adapt to the choices made by the user.</P
142 ><P
143 >By default the configuration tools will synthesize a file name from
144 the package name. This involves removing any prefix such as
145 <TT
146 CLASS="LITERAL"
147 >CYGPKG_</TT
148 >, up to and including the first underscore,
149 and then converting the remainder of the name to lower case. In some
150 cases it may be desirable to use a different header file, for example
151 an existing package may have been ported to <SPAN
152 CLASS="APPLICATION"
153 >eCos</SPAN
154 > and the source code
155 may already <TT
156 CLASS="LITERAL"
157 >#include</TT
158 > a particular file for
159 configuration data. In such cases a <SPAN
160 CLASS="PROPERTY"
161 >define_header</SPAN
162 > property can be
163 used to specify an alternative filename.</P
164 ><P
165 >The <SPAN
166 CLASS="PROPERTY"
167 >define_header</SPAN
168 > property can only be used in the body of a
169 <TT
170 CLASS="LITERAL"
171 >cdl_package</TT
172 > command. It applies to a package as a whole and cannot
173 be used at a finer grain. The name specified in a <SPAN
174 CLASS="PROPERTY"
175 >define_header</SPAN
176 >
177 property will always be interpreted as relative to the
178 <TT
179 CLASS="FILENAME"
180 >include/pkgconf</TT
181 > sub-directory
182 of the install tree.</P
183 ><DIV
184 CLASS="NOTE"
185 ><BLOCKQUOTE
186 CLASS="NOTE"
187 ><P
188 ><B
189 >Note: </B
190 >For hardware-specific packages such as device drivers and HAL
191 packages, the current scheme of generating a configuration header file
192 name based on the package name may be abandoned. Instead all hardware
193 packages would send their configuration data to a single header file,
194 <TT
195 CLASS="FILENAME"
196 >pkgconf/hardware.h</TT
197 >. This would
198 make it easier for code to obtain details of the current hardware, but
199 obviously there are compatibility issues. For now it is recommended
200 that all hardware packages specify their configuration header file
201 explicitly. </P
202 ></BLOCKQUOTE
203 ></DIV
204 ></DIV
205 ><DIV
206 CLASS="REFSECT1"
207 ><A
208 NAME="AEN4147"
209 ></A
210 ><H2
211 >Example</H2
212 ><TABLE
213 BORDER="5"
214 BGCOLOR="#E0E0F0"
215 WIDTH="70%"
216 ><TR
217 ><TD
218 ><PRE
219 CLASS="PROGRAMLISTING"
220 >cdl_package CYGPKG_HAL_ARM {
221     display       "ARM architecture"
222     parent        CYGPKG_HAL
223     hardware
224     include_dir   cyg/hal
225     define_header hal_arm.h
226     &#8230;
227 }</PRE
228 ></TD
229 ></TR
230 ></TABLE
231 ></DIV
232 ><DIV
233 CLASS="REFSECT1"
234 ><A
235 NAME="AEN4150"
236 ></A
237 ><H2
238 >See Also</H2
239 ><P
240 >Properties <A
241 HREF="ref.define.html"
242 ><SPAN
243 CLASS="PROPERTY"
244 >define</SPAN
245 ></A
246 >,
247 <A
248 HREF="ref.define-format.html"
249 ><SPAN
250 CLASS="PROPERTY"
251 >define_format</SPAN
252 ></A
253 >,
254 <A
255 HREF="ref.define-proc.html"
256 ><SPAN
257 CLASS="PROPERTY"
258 >define_proc</SPAN
259 ></A
260 >,
261 <A
262 HREF="ref.if-define.html"
263 ><SPAN
264 CLASS="PROPERTY"
265 >if_define</SPAN
266 ></A
267 >,
268 <A
269 HREF="ref.no-define.html"
270 ><SPAN
271 CLASS="PROPERTY"
272 >no_define</SPAN
273 ></A
274 > and
275 <A
276 HREF="ref.hardware.html"
277 ><SPAN
278 CLASS="PROPERTY"
279 >hardware</SPAN
280 ></A
281 >,</P
282 ></DIV
283 ><DIV
284 CLASS="NAVFOOTER"
285 ><HR
286 ALIGN="LEFT"
287 WIDTH="100%"><TABLE
288 SUMMARY="Footer navigation table"
289 WIDTH="100%"
290 BORDER="0"
291 CELLPADDING="0"
292 CELLSPACING="0"
293 ><TR
294 ><TD
295 WIDTH="33%"
296 ALIGN="left"
297 VALIGN="top"
298 ><A
299 HREF="ref.define-format.html"
300 ACCESSKEY="P"
301 >Prev</A
302 ></TD
303 ><TD
304 WIDTH="34%"
305 ALIGN="center"
306 VALIGN="top"
307 ><A
308 HREF="cdl-guide.html"
309 ACCESSKEY="H"
310 >Home</A
311 ></TD
312 ><TD
313 WIDTH="33%"
314 ALIGN="right"
315 VALIGN="top"
316 ><A
317 HREF="ref.define-proc.html"
318 ACCESSKEY="N"
319 >Next</A
320 ></TD
321 ></TR
322 ><TR
323 ><TD
324 WIDTH="33%"
325 ALIGN="left"
326 VALIGN="top"
327 ><SPAN
328 CLASS="PROPERTY"
329 >define_format</SPAN
330 ></TD
331 ><TD
332 WIDTH="34%"
333 ALIGN="center"
334 VALIGN="top"
335 ><A
336 HREF="reference.html"
337 ACCESSKEY="U"
338 >Up</A
339 ></TD
340 ><TD
341 WIDTH="33%"
342 ALIGN="right"
343 VALIGN="top"
344 ><SPAN
345 CLASS="PROPERTY"
346 >define_proc</SPAN
347 ></TD
348 ></TR
349 ></TABLE
350 ></DIV
351 ></BODY
352 ></HTML
353 >