+++ /dev/null
-<!-- Copyright (C) 2003 Red Hat, Inc. -->
-<!-- This material may be distributed only subject to the terms -->
-<!-- and conditions set forth in the Open Publication License, v1.0 -->
-<!-- or later (the latest version is presently available at -->
-<!-- http://www.opencontent.org/openpub/). -->
-<!-- Distribution of the work or derivative of the work in any -->
-<!-- standard (paper) book form is prohibited unless prior -->
-<!-- permission is obtained from the copyright holder. -->
-<HTML
-><HEAD
-><TITLE
->Package Structure</TITLE
-><meta name="MSSmartTagsPreventParsing" content="TRUE">
-<META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
-REL="HOME"
-TITLE="eCos User Guide"
-HREF="ecos-user-guide.html"><LINK
-REL="UP"
-TITLE="Managing the Package Repository"
-HREF="managing-package-repository.html"><LINK
-REL="PREVIOUS"
-TITLE="Managing the Package Repository"
-HREF="managing-package-repository.html"><LINK
-REL="NEXT"
-TITLE="Appendixes"
-HREF="appendices.html"></HEAD
-><BODY
-CLASS="SECT1"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><DIV
-CLASS="NAVHEADER"
-><TABLE
-SUMMARY="Header navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TH
-COLSPAN="3"
-ALIGN="center"
->eCos User Guide</TH
-></TR
-><TR
-><TD
-WIDTH="10%"
-ALIGN="left"
-VALIGN="bottom"
-><A
-HREF="managing-package-repository.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="80%"
-ALIGN="center"
-VALIGN="bottom"
->Chapter 29. Managing the Package Repository</TD
-><TD
-WIDTH="10%"
-ALIGN="right"
-VALIGN="bottom"
-><A
-HREF="appendices.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-></TABLE
-><HR
-ALIGN="LEFT"
-WIDTH="100%"></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="PACKAGE-STRUCTURE">Package Structure</H1
-><P
->The files in an installed <SPAN
-CLASS="PRODUCTNAME"
->eCos</SPAN
-> source tree are organized in
-a natural tree structure, grouping together files which work together
-into <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Packages</I
-></SPAN
->. For example, the kernel files
-are all together in: </P
-><P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
-><TT
-CLASS="FILENAME"
-><TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/kernel/<TT
-CLASS="REPLACEABLE"
-><I
-><version></I
-></TT
->/include/</TT
-></TD
-></TR
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
-><TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/kernel/<TT
-CLASS="REPLACEABLE"
-><I
-><version></I
-></TT
->/src/</TT
-></TD
-></TR
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
-><TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/kernel/<TT
-CLASS="REPLACEABLE"
-><I
-><version></I
-></TT
->/tests/</TT
-></TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
-><P
->and µITRON compatibility layer files are in:
- </P
-><P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
-><TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/compat/uitron/<TT
-CLASS="REPLACEABLE"
-><I
-><version></I
-></TT
->/include/</TT
-></TD
-></TR
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
-><TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/compat/uitron/<TT
-CLASS="REPLACEABLE"
-><I
-><version></I
-></TT
->/src/</TT
-></TD
-></TR
-><TR
-><TD
-> <TT
-CLASS="FILENAME"
-><TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/compat/uitron/<TT
-CLASS="REPLACEABLE"
-><I
-><version></I
-></TT
->/tests/</TT
-></TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
-><P
->The feature of these names which is of interest here is
- the <TT
-CLASS="REPLACEABLE"
-><I
-><version></I
-></TT
-> near the end. It may seem odd to place a version number deep in the
- path, rather than having something like
- <TT
-CLASS="FILENAME"
-><TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/<TT
-CLASS="REPLACEABLE"
-><I
-><version></I
-></TT
->/...everything...</TT
->
- or leaving it up to you to choose a different
- install-place when a new release of the system arrives.
- </P
-><P
->There is a rationale for this organization: as
- indicated, the kernel and the
- µITRON compatibility subsystem
- are examples of software packages. For the first few
- releases of <SPAN
-CLASS="PRODUCTNAME"
->eCos</SPAN
->, all the packages will move along
- in step, i.e. Release 1.3.x will feature Version
- 1.3.x of every package, and so forth. But in future,
- especially when third party packages become available, it is
- intended that the package be the unit of software
- distribution, so it will be possible to build a system from
- a selection of packages with different version numbers, and
- even differing versioning <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->schemes</I
-></SPAN
->. A
- Tcl script <B
-CLASS="COMMAND"
->ecosadmin.tcl</B
-> is
- provided in the <SPAN
-CLASS="PRODUCTNAME"
->eCos</SPAN
-> repository to manage the installation
- and removal of packages in this way.</P
-><P
->Many users will have their own source code control system,
-version control system or equivalent, and will want to use it with
-<SPAN
-CLASS="PRODUCTNAME"
->eCos</SPAN
-> sources. In that case, since a new release of <SPAN
-CLASS="PRODUCTNAME"
->eCos</SPAN
-> comes with
-different pathnames for all the source files, a bit of work is necessary
-to import a new release into your source repository. </P
-><P
->One way of handling the import is to rename all the version
-parts to some common name, for example “current”,
-and continue to work. “current” is suggested because <B
-CLASS="COMMAND"
->ecosconfig</B
-> recognizes
-it and places it first in any list of versions. In the future, we
-may provide a tool to help with this, or an option in the install
-wizard. Alternatively, in a POSIX shell environment (Linux or Cygwin
-on Windows) use the following command: </P
-><TABLE
-BORDER="5"
-BGCOLOR="#E0E0F0"
-WIDTH="70%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->find . -name <TT
-CLASS="REPLACEABLE"
-><I
-><version></I
-></TT
-> -type d -printf 'mv %p %h/current\n' | sh</PRE
-></TD
-></TR
-></TABLE
-><P
->Having carried out such a renaming operation, your
- source tree will now look like this: </P
-><TABLE
-BORDER="5"
-BGCOLOR="#E0E0F0"
-WIDTH="70%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-><TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/kernel/current/include/
-<TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/kernel/current/src/
-<TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/kernel/current/tests/
- ...
-<TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/compat/uitron/current/include/
-<TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/compat/uitron/current/src/
-<TT
-CLASS="REPLACEABLE"
-><I
->BASE_DIR</I
-></TT
->/compat/uitron/current/tests/
- </PRE
-></TD
-></TR
-></TABLE
-><P
->which is a suitable format for import into your own
- source code control system. When you get a subsequent
- release of <SPAN
-CLASS="PRODUCTNAME"
->eCos</SPAN
->, do the same thing and use your own source
- code control system to manage the new source base, by
- importing the new version from </P
-><TABLE
-BORDER="5"
-BGCOLOR="#E0E0F0"
-WIDTH="70%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-><TT
-CLASS="REPLACEABLE"
-><I
->NEW_BASE_DIR</I
-></TT
->/kernel/current/include/</PRE
-></TD
-></TR
-></TABLE
-><P
->and so on. </P
-><P
->The <SPAN
-CLASS="PRODUCTNAME"
->eCos</SPAN
-> build tool will now offer only the
- “current” version of each package; select this
- for the packages you wish to use. </P
-><P
->Making such a change has implications for any build
- trees you already have in use. A configured build tree
- contains information about the selected packages and their
- selected versions. Changing the name of the
- “versioning” folder in the source tree
- invalidates this information, and in consequence it also
- invalidates any local configuration options you have set up
- in this build tree. So if you want to change the version
- information in the source tree, do it first, before
- investing any serious time in configuring and building your
- system. When you create a new build tree to deal with the
- new source layout, it will contain default settings for all
- the configuration options, just like the old build tree did
- before you configured it. You will need to redo that
- configuration work in the new tree. </P
-><P
->Moving source code around also invalidates debugging information
-in any programs or libraries built from the old tree; these will
-need to be rebuilt. </P
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-SUMMARY="Footer navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="managing-package-repository.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="ecos-user-guide.html"
-ACCESSKEY="H"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="appendices.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->Managing the Package Repository</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="managing-package-repository.html"
-ACCESSKEY="U"
->Up</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->Appendixes</TD
-></TR
-></TABLE
-></DIV
-></BODY
-></HTML
->
\ No newline at end of file