OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [ecos-2.0/] [doc/] [html/] [user-guide/] [package-structure.html] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1254 phoenix
<!-- 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
>Package Structure</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="eCos User Guide"
20
HREF="ecos-user-guide.html"><LINK
21
REL="UP"
22
TITLE="Managing the Package Repository"
23
HREF="managing-package-repository.html"><LINK
24
REL="PREVIOUS"
25
TITLE="Managing the Package Repository"
26
HREF="managing-package-repository.html"><LINK
27
REL="NEXT"
28
TITLE="Appendixes"
29
HREF="appendices.html"></HEAD
30
><BODY
31
CLASS="SECT1"
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
>eCos User Guide</TH
50
></TR
51
><TR
52
><TD
53
WIDTH="10%"
54
ALIGN="left"
55
VALIGN="bottom"
56
><A
57
HREF="managing-package-repository.html"
58
ACCESSKEY="P"
59
>Prev</A
60
></TD
61
><TD
62
WIDTH="80%"
63
ALIGN="center"
64
VALIGN="bottom"
65
>Chapter 29. Managing the Package Repository</TD
66
><TD
67
WIDTH="10%"
68
ALIGN="right"
69
VALIGN="bottom"
70
><A
71
HREF="appendices.html"
72
ACCESSKEY="N"
73
>Next</A
74
></TD
75
></TR
76
></TABLE
77
><HR
78
ALIGN="LEFT"
79
WIDTH="100%"></DIV
80
><DIV
81
CLASS="SECT1"
82
><H1
83
CLASS="SECT1"
84
><A
85
NAME="PACKAGE-STRUCTURE">Package Structure</H1
86
><P
87
>The files in an installed <SPAN
88
CLASS="PRODUCTNAME"
89
>eCos</SPAN
90
> source tree are organized in
91
a natural tree structure, grouping together files which work together
92
into <SPAN
93
CLASS="emphasis"
94
><I
95
CLASS="EMPHASIS"
96
>Packages</I
97
></SPAN
98
>. For example, the kernel files
99
are all together in: </P
100
><P
101
></P
102
><TABLE
103
BORDER="0"
104
><TBODY
105
><TR
106
><TD
107
><TT
108
CLASS="FILENAME"
109
><TT
110
CLASS="REPLACEABLE"
111
><I
112
>BASE_DIR</I
113
></TT
114
>/kernel/<TT
115
CLASS="REPLACEABLE"
116
><I
117
>&#60;version&#62;</I
118
></TT
119
>/include/</TT
120
></TD
121
></TR
122
><TR
123
><TD
124
>           <TT
125
CLASS="FILENAME"
126
><TT
127
CLASS="REPLACEABLE"
128
><I
129
>BASE_DIR</I
130
></TT
131
>/kernel/<TT
132
CLASS="REPLACEABLE"
133
><I
134
>&#60;version&#62;</I
135
></TT
136
>/src/</TT
137
></TD
138
></TR
139
><TR
140
><TD
141
>       <TT
142
CLASS="FILENAME"
143
><TT
144
CLASS="REPLACEABLE"
145
><I
146
>BASE_DIR</I
147
></TT
148
>/kernel/<TT
149
CLASS="REPLACEABLE"
150
><I
151
>&#60;version&#62;</I
152
></TT
153
>/tests/</TT
154
></TD
155
></TR
156
></TBODY
157
></TABLE
158
><P
159
></P
160
><P
161
>and &micro;ITRON compatibility layer files are in:
162
        </P
163
><P
164
></P
165
><TABLE
166
BORDER="0"
167
><TBODY
168
><TR
169
><TD
170
>           <TT
171
CLASS="FILENAME"
172
><TT
173
CLASS="REPLACEABLE"
174
><I
175
>BASE_DIR</I
176
></TT
177
>/compat/uitron/<TT
178
CLASS="REPLACEABLE"
179
><I
180
>&#60;version&#62;</I
181
></TT
182
>/include/</TT
183
></TD
184
></TR
185
><TR
186
><TD
187
>       <TT
188
CLASS="FILENAME"
189
><TT
190
CLASS="REPLACEABLE"
191
><I
192
>BASE_DIR</I
193
></TT
194
>/compat/uitron/<TT
195
CLASS="REPLACEABLE"
196
><I
197
>&#60;version&#62;</I
198
></TT
199
>/src/</TT
200
></TD
201
></TR
202
><TR
203
><TD
204
>       <TT
205
CLASS="FILENAME"
206
><TT
207
CLASS="REPLACEABLE"
208
><I
209
>BASE_DIR</I
210
></TT
211
>/compat/uitron/<TT
212
CLASS="REPLACEABLE"
213
><I
214
>&#60;version&#62;</I
215
></TT
216
>/tests/</TT
217
></TD
218
></TR
219
></TBODY
220
></TABLE
221
><P
222
></P
223
><P
224
>The feature of these names which is of interest here is
225
          the <TT
