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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [doc/] [html/] [cdl-guide/] [language.naming.html] - Diff between revs 28 and 174

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 28 Rev 174
<!-- Copyright (C) 2003 Red Hat, Inc.                                -->
<!-- Copyright (C) 2003 Red Hat, Inc.                                -->
<!-- This material may be distributed only subject to the terms      -->
<!-- This material may be distributed only subject to the terms      -->
<!-- and conditions set forth in the Open Publication License, v1.0  -->
<!-- and conditions set forth in the Open Publication License, v1.0  -->
<!-- or later (the latest version is presently available at          -->
<!-- or later (the latest version is presently available at          -->
<!-- http://www.opencontent.org/openpub/).                           -->
<!-- http://www.opencontent.org/openpub/).                           -->
<!-- Distribution of the work or derivative of the work in any       -->
<!-- Distribution of the work or derivative of the work in any       -->
<!-- standard (paper) book form is prohibited unless prior           -->
<!-- standard (paper) book form is prohibited unless prior           -->
<!-- permission is obtained from the copyright holder.               -->
<!-- permission is obtained from the copyright holder.               -->
<HTML
<HTML
><HEAD
><HEAD
><TITLE
><TITLE
>Option Naming Convention</TITLE
>Option Naming Convention</TITLE
><meta name="MSSmartTagsPreventParsing" content="TRUE">
><meta name="MSSmartTagsPreventParsing" content="TRUE">
<META
<META
NAME="GENERATOR"
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
"><LINK
REL="HOME"
REL="HOME"
TITLE="The eCos Component Writer's Guide"
TITLE="The eCos Component Writer's Guide"
HREF="cdl-guide.html"><LINK
HREF="cdl-guide.html"><LINK
REL="UP"
REL="UP"
TITLE="The CDL Language"
TITLE="The CDL Language"
HREF="language.html"><LINK
HREF="language.html"><LINK
REL="PREVIOUS"
REL="PREVIOUS"
TITLE="CDL Properties"
TITLE="CDL Properties"
HREF="language.properties.html"><LINK
HREF="language.properties.html"><LINK
REL="NEXT"
REL="NEXT"
TITLE="An Introduction to Tcl"
TITLE="An Introduction to Tcl"
HREF="language.tcl.html"></HEAD
HREF="language.tcl.html"></HEAD
><BODY
><BODY
CLASS="SECT1"
CLASS="SECT1"
BGCOLOR="#FFFFFF"
BGCOLOR="#FFFFFF"
TEXT="#000000"
TEXT="#000000"
LINK="#0000FF"
LINK="#0000FF"
VLINK="#840084"
VLINK="#840084"
ALINK="#0000FF"
ALINK="#0000FF"
><DIV
><DIV
CLASS="NAVHEADER"
CLASS="NAVHEADER"
><TABLE
><TABLE
SUMMARY="Header navigation table"
SUMMARY="Header navigation table"
WIDTH="100%"
WIDTH="100%"
BORDER="0"
BORDER="0"
CELLPADDING="0"
CELLPADDING="0"
CELLSPACING="0"
CELLSPACING="0"
><TR
><TR
><TH
><TH
COLSPAN="3"
COLSPAN="3"
ALIGN="center"
ALIGN="center"
>The <SPAN
>The <SPAN
CLASS="APPLICATION"
CLASS="APPLICATION"
>eCos</SPAN
>eCos</SPAN
> Component Writer's Guide</TH
> Component Writer's Guide</TH
></TR
></TR
><TR
><TR
><TD
><TD
WIDTH="10%"
WIDTH="10%"
ALIGN="left"
ALIGN="left"
VALIGN="bottom"
VALIGN="bottom"
><A
><A
HREF="language.properties.html"
HREF="language.properties.html"
ACCESSKEY="P"
ACCESSKEY="P"
>Prev</A
>Prev</A
></TD
></TD
><TD
><TD
WIDTH="80%"
WIDTH="80%"
ALIGN="center"
ALIGN="center"
VALIGN="bottom"
VALIGN="bottom"
>Chapter 3. The CDL Language</TD
>Chapter 3. The CDL Language</TD
><TD
><TD
WIDTH="10%"
WIDTH="10%"
ALIGN="right"
ALIGN="right"
VALIGN="bottom"
VALIGN="bottom"
><A
><A
HREF="language.tcl.html"
HREF="language.tcl.html"
ACCESSKEY="N"
ACCESSKEY="N"
>Next</A
>Next</A
></TD
></TD
></TR
></TR
></TABLE
></TABLE
><HR
><HR
ALIGN="LEFT"
ALIGN="LEFT"
WIDTH="100%"></DIV
WIDTH="100%"></DIV
><DIV
><DIV
CLASS="SECT1"
CLASS="SECT1"
><H1
><H1
CLASS="SECT1"
CLASS="SECT1"
><A
><A
NAME="LANGUAGE.NAMING">Option Naming Convention</H1
NAME="LANGUAGE.NAMING">Option Naming Convention</H1
><P
><P
>All the options in a given configuration live in the same namespace.
>All the options in a given configuration live in the same namespace.
Furthermore it is not possible for two separate options to have the
Furthermore it is not possible for two separate options to have the
same name, because this would make any references to those options in
same name, because this would make any references to those options in
<SPAN
<SPAN
CLASS="APPLICATION"
CLASS="APPLICATION"
>CDL</SPAN
>CDL</SPAN
> expressions ambiguous. A naming convention exists to avoid
> expressions ambiguous. A naming convention exists to avoid
problems. It is recommended that component writers observe some or all
problems. It is recommended that component writers observe some or all
of this convention to reduce the probability of name clashes with
of this convention to reduce the probability of name clashes with
other packages.</P
other packages.</P
><P
><P
>There is an important restriction on option names. Typically the
>There is an important restriction on option names. Typically the
component framework will output a <TT
component framework will output a <TT
CLASS="LITERAL"
CLASS="LITERAL"
>#define</TT
>#define</TT
> for every
> for every
active and enabled option, using the name as the symbol being defined.
active and enabled option, using the name as the symbol being defined.
This requires that all names are valid C preprocessor symbols, a
This requires that all names are valid C preprocessor symbols, a
limitation that is enforced even for options which have the
limitation that is enforced even for options which have the
<SPAN
<SPAN
CLASS="PROPERTY"
CLASS="PROPERTY"
>no_define</SPAN
>no_define</SPAN
> property. Preprocessor symbols can be any sequence of
> property. Preprocessor symbols can be any sequence of
lower case letters <TT
lower case letters <TT
CLASS="LITERAL"
CLASS="LITERAL"
>a</TT
>a</TT
>-<TT
>-<TT
CLASS="LITERAL"
CLASS="LITERAL"
>z</TT
>z</TT
>, upper
>, upper
case letters, <TT
case letters, <TT
CLASS="LITERAL"
CLASS="LITERAL"
>A</TT
>A</TT
>-<TT
>-<TT
CLASS="LITERAL"
CLASS="LITERAL"
>Z</TT
>Z</TT
>, the
>, the
underscore character <TT
underscore character <TT
CLASS="LITERAL"
CLASS="LITERAL"
>_</TT
>_</TT
>, and the digits
>, and the digits
<TT
<TT
CLASS="LITERAL"
CLASS="LITERAL"
>0</TT
>0</TT
>-<TT
>-<TT
CLASS="LITERAL"
CLASS="LITERAL"
>9</TT
>9</TT
>. The first character must be
>. The first character must be
a non-digit. Using an underscore as the first character is
a non-digit. Using an underscore as the first character is
discouraged, because that may clash with reserved language
discouraged, because that may clash with reserved language
identifiers. In addition there is a convention that preprocessor
identifiers. In addition there is a convention that preprocessor
symbols only use upper case letters, and some component writers may
symbols only use upper case letters, and some component writers may
wish to follow this convention.</P
wish to follow this convention.</P
><P
><P
>A typical option name could be something like
>A typical option name could be something like
<TT
<TT
CLASS="VARNAME"
CLASS="VARNAME"
>CYGSEM_KERNEL_SCHED_BITMAP</TT
>CYGSEM_KERNEL_SCHED_BITMAP</TT
>. This name consists of
>. This name consists of
several different parts:</P
several different parts:</P
><P
><P
></P
></P
><OL
><OL
TYPE="1"
TYPE="1"
><LI
><LI
><P
><P
>The first few characters, in this case the three letters
>The first few characters, in this case the three letters
<TT
<TT
CLASS="LITERAL"
CLASS="LITERAL"
>CYG</TT
>CYG</TT
>, are used to identify the organization that
>, are used to identify the organization that
produced the package. For historical reasons packages produced by Red
produced the package. For historical reasons packages produced by Red
Hat tend to use the prefix <TT
Hat tend to use the prefix <TT
CLASS="LITERAL"
CLASS="LITERAL"
>CYG</TT
>CYG</TT
> rather than
> rather than
<TT
<TT
CLASS="LITERAL"
CLASS="LITERAL"
>RHAT</TT
>RHAT</TT
>. Component writers should use their own
>. Component writers should use their own
prefix: even when cutting and pasting from an existing <SPAN
prefix: even when cutting and pasting from an existing <SPAN
CLASS="APPLICATION"
CLASS="APPLICATION"
>CDL</SPAN
>CDL</SPAN
> script
> script
the prefix should be changed to something appropriate to their
the prefix should be changed to something appropriate to their
organization. </P
organization. </P
><P
><P
>It can be argued that a short prefix, often limited to upper case
>It can be argued that a short prefix, often limited to upper case
letters, is not sufficiently long to eliminate the possibility of
letters, is not sufficiently long to eliminate the possibility of
name clashes. A longer prefix could be used, for example one based on
name clashes. A longer prefix could be used, for example one based on
internet domain names. However the C preprocessor has no concept of
internet domain names. However the C preprocessor has no concept of
namespaces or <TT
namespaces or <TT
CLASS="LITERAL"
CLASS="LITERAL"
>import</TT
>import</TT
> directives, so it would always
> directives, so it would always
be necessary to use the full option name in component source code
be necessary to use the full option name in component source code
which gets tedious - option names tend to be long enough as it is.
which gets tedious - option names tend to be long enough as it is.
There is a small increased risk of name clashes, but this risk is felt
There is a small increased risk of name clashes, but this risk is felt
to be acceptable.</P
to be acceptable.</P
></LI
></LI
><LI
><LI
><P
><P
>The next three characters indicate the nature of the option, for
>The next three characters indicate the nature of the option, for
example whether it affects the interface or just the implementation. A
example whether it affects the interface or just the implementation. A
list of common tags is given below.</P
list of common tags is given below.</P
></LI
></LI
><LI
><LI
><P
><P
>The <TT
>The <TT
CLASS="LITERAL"
CLASS="LITERAL"
>KERNEL_SCHED</TT
>KERNEL_SCHED</TT
> part indicates the location of the
> part indicates the location of the
option within the overall hierarchy. In this case the option is part of
option within the overall hierarchy. In this case the option is part of
the scheduling component of the kernel package. Having the hierarchy
the scheduling component of the kernel package. Having the hierarchy
details as part of the option name can help in understanding
details as part of the option name can help in understanding
configurable code and further reduces the probability of a name clash.</P
configurable code and further reduces the probability of a name clash.</P
></LI
></LI
><LI
><LI
><P
><P
>The final part, <TT
>The final part, <TT
CLASS="LITERAL"
CLASS="LITERAL"
>BITMAP</TT
>BITMAP</TT
>, identifies the option
>, identifies the option
itself. </P
itself. </P
></LI
></LI
></OL
></OL
><P
><P
>The three-character tag is intended to provide some additional
>The three-character tag is intended to provide some additional
information about the nature of the option. There are a number of
information about the nature of the option. There are a number of
pre-defined tags. However for many options there is a choice:
pre-defined tags. However for many options there is a choice:
options related to the platform should normally use
options related to the platform should normally use
<TT
<TT
CLASS="LITERAL"
CLASS="LITERAL"
>HWR</TT
>HWR</TT
>, but numerical options should normally use
>, but numerical options should normally use
<TT
<TT
CLASS="LITERAL"
CLASS="LITERAL"
>NUM</TT
>NUM</TT
>; a platform-related numerical option such as
>; a platform-related numerical option such as
the size of an interrupt stack could therefore use either tag.
the size of an interrupt stack could therefore use either tag.
There are no absolute rules, and it is left to component writers to
There are no absolute rules, and it is left to component writers to
interpret the following guidelines:</P
interpret the following guidelines:</P
><P
><P
></P
></P
><DIV
><DIV
CLASS="VARIABLELIST"
CLASS="VARIABLELIST"
><DL
><DL
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxARC_</TT
>xxxARC_</TT
></DT
></DT
><DD
><DD
><P
><P
>The <TT
>The <TT
CLASS="LITERAL"
CLASS="LITERAL"
>ARC</TT
>ARC</TT
> tag is intended for options related
> tag is intended for options related
to the processor architecture. Typically such options will only occur
to the processor architecture. Typically such options will only occur
in architectural or variant HAL packages.</P
in architectural or variant HAL packages.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxHWR_</TT
>xxxHWR_</TT
></DT
></DT
><DD
><DD
><P
><P
>The <TT
>The <TT
CLASS="LITERAL"
CLASS="LITERAL"
>HWR</TT
>HWR</TT
> tag is intended for options related to
> tag is intended for options related to
the specific target board. Typically such options will only occur in
the specific target board. Typically such options will only occur in
platform HAL packages.</P
platform HAL packages.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxPKG_</TT
>xxxPKG_</TT
></DT
></DT
><DD
><DD
><P
><P
>This tag is intended for packages or components, in other words
>This tag is intended for packages or components, in other words
options which extend the configuration hierarchy. Arguably a
options which extend the configuration hierarchy. Arguably a
<TT
<TT
CLASS="LITERAL"
CLASS="LITERAL"
>COM</TT
>COM</TT
> tag would be more appropriate for
> tag would be more appropriate for
components, but this could be confusing because of the considerable
components, but this could be confusing because of the considerable
number of computing terms that begin with com.</P
number of computing terms that begin with com.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxGLO_</TT
>xxxGLO_</TT
></DT
></DT
><DD
><DD
><P
><P
>This is intended for global configuration options, especially
>This is intended for global configuration options, especially
preferences.</P
preferences.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxDBG_</TT
>xxxDBG_</TT
></DT
></DT
><DD
><DD
><P
><P
>The <TT
>The <TT
CLASS="LITERAL"
CLASS="LITERAL"
>DBG</TT
>DBG</TT
> tag indicates that the option is in
> tag indicates that the option is in
some way related to debugging, for example it may enable assertions in
some way related to debugging, for example it may enable assertions in
some part of the system.</P
some part of the system.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxTST_</TT
>xxxTST_</TT
></DT
></DT
><DD
><DD
><P
><P
>This tag is for testing-related options. Typically these do not
>This tag is for testing-related options. Typically these do not
affect actual application code, instead they control the interaction
affect actual application code, instead they control the interaction
between target-side test cases and a host-side testing infrastructure.</P
between target-side test cases and a host-side testing infrastructure.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxFUN_</TT
>xxxFUN_</TT
></DT
></DT
><DD
><DD
><P
><P
>This is for configuration options which affect the interface of a
>This is for configuration options which affect the interface of a
package. There are a number of related tag which are also
package. There are a number of related tag which are also
interface-related. <TT
interface-related. <TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxFUN_</TT
>xxxFUN_</TT
> is intended primarily
> is intended primarily
for options that control whether or not one or more functions are
for options that control whether or not one or more functions are
provided by the package, but can also be used if none of the other
provided by the package, but can also be used if none of the other
interface-related tags is applicable.</P
interface-related tags is applicable.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxVAR_</TT
>xxxVAR_</TT
></DT
></DT
><DD
><DD
><P
><P
>This is analogous to <TT
>This is analogous to <TT
CLASS="LITERAL"
CLASS="LITERAL"
>FUN</TT
>FUN</TT
> but controls the presence
> but controls the presence
or absence of one or more variables or objects.</P
or absence of one or more variables or objects.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxCLS_</TT
>xxxCLS_</TT
></DT
></DT
><DD
><DD
><P
><P
>The <TT
>The <TT
CLASS="LITERAL"
CLASS="LITERAL"
>CLS</TT
>CLS</TT
> tag is intended only for packages that
> tag is intended only for packages that
provide an object-oriented interface, and controls the presence or
provide an object-oriented interface, and controls the presence or
absence of an entire class.</P
absence of an entire class.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxMFN_</TT
>xxxMFN_</TT
></DT
></DT
><DD
><DD
><P
><P
>This is also for object-orientated interfaces, and indicates the
>This is also for object-orientated interfaces, and indicates the
presence or absence of a member function rather than an entire class.</P
presence or absence of a member function rather than an entire class.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxSEM_</TT
>xxxSEM_</TT
></DT
></DT
><DD
><DD
><P
><P
>A <TT
>A <TT
CLASS="LITERAL"
CLASS="LITERAL"
>SEM</TT
>SEM</TT
> option does not affect the interface (or if
> option does not affect the interface (or if
does affect the interface, this is incidental). Instead it is used for
does affect the interface, this is incidental). Instead it is used for
options which have a fundamental effect on the semantic behavior of a
options which have a fundamental effect on the semantic behavior of a
package. For example the choice of kernel schedulers is semantic in
package. For example the choice of kernel schedulers is semantic in
nature: it does not affect the interface, in particular the function
nature: it does not affect the interface, in particular the function
<TT
<TT
CLASS="FUNCTION"
CLASS="FUNCTION"
>cyg_thread_create</TT
>cyg_thread_create</TT
> exists irrespective of which
> exists irrespective of which
scheduler has been selected. However it does have a major impact on
scheduler has been selected. However it does have a major impact on
the system's behavior.</P
the system's behavior.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxIMP_</TT
>xxxIMP_</TT
></DT
></DT
><DD
><DD
><P
><P
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>IMP</TT
>IMP</TT
> is for implementation options. These do not
> is for implementation options. These do not
affect either the interface or the semantic behavior (with the
affect either the interface or the semantic behavior (with the
possible exception of timing-related changes). A typical
possible exception of timing-related changes). A typical
implementation option controls whether or not a particular function or
implementation option controls whether or not a particular function or
set of functions should get inlined.</P
set of functions should get inlined.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxNUM_</TT
>xxxNUM_</TT
></DT
></DT
><DD
><DD
><P
><P
>This tag is for numerical options, for example the number of
>This tag is for numerical options, for example the number of
scheduling priority levels.</P
scheduling priority levels.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxDAT_</TT
>xxxDAT_</TT
></DT
></DT
><DD
><DD
><P
><P
>This is for data items that are not numerical in nature, for example a
>This is for data items that are not numerical in nature, for example a
device name.</P
device name.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxBLD_</TT
>xxxBLD_</TT
></DT
></DT
><DD
><DD
><P
><P
>The <TT
>The <TT
CLASS="LITERAL"
CLASS="LITERAL"
>BLD</TT
>BLD</TT
> tag indicates an option that affects
> tag indicates an option that affects
the build process, for example compiler flag settings.</P
the build process, for example compiler flag settings.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxINT_</TT
>xxxINT_</TT
></DT
></DT
><DD
><DD
><P
><P
>This should normally be used for <SPAN
>This should normally be used for <SPAN
CLASS="APPLICATION"
CLASS="APPLICATION"
>CDL</SPAN
>CDL</SPAN
> interfaces, which is a language
> interfaces, which is a language
construct that is largely independent from the interface exported by a
construct that is largely independent from the interface exported by a
package via its header files. For more details of <SPAN
package via its header files. For more details of <SPAN
CLASS="APPLICATION"
CLASS="APPLICATION"
>CDL</SPAN
>CDL</SPAN
> interfaces
> interfaces
see <A
see <A
HREF="language.interface.html"
HREF="language.interface.html"
>the Section called <I
>the Section called <I
>Interfaces</I
>Interfaces</I
></A
></A
>.</P
>.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxPRI_</TT
>xxxPRI_</TT
></DT
></DT
><DD
><DD
><P
><P
>This tag is not normally used for configuration options. Instead
>This tag is not normally used for configuration options. Instead
it is used by <SPAN
it is used by <SPAN
CLASS="APPLICATION"
CLASS="APPLICATION"
>CDL</SPAN
>CDL</SPAN
> scripts to pass additional private information to
> scripts to pass additional private information to
the source code via the configuration header files, typically inside a
the source code via the configuration header files, typically inside a
<SPAN
<SPAN
CLASS="PROPERTY"
CLASS="PROPERTY"
>define_proc</SPAN
>define_proc</SPAN
> property.</P
> property.</P
></DD
></DD
><DT
><DT
><TT
><TT
CLASS="LITERAL"
CLASS="LITERAL"
>xxxSRC_</TT
>xxxSRC_</TT
></DT
></DT
><DD
><DD
><P
><P
>This tag is not normally used for configuration options. Instead
>This tag is not normally used for configuration options. Instead
it can be used by package source code to interact with such options,
it can be used by package source code to interact with such options,
especially in the context of the <SPAN
especially in the context of the <SPAN
CLASS="PROPERTY"
CLASS="PROPERTY"
>if_define</SPAN
>if_define</SPAN
> property.</P
> property.</P
></DD
></DD
></DL
></DL
></DIV
></DIV
><P
><P
>There is one special case of a potential name clash that is worth
>There is one special case of a potential name clash that is worth
mentioning here. When the component framework generates a
mentioning here. When the component framework generates a
configuration header file for a given package, by default it will use
configuration header file for a given package, by default it will use
a name derived from the package name (the <SPAN
a name derived from the package name (the <SPAN
CLASS="PROPERTY"
CLASS="PROPERTY"
>define_header</SPAN
>define_header</SPAN
> property can
> property can
be used to override this). The file name is constructed from the
be used to override this). The file name is constructed from the
package name by removing everything up to and including the first
package name by removing everything up to and including the first
underscore, converting the remainder of the name to lower case, and
underscore, converting the remainder of the name to lower case, and
appending a <TT
appending a <TT
CLASS="LITERAL"
CLASS="LITERAL"
>.h</TT
>.h</TT
> suffix. For example the kernel
> suffix. For example the kernel
package <TT
package <TT
CLASS="VARNAME"
CLASS="VARNAME"
>CYGPKG_KERNEL</TT
>CYGPKG_KERNEL</TT
> will involve a header file
> will involve a header file
<TT
<TT
CLASS="FILENAME"
CLASS="FILENAME"
>pkgconf/kernel.h</TT
>pkgconf/kernel.h</TT
>. If a
>. If a
configuration contained some other package
configuration contained some other package
<TT
<TT
CLASS="VARNAME"
CLASS="VARNAME"
>XYZPKG_KERNEL</TT
>XYZPKG_KERNEL</TT
> then this would attempt to use the
> then this would attempt to use the
same configuration header file, with unfortunate effects. Case
same configuration header file, with unfortunate effects. Case
sensitivity could introduce problems as well, so a package
sensitivity could introduce problems as well, so a package
<TT
<TT
CLASS="VARNAME"
CLASS="VARNAME"
>xyzpkg_kernel</TT
>xyzpkg_kernel</TT
> would involve the same problem. Even
> would involve the same problem. Even
if the header file names preserved the case of the package name, not
if the header file names preserved the case of the package name, not
all file systems are case sensitive. There is no simple solution to
all file systems are case sensitive. There is no simple solution to
this problem. Changing the names of the generated configuration header
this problem. Changing the names of the generated configuration header
files would involve a major incompatible change to the interface, to
files would involve a major incompatible change to the interface, to
solve a problem which is essentially hypothetical in nature.</P
solve a problem which is essentially hypothetical in nature.</P
></DIV
></DIV
><DIV
><DIV
CLASS="NAVFOOTER"
CLASS="NAVFOOTER"
><HR
><HR
ALIGN="LEFT"
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
SUMMARY="Footer navigation table"
WIDTH="100%"
WIDTH="100%"
BORDER="0"
BORDER="0"
CELLPADDING="0"
CELLPADDING="0"
CELLSPACING="0"
CELLSPACING="0"
><TR
><TR
><TD
><TD
WIDTH="33%"
WIDTH="33%"
ALIGN="left"
ALIGN="left"
VALIGN="top"
VALIGN="top"
><A
><A
HREF="language.properties.html"
HREF="language.properties.html"
ACCESSKEY="P"
ACCESSKEY="P"
>Prev</A
>Prev</A
></TD
></TD
><TD
><TD
WIDTH="34%"
WIDTH="34%"
ALIGN="center"
ALIGN="center"
VALIGN="top"
VALIGN="top"
><A
><A
HREF="cdl-guide.html"
HREF="cdl-guide.html"
ACCESSKEY="H"
ACCESSKEY="H"
>Home</A
>Home</A
></TD
></TD
><TD
><TD
WIDTH="33%"
WIDTH="33%"
ALIGN="right"
ALIGN="right"
VALIGN="top"
VALIGN="top"
><A
><A
HREF="language.tcl.html"
HREF="language.tcl.html"
ACCESSKEY="N"
ACCESSKEY="N"
>Next</A
>Next</A
></TD
></TD
></TR
></TR
><TR
><TR
><TD
><TD
WIDTH="33%"
WIDTH="33%"
ALIGN="left"
ALIGN="left"
VALIGN="top"
VALIGN="top"
>CDL Properties</TD
>CDL Properties</TD
><TD
><TD
WIDTH="34%"
WIDTH="34%"
ALIGN="center"
ALIGN="center"
VALIGN="top"
VALIGN="top"
><A
><A
HREF="language.html"
HREF="language.html"
ACCESSKEY="U"
ACCESSKEY="U"
>Up</A
>Up</A
></TD
></TD
><TD
><TD
WIDTH="33%"
WIDTH="33%"
ALIGN="right"
ALIGN="right"
VALIGN="top"
VALIGN="top"
>An Introduction to Tcl</TD
>An Introduction to Tcl</TD
></TR
></TR
></TABLE
></TABLE
></DIV
></DIV
></BODY
></BODY
></HTML
></HTML
 
 

powered by: WebSVN 2.1.0

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