亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? build.make.html

?? ecos 文檔
?? HTML
?? 第 1 頁 / 共 4 頁
字號:
<!-- 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
>Building eCos</TITLE
><meta name="MSSmartTagsPreventParsing" content="TRUE">
<META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="The eCos Component Writer's Guide"
HREF="cdl-guide.html"><LINK
REL="UP"
TITLE="The Build Process"
HREF="build.html"><LINK
REL="PREVIOUS"
TITLE="Configuration Header File Generation"
HREF="build.headers.html"><LINK
REL="NEXT"
TITLE="Building Test Cases"
HREF="build.tests.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"
>The <SPAN
CLASS="APPLICATION"
>eCos</SPAN
> Component Writer's Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="build.headers.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. The Build Process</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="build.tests.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="BUILD.MAKE">Building eCos</H1
><P
>The primary goal of an eCos build is to produce the library
<TT
CLASS="FILENAME"
>libtarget.a</TT
>. A typical <SPAN
CLASS="APPLICATION"
>eCos</SPAN
> build will also
generate a number of other targets: <TT
CLASS="FILENAME"
>extras.o</TT
>,
startup code <TT
CLASS="FILENAME"
>vectors.o</TT
>, and a linker script. Some
packages may cause additional libraries or targets to be generated.
The basic build process involves a number of different phases with
corresponding priorities. There are a number of predefined priorities:</P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2463"><P
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
WIDTH="50%"
ALIGN="RIGHT"
VALIGN="TOP"
>Priority</TH
><TH
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>Action</TH
></TR
></THEAD
><TBODY
><TR
><TD
WIDTH="50%"
ALIGN="RIGHT"
VALIGN="TOP"
>0</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>Export header files</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="RIGHT"
VALIGN="TOP"
>100</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>Process <SPAN
CLASS="PROPERTY"
>compile</SPAN
> properties</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="RIGHT"
VALIGN="TOP"
>&nbsp;</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>and most <SPAN
CLASS="PROPERTY"
>make_object</SPAN
> custom build steps</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="RIGHT"
VALIGN="TOP"
>200</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>Generate libraries</TD
></TR
><TR
><TD
WIDTH="50%"
ALIGN="RIGHT"
VALIGN="TOP"
>300</TD
><TD
WIDTH="50%"
ALIGN="LEFT"
VALIGN="TOP"
>Process <SPAN
CLASS="PROPERTY"
>make</SPAN
> custom build steps</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><P
>Generation of the <TT
CLASS="FILENAME"
>extras.o</TT
> file, the startup code
and the linker script actually happens via <SPAN
CLASS="PROPERTY"
>make</SPAN
> custom build steps,
typically defined in appropriate HAL packages. The component framework
has no special knowledge of these targets.</P
><P
>By default custom build steps for a <SPAN
CLASS="PROPERTY"
>make_object</SPAN
> property happen
during the same phase as most compilations, but this can be changed
using a <TT
CLASS="LITERAL"
>-priority</TT
> option. Similarly custom build
steps for a <SPAN
CLASS="PROPERTY"
>make</SPAN
> property happen at the end of a build, but this can
also be changed with a <TT
CLASS="LITERAL"
>-priority</TT
> option. For
example a priority of 50 can be used to run a custom build step
between the header file export phase and the main compilation phase.
Custom build steps are discussed in more detail below.</P
><P
>Some build systems may run several commands of the same priority in
parallel. For example files listed in <SPAN
CLASS="PROPERTY"
>compile</SPAN
> properties may get
compiled in parallel, concurrently with <SPAN
CLASS="PROPERTY"
>make_object</SPAN
> custom build
steps with default priorities. Since most of the time for an <SPAN
CLASS="APPLICATION"
>eCos</SPAN
>
build involves processing <SPAN
CLASS="PROPERTY"
>compile</SPAN
> properties, this allows builds to
be speeded up on suitable host hardware. All build steps for a given
phase will complete before the next phase is started.</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="BUILD.MAKE.UPDATE">Updating the Build Tree</H2
><P
>Some build systems may involve a phase before the header files get
exported, to update the build and install trees automatically when
there has been a change to the configuration savefile
<TT
CLASS="FILENAME"
>ecos.ecc</TT
>. This is useful mainly for application
developers using the command line tools: it would allow users to
create the build tree only once, and after any subsequent
configuration changes the tree would be updated automatically by the
build system. The facility would be analogous to the
<TT
CLASS="LITERAL"
>--enable-maintainer-mode</TT
> option provide by the
<SPAN
CLASS="APPLICATION"
>autoconf</SPAN
> and <SPAN
CLASS="APPLICATION"
>automake</SPAN
> programs. At present no <SPAN
CLASS="APPLICATION"
>eCos</SPAN
>
build system implements this functionality, but it is likely to be
added in a future release.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="BUILD.MAKE.EXPORT">Exporting Public Header Files</H2
><P
>The first compulsory phase involves making sure that there is an up to
date set of header files in the install tree. Each package can contain
some number of header files defining the exported interface.
Applications should only use exported functionality. A package can
also contain some number of private header files which are only of
interest to the implementation, and which should not be visible to
application code. The various packages that go into a particular
configuration can be spread all over the component repository. In
theory it might be possible to make all the exported header files
accessible by having a lengthy <TT
CLASS="LITERAL"
>-I</TT
> header file
search path, but this would be inconvenient both for building eCos and
for building applications. Instead all the relevant header files are
copied to a single location, the <TT
CLASS="FILENAME"
>include</TT
> subdirectory of the install tree.
The process involves the following:</P
><P
></P
><OL
TYPE="1"
><LI
><P
>The install tree, for example <TT
CLASS="FILENAME"
>/usr/local/ecos/install</TT
>, and its <TT
CLASS="FILENAME"
>include</TT
> subdirectory <TT
CLASS="FILENAME"
>/usr/local/ecos/install/include</TT
> will typically be
created when the build tree is generated or updated. At the same time
configuration header files will be written to the <TT
CLASS="FILENAME"
>pkgconf</TT
> subdirectory, for example
<TT
CLASS="FILENAME"
>/usr/local/ecos/include/pkgconf</TT
>, so that
the configuration data is visible to all the packages and to
application code that may wish to examine some of the configuration
options.</P
></LI
><LI
><P
>Each package in the configuration is examined for exported header
files. The exact order in which the packages are processed is not
defined, but should not matter.</P
><P
></P
><OL
TYPE="a"
><LI
><P
>If the package has an <A
HREF="ref.include-files.html"
><SPAN
CLASS="PROPERTY"
>include_files</SPAN
></A
> property then this
lists all the exported header files:</P
><TABLE
BORDER="5"
BGCOLOR="#E0E0F0"
WIDTH="70%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>cdl_package &lt;some_package&gt; {
    &#8230;
    include_files header1.h header2.h
}    </PRE
></TD
></TR
></TABLE
><P
>If no arguments are given then the package does not export any header
files.</P
><TABLE
BORDER="5"
BGCOLOR="#E0E0F0"
WIDTH="70%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>cdl_package &lt;some_package&gt; {
    &#8230;
    include_files
}    </PRE
></TD
></TR
></TABLE
><P
>The listed files may be in an <TT
CLASS="FILENAME"
>include</TT
> subdirectory within the package's
hierarchy, or they may be relative to the package's toplevel
directory. The <SPAN
CLASS="PROPERTY"
>include_files</SPAN
> property is intended mainly for very
simple packages. It can also be useful when converting existing code
to an <SPAN
CLASS="APPLICATION"
>eCos</SPAN
> package, to avoid rearranging the sources.</P
></LI
><LI
><P
>If there is no <SPAN
CLASS="PROPERTY"
>include_files</SPAN
> property then the component framework
will look for an <TT
CLASS="FILENAME"
>include</TT
>
subdirectory in the package, as per the layout conventions. All files,
including those in subdirectories, will be treated as exported header
files. For example, the math library package contains files <TT
CLASS="FILENAME"
>include/math.h</TT
> and <TT
CLASS="FILENAME"
>include/sys/ieeefp.h</TT
>, both of which will
be exported to the install tree.</P
></LI
><LI
><P
>As a last resort, if there is neither an <SPAN
CLASS="PROPERTY"
>include_files</SPAN
> property nor
an <TT
CLASS="FILENAME"
>include</TT
> subdirectory, the
component framework will search the package's toplevel directory and
all of its subdirectories for files with one of the following
suffixes: <TT
CLASS="LITERAL"
>.h</TT
>, <TT
CLASS="LITERAL"
>.hxx</TT
>,
<TT
CLASS="LITERAL"
>.inl</TT
> or <TT
CLASS="LITERAL"
>.inc</TT
>. All such files
will be interpreted as exported header files.</P
><P
>This last resort rule could cause confusion for packages which have no
exported header files but which do contain one or more private header
files. For example a typical device driver simply implements an
existing interface rather than define a new one, so it does not need
to export a header file. However it may still have one or more private
header files. Such packages should use an <SPAN
CLASS="PROPERTY"
>include_files</SPAN
> property
with no arguments.</P
></LI
></OL
></LI
><LI
><P
>If the package has one or more exported header files, the next step is
to determine where the files should end up. By default all exported
header files will just end up relative to the install tree's <TT
CLASS="FILENAME"
>include</TT
> subdirectory. For example the
math library's <TT
CLASS="FILENAME"
>math.h</TT
> header
would end up as <TT
CLASS="FILENAME"
>/usr/local/ecos/include/math.h</TT
>,
and the <TT
CLASS="FILENAME"
>sys/ieeefp.h</TT
> header
would end up as
<TT
CLASS="FILENAME"
>/usr/local/ecos/include/sys/ieeefp.h</TT
>. This
behaviour is correct for packages like the C library where the
interface is defined by appropriate standards. For other packages this
behaviour can lead to file name clashes, and the <A
HREF="ref.include-dir.html"
><SPAN
CLASS="PROPERTY"
>include_dir</SPAN
></A
> property should be used
to avoid this:</P
><TABLE
BORDER="5"
BGCOLOR="#E0E0F0"
WIDTH="70%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>cdl_package CYGPKG_KERNEL {
    include_dir cyg/kernel
}</PRE
></TD
></TR
></TABLE
><P
>This means that the kernel's exported header file
<TT
CLASS="FILENAME"
>include/kapi.h</TT
> should be copied to
<TT
CLASS="FILENAME"
>/usr/local/ecos/include/cyg/kernel/kapi.h</TT
>, where
it is very unlikely to clash with a header file from some other
package.</P
></LI
><LI
><P
>For typical application developers there will be little or no need for
the installed header files to change after the first build. Changes
will be necessary only if packages are added to or removed from the
configuration. For component writers, the build system should detect
changes to the master copy of the header file source code and update
the installed copies automatically during the next build. The build
system is expected to perform a header file dependency analysis, so
any source files affected should get rebuilt as well.</P
></LI
><LI
><P
>Some build systems may provide additional support for application
developers who want to make minor changes to a package, especially for
debugging purposes. A header file could be copied from the
component repository (which for application developers is assumed to
be a read-only resource) into the build tree and edited there. The
build system would detect a more recent version of such a header file
in the build tree and install it. Care would have to be taken to
recover properly if the modified copy in the build tree is
subsequently removed, in order to revert to the original behaviour.</P
></LI
><LI
><P
>When updating the install tree's <TT
CLASS="FILENAME"
>include</TT
> subdirectory, the build tree may
also perform a clean-up operation. Specifically, it may check for any
files which do not correspond to known exported header files and

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩色在线观看| 首页国产欧美日韩丝袜| 国产日韩欧美a| 成人欧美一区二区三区视频网页| 日韩视频免费直播| 亚洲精品国产成人久久av盗摄| 亚洲成人一二三| 精一区二区三区| 国产成人免费在线| 9191成人精品久久| 亚洲欧洲日韩av| 日本亚洲天堂网| 色综合一个色综合亚洲| 欧美亚洲日本国产| 欧美激情在线观看视频免费| 亚洲午夜视频在线| 成人午夜在线视频| 欧美xxx久久| 亚洲欧美日韩人成在线播放| 欧美一区在线视频| 亚洲尤物视频在线| 欧美综合一区二区| 久久国产精品99精品国产| 色94色欧美sute亚洲线路一ni | 精品一区二区日韩| 中文字幕一区二区三区在线不卡| 欧美日韩一级片网站| 日韩精品一区二区三区四区视频| 亚洲激情自拍偷拍| 国产成人免费在线| 亚洲欧美激情小说另类| 99在线精品视频| 欧美国产亚洲另类动漫| 欧美午夜精品一区二区三区| 九九**精品视频免费播放| 欧美大片在线观看一区二区| 国产一区在线不卡| 亚洲三级电影网站| 337p亚洲精品色噜噜噜| 亚洲一区二区三区国产| 在线电影国产精品| 亚洲码国产岛国毛片在线| 日韩一区二区影院| 色拍拍在线精品视频8848| 午夜天堂影视香蕉久久| 久久精品理论片| 久久99精品国产麻豆婷婷| 亚洲.国产.中文慕字在线| 99国产精品国产精品久久| 国产精品无圣光一区二区| 国模冰冰炮一区二区| 国产综合色产在线精品 | 久久久一区二区三区| 精品国产第一区二区三区观看体验| 一区二区三区国产精华| 成人97人人超碰人人99| 一区二区在线观看免费视频播放| www.亚洲免费av| 国产精品沙发午睡系列990531| 91蝌蚪porny成人天涯| 亚洲人成7777| 欧美日韩在线播放| 欧美一区二区三区的| 一本大道综合伊人精品热热| 成人午夜免费电影| 成人免费毛片a| 福利电影一区二区三区| 韩国精品一区二区| 国产成a人亚洲| 91精品国产综合久久国产大片| 久久理论电影网| 97超碰欧美中文字幕| 91黄色免费看| 国产日韩在线不卡| www.视频一区| 中文字幕久久午夜不卡| 成人午夜看片网址| 国产精品美女久久久久高潮| 91传媒视频在线播放| 美女视频第一区二区三区免费观看网站| 色94色欧美sute亚洲线路一久| 亚洲第一二三四区| 国产成人超碰人人澡人人澡| 99久久精品国产麻豆演员表| 在线观看精品一区| 欧美主播一区二区三区美女| 一区二区三区在线播放| 粉嫩绯色av一区二区在线观看| 日韩午夜精品视频| 亚洲午夜久久久久久久久电影网| www.欧美.com| 欧美一区二区在线看| 国产目拍亚洲精品99久久精品| 国产精品视频麻豆| 精品99一区二区三区| 奇米精品一区二区三区在线观看一 | 亚洲欧美日韩一区二区| 精品一区二区在线视频| 国产精品成人免费| 精品少妇一区二区| 麻豆精品在线视频| 国产精品久久久一本精品| 色婷婷精品久久二区二区蜜臀av| 亚洲午夜av在线| 久久久久综合网| 国产成人免费在线视频| 国产女人aaa级久久久级 | 中文一区在线播放| 日韩和欧美一区二区三区| 色94色欧美sute亚洲13| 乱一区二区av| 专区另类欧美日韩| av毛片久久久久**hd| 99在线视频精品| 中文字幕不卡在线观看| www.日韩精品| 亚洲一区电影777| 日韩欧美中文字幕一区| 久久成人精品无人区| 亚洲欧美一区二区三区久本道91 | 日韩欧美一区二区不卡| 欧美精品在线视频| 色一区在线观看| 9l国产精品久久久久麻豆| 国产在线播放一区二区三区| 樱桃国产成人精品视频| 国产精品久久久爽爽爽麻豆色哟哟| 色拍拍在线精品视频8848| 色狠狠av一区二区三区| av在线播放不卡| av在线播放不卡| 欧美日本乱大交xxxxx| 欧美日韩在线直播| 欧美剧情电影在线观看完整版免费励志电影| 欧美性猛交一区二区三区精品| 欧美精品精品一区| 欧美电影免费观看完整版| 久久精品日产第一区二区三区高清版 | 欧美亚洲愉拍一区二区| 一本色道久久综合亚洲91| 在线不卡欧美精品一区二区三区| 欧美日韩国产首页在线观看| 欧美日韩一区二区欧美激情| 欧美日韩精品免费| 色视频欧美一区二区三区| 91精品国产麻豆国产自产在线 | 亚洲天堂成人网| 亚洲午夜激情av| 日本成人在线不卡视频| 成人精品鲁一区一区二区| 色综合久久久久综合| 色狠狠综合天天综合综合| 欧美日韩一区二区三区四区| 欧美成人精品高清在线播放| 久久九九久久九九| 中文字幕亚洲欧美在线不卡| 一区二区三区在线免费观看| 亚洲欧洲www| 看片网站欧美日韩| 成人av免费在线观看| 在线免费观看日韩欧美| 日韩欧美一级二级三级久久久 | 欧美大肚乱孕交hd孕妇| 国产拍欧美日韩视频二区| 亚洲精品欧美激情| 日产国产高清一区二区三区| 99riav久久精品riav| 欧美电影在哪看比较好| 久久久久久久久蜜桃| 中文字幕av不卡| 捆绑变态av一区二区三区| 99久久精品一区| 日韩精品一区二区在线| 国产欧美一区二区精品性| 一区二区三区四区蜜桃| 日韩国产高清影视| 欧美视频在线一区二区三区 | 国产精品一二三| 欧美午夜在线一二页| 久久精品视频在线免费观看| 亚洲欧美日韩系列| 成人av资源网站| 日韩欧美国产精品一区| 亚洲宅男天堂在线观看无病毒| 国产成人av一区| 欧美一区二区国产| 亚洲综合小说图片| 成人免费黄色在线| 中文字幕av在线一区二区三区| 免费精品99久久国产综合精品| 91视频在线观看免费| 国产三区在线成人av| 国产一区二区三区国产| 欧美精品国产精品| 亚洲一区二区成人在线观看| 久久99久久久欧美国产| 日韩欧美中文字幕公布| 亚洲动漫第一页| 色婷婷亚洲精品| 精品国产麻豆免费人成网站|