226
CLASS="REPLACEABLE"
227
><I
228
>&#60;version&#62;</I
229
></TT
230
> near the end. It may seem odd to place a version number deep in the
231
          path, rather than having something like
232
          <TT
233
CLASS="FILENAME"
234
><TT
235
CLASS="REPLACEABLE"
236
><I
237
>BASE_DIR</I
238
></TT
239
>/<TT
240
CLASS="REPLACEABLE"
241
><I
242
>&#60;version&#62;</I
243
></TT
244
>/...everything...</TT
245
>
246
          or leaving it up to you to choose a different
247
          install-place when a new release of the system arrives.
248
        </P
249
><P
250
>There is a rationale for this organization: as
251
          indicated, the kernel and the
252
          &micro;ITRON compatibility subsystem
253
          are examples of software packages. For the first few
254
          releases of <SPAN
255
CLASS="PRODUCTNAME"
256
>eCos</SPAN
257
>, all the packages will move along
258
          in step, i.e. Release 1.3.x will feature Version
259
          1.3.x of every package, and so forth. But in future,
260
          especially when third party packages become available, it is
261
          intended that the package be the unit of software
262
          distribution, so it will be possible to build a system from
263
          a selection of packages with different version numbers, and
264
          even differing versioning <SPAN
265
CLASS="emphasis"
266
><I
267
CLASS="EMPHASIS"
268
>schemes</I
269
></SPAN
270
>. A
271
          Tcl script <B
272
CLASS="COMMAND"
273
>ecosadmin.tcl</B
274
> is
275
          provided in the <SPAN
276
CLASS="PRODUCTNAME"
277
>eCos</SPAN
278
> repository to manage the installation
279
          and removal of packages in this way.</P
280
><P
281
>Many users will have their own source code control system,
282
version control system or equivalent, and will want to use it with
283
<SPAN
284
CLASS="PRODUCTNAME"
285
>eCos</SPAN
286
> sources. In that case, since a new release of <SPAN
287
CLASS="PRODUCTNAME"
288
>eCos</SPAN
289
> comes with
290
different pathnames for all the source files, a bit of work is necessary
291
to import a new release into your source repository. </P
292
><P
293
>One way of handling the import is to rename all the version
294
parts to some common name, for example &#8220;current&#8221;,
295
and continue to work. &#8220;current&#8221; is suggested because <B
296
CLASS="COMMAND"
297
>ecosconfig</B
298
> recognizes
299
it and places it first in any list of versions. In the future, we
300
may provide a tool to help with this, or an option in the install
301
wizard. Alternatively, in a POSIX shell environment (Linux or Cygwin
302
on Windows) use the following command: </P
303
><TABLE
304
BORDER="5"
305
BGCOLOR="#E0E0F0"
306
WIDTH="70%"
307
><TR
308
><TD
309
><PRE
310
CLASS="SCREEN"
311
>find . -name <TT
312
CLASS="REPLACEABLE"
313
><I
314
>&#60;version&#62;</I
315
></TT
316
> -type d -printf 'mv &#0037;p &#0037;h/current\n' | sh</PRE
317
></TD
318
></TR
319
></TABLE
320
><P
321
>Having carried out such a renaming operation, your
322
          source tree will now look like this: </P
323
><TABLE
324
BORDER="5"
325
BGCOLOR="#E0E0F0"
326
WIDTH="70%"
327
><TR
328
><TD
329
><PRE
330
CLASS="SCREEN"
331
><TT
332
CLASS="REPLACEABLE"
333
><I
334
>BASE_DIR</I
335
></TT
336
>/kernel/current/include/
337
<TT
338
CLASS="REPLACEABLE"
339
><I
340
>BASE_DIR</I
341
></TT
342
>/kernel/current/src/
343
<TT
344
CLASS="REPLACEABLE"
345
><I
346
>BASE_DIR</I
347
></TT
348
>/kernel/current/tests/
349
        ...
350
<TT
351
CLASS="REPLACEABLE"
352
><I
353
>BASE_DIR</I
354
></TT
355
>/compat/uitron/current/include/
356
<TT
357
CLASS="REPLACEABLE"
358
><I
359
>BASE_DIR</I
360
></TT
361
>/compat/uitron/current/src/
362
<TT
363
CLASS="REPLACEABLE"
364
><I
365
>BASE_DIR</I
366
></TT
367
>/compat/uitron/current/tests/
368
        </PRE
369
></TD
370
></TR
371
></TABLE
372
><P
373
>which is a suitable format for import into your own
374
          source code control system. When you get a subsequent
375
          release of <SPAN
376
CLASS="PRODUCTNAME"
377
>eCos</SPAN
378
>, do the same thing and use your own source
379
          code control system to manage the new source base, by
380
          importing the new version from </P
381
><TABLE
382
BORDER="5"
383
BGCOLOR="#E0E0F0"
384
WIDTH="70%"
385
><TR
386
><TD
387
><PRE
388
CLASS="SCREEN"
389
><TT
390
CLASS="REPLACEABLE"
391
><I
392
>NEW_BASE_DIR</I
393
></TT
394
>/kernel/current/include/</PRE
395
></TD
396
></TR
397
></TABLE
398
><P
399
>and so on. </P
400
><P
401
>The <SPAN
402
CLASS="PRODUCTNAME"
403
>eCos</SPAN
404
> build tool will now offer only the
405
          &#8220;current&#8221; version of each package; select this
406
          for the packages you wish to use. </P
407
><P
408
>Making such a change has implications for any build
409
          trees you already have in use. A configured build tree
410
          contains information about the selected packages and their
411
          selected versions. Changing the name of the
412
          &#8220;versioning&#8221; folder in the source tree
413
          invalidates this information, and in consequence it also
414
          invalidates any local configuration options you have set up
415
          in this build tree. So if you want to change the version
416
          information in the source tree, do it first, before
417
          investing any serious time in configuring and building your
418
          system. When you create a new build tree to deal with the
419
          new source layout, it will contain default settings for all
420
          the configuration options, just like the old build tree did
421
          before you configured it. You will need to redo that
422
          configuration work in the new tree. </P
423
><P
424
>Moving source code around also invalidates debugging information
425
in any programs or libraries built from the old tree; these will
426
need to be rebuilt. </P
427
></DIV
428
><DIV
429
CLASS="NAVFOOTER"
430
><HR
431
ALIGN="LEFT"
432
WIDTH="100%"><TABLE
433
SUMMARY="Footer navigation table"
434
WIDTH="100%"
435
BORDER="0"
436
CELLPADDING="0"
437
CELLSPACING="0"
438
><TR
439
><TD
440
WIDTH="33%"
441
ALIGN="left"
442
VALIGN="top"
443
><A
444
HREF="managing-package-repository.html"
445
ACCESSKEY="P"
446
>Prev</A
447
></TD
448
><TD
449
WIDTH="34%"
450
ALIGN="center"
451
VALIGN="top"
452
><A
453
HREF="ecos-user-guide.html"
454
ACCESSKEY="H"
455
>Home</A
456
></TD
457
><TD
458
WIDTH="33%"
459
ALIGN="right"
460
VALIGN="top"
461
><A
462
HREF="appendices.html"
463
ACCESSKEY="N"
464
>Next</A
465
></TD
466
></TR
467
><TR
468
><TD
469
WIDTH="33%"
470
ALIGN="left"
471
VALIGN="top"
472
>Managing the Package Repository</TD
473
><TD
474
WIDTH="34%"
475
ALIGN="center"
476
VALIGN="top"
477
><A
478
HREF="managing-package-repository.html"
479
ACCESSKEY="U"
480
>Up</A
481
></TD
482
><TD
483
WIDTH="33%"
484
ALIGN="right"
485
VALIGN="top"
486
>Appendixes</TD
487
></TR
488
></TABLE
489
></DIV
490
></BODY
491
></HTML
492
>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.