source: SVN/cambria/redboot/packages/infra/current/cdl/infra.cdl @ 1

Last change on this file since 1 was 1, checked in by Tim Harvey, 2 years ago

restored latest version of files from server backup

Signed-off-by: Tim Harvey <tharvey@…>

File size: 14.2 KB
Line 
1# ====================================================================
2#
3#      infra.cdl
4#
5#      Infrastructure configuration data
6#
7# ====================================================================
8#####ECOSGPLCOPYRIGHTBEGIN####
9## -------------------------------------------
10## This file is part of eCos, the Embedded Configurable Operating System.
11## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
12##
13## eCos is free software; you can redistribute it and/or modify it under
14## the terms of the GNU General Public License as published by the Free
15## Software Foundation; either version 2 or (at your option) any later version.
16##
17## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
18## WARRANTY; without even the implied warranty of MERCHANTABILITY or
19## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
20## for more details.
21##
22## You should have received a copy of the GNU General Public License along
23## with eCos; if not, write to the Free Software Foundation, Inc.,
24## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25##
26## As a special exception, if other files instantiate templates or use macros
27## or inline functions from this file, or you compile this file and link it
28## with other works to produce a work based on this file, this file does not
29## by itself cause the resulting work to be covered by the GNU General Public
30## License. However the source code for this file must still be made available
31## in accordance with section (3) of the GNU General Public License.
32##
33## This exception does not invalidate any other reasons why a work based on
34## this file might be covered by the GNU General Public License.
35##
36## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
37## at http://sources.redhat.com/ecos/ecos-license/
38## -------------------------------------------
39#####ECOSGPLCOPYRIGHTEND####
40# ====================================================================
41######DESCRIPTIONBEGIN####
42#
43# Author(s):      bartv
44# Original data:  bartv,hmt
45# Contributors:
46# Date:           1999-06-13
47#
48#####DESCRIPTIONEND####
49#
50# ====================================================================
51
52cdl_package CYGPKG_INFRA {
53    display       "Infrastructure"
54    include_dir   cyg/infra
55    description   "
56        Common types and useful macros.
57        Tracing and assertion facilities.
58        Package startup options."
59
60    compile startup.cxx prestart.cxx pkgstart.cxx userstart.cxx      \
61            dummyxxmain.cxx null.cxx simple.cxx fancy.cxx buffer.cxx \
62            diag.cxx tcdiag.cxx memcpy.c memset.c delete.cxx eprintf.c \
63            pure.cxx
64
65
66    # ====================================================================
67#    cdl_component CYGPKG_INFRA_TYPES {
68#        display       "Common Types"
69#        flavor        none
70#        active_if     0               ;# Not yet configurable.
71#        description   "
72#            These types are used throughout the eCos source code.
73#            Currently there are no configuration options associated
74#            with the Common Types component; they are automatically
75#            set up according to the selected HAL."
76#    }
77
78    # ====================================================================
79    cdl_component CYGPKG_INFRA_DEBUG {
80        display       "Asserts & Tracing"
81        default_value 0
82        description   "
83            The eCos source code contains a significant amount of
84            internal debugging support, in the form of assertions and
85            tracing.
86            Assertions check at runtime that various conditions are as
87            expected; if not, execution is halted.
88            Tracing takes the form of text messages that are output
89            whenever certain events occur, or whenever functions are
90            called or return.
91            The most important property of these checks and messages is
92            that they are not required for the program to run.
93            It is prudent to develop software with assertions enabled,
94            but disable them when making a product release, thus
95            removing the overhead of that checking.
96            It is possible to enable assertions and tracing
97            independently.
98            There are also options controlling the exact behaviour of
99            the assertion and tracing facilities, thus giving users
100            finer control over the code and data size requirements."
101
102        script        debug.cdl
103    }
104
105    # ====================================================================
106    cdl_component CYGPKG_INFRA_STARTUP {
107        display       "Startup options"
108        flavor        none
109        description   "
110            Some packages require a startup routine to be called.
111            This can be carried out by application code, by supplying
112            a routine called cyg_package_start() which calls the
113            appropriate package startup routine(s).
114            Alternatively, this routine can be constructed automatically
115            and configured to call the startup routines of your choice."
116
117        script        startup.cdl
118    }
119
120    # ========================================================================
121    # memcpy()/memset() configuration
122    cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY {
123        display       "Smaller slower memcpy()"
124        default_value 0
125        description   "
126            Enabling this option causes the implementation of
127            the standard memcpy() routine to reduce code
128            size at the expense of execution speed. This
129            option is automatically enabled with the use of
130            the -Os option to the compiler. Also note that
131            the compiler will try to use its own builtin
132            version of memcpy() if possible, ignoring the
133            implementation in this package, unless given
134            the -fno-builtin compiler option."
135    }
136
137    cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET {
138        display       "Smaller slower memset()"
139        default_value 0
140        description   "
141            Enabling this option causes the implementation of
142            the standard memset() routine to reduce code
143            size at the expense of execution speed. This
144            option is automatically enabled with the use of
145            the -Os option to the compiler. Also note that
146            the compiler will try to use its own builtin
147            version of memset() if possible, ignoring the
148            implementation in this package, unless given
149            the -fno-builtin compiler option."
150    }
151
152    # ========================================================================
153
154    cdl_option CYGFUN_INFRA_EMPTY_DELETE_FUNCTIONS {
155        display       "Provide empty C++ delete functions"
156        default_value 1
157        description   "
158            To deal with virtual destructors, where the correct delete()
159            function must be called for the derived class in question, the
160            underlying delete is called when needed, from destructors.  This
161            is regardless of whether the destructor is called by delete itself.
162            So there is a reference to delete() from all destructors.  The
163            default builtin delete() attempts to call free() if there is
164            one defined.  So, if you have destructors, and you have free(),
165            as in malloc() and free(), any destructor counts as a reference
166            to free().  So the dynamic memory allocation code is linked
167            in regardless of whether it gets explicitly called. This
168            increases code and data size needlessly.
169           
170            To defeat this undesirable behaviour, we define empty versions
171            of delete and delete[].  But doing this prevents proper use
172            of dynamic memory in C++ programs via C++'s new and delete
173            operators.
174           
175            Therefore, this option is provided
176            for explicitly disabling the provision of these empty functions,
177            so that new and delete can be used, if that is what is required."
178    }
179
180    # ========================================================================
181
182    cdl_option CYGFUN_INFRA_DUMMY_ABORT {
183        display       "Provide dummy abort() function"
184        requires      !CYGINT_ISO_EXIT
185        default_value { CYGINT_ISO_EXIT == 0 }
186        compile       abort.cxx
187        description   "
188            This option controls the inclusion of a dummy abort() function.
189            Parts of the C and C++ compiler runtime systems contain references
190            to abort(), particulary in the C++ exception handling code. It is
191            not possible to eliminate these references, so this dummy function
192            in included to satisfy them. It is not expected that this function
193            will ever be called, so its current behaviour is to simply loop."
194    }
195
196    # ========================================================================
197
198    cdl_option CYGSEM_INFRA_RESET_ON_TEST_EXIT {
199        display       "Reset platform at end of test case execution"
200        default_value 0
201        description   "
202            If this option is set then test case programs will reset the platform
203            when they terminate, as opposed to the default which is to just hang
204            in a loop."
205    }
206
207    # ========================================================================
208
209    cdl_option CYGFUN_INFRA_DUMMY_STRLEN {
210        display       "Provide dummy strlen() function"
211        requires      !CYGINT_ISO_STRING_STRFUNCS
212        default_value { CYGINT_ISO_STRING_STRFUNCS == 0 }
213        compile       strlen.cxx
214        description   "
215            This option controls the inclusion of a dummy strlen() function.
216            Parts of the C and C++ compiler runtime systems contain references
217            to strlen(), particulary in the C++ exception handling code. It is
218            not possible to eliminate these references, so this dummy function
219            in included to satisfy them. While it is not expected that this function
220            will ever be called, it is functional but uses the simplest, smallest
221            algorithm. There is a faster version of strlen() in the C library."
222    }
223   
224    # ========================================================================
225    # Debugging-related miscellania.
226
227    define_proc {
228        puts $::cdl_header "/***** proc output start *****/"
229        puts $::cdl_header "#include <pkgconf/system.h>"
230        puts $::cdl_header "/*****  proc output end  *****/"
231    }
232
233
234    # ========================================================================
235    # Global compiler option controls
236
237    cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
238        display       "Make all compiler warnings show as errors"
239        requires      { is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") }
240        default_value 0
241        description   "
242            Enabling this option will cause all compiler warnings to show
243            as errors and bring the library build to a halt. This is used
244            to ensure that the code base is warning free, and thus ensure
245            that newly introduced warnings stand out and get fixed before
246            they show up as weird run-time behavior."
247    }
248
249    cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
250        display       "Make compiler and assembler communicate by pipe"
251        requires      { is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") }
252        default_value 0
253        description   "
254            Enabling this option will cause the compiler to feed the
255            assembly output the the assembler via a pipe instead of
256            via a temporary file. This normally reduces the build
257            time."
258    }
259
260    # ========================================================================
261    # Package compiler options
262
263    cdl_component CYGPKG_INFRA_OPTIONS {
264        display "Infra build options"
265        flavor  none
266        description   "
267            Package specific build options including control over
268            compiler flags used only in building this package."
269
270
271        cdl_option CYGPKG_INFRA_CFLAGS_ADD {
272            display "Additional compiler flags"
273            flavor  data
274            no_define
275            default_value { "" }
276            description   "
277                This option modifies the set of compiler flags for
278                building the eCos infra package. These flags are used
279                in addition to the set of global flags."
280        }
281
282        cdl_option CYGPKG_INFRA_CFLAGS_REMOVE {
283            display "Suppressed compiler flags"
284            flavor  data
285            no_define
286            default_value { "" }
287            description   "
288                This option modifies the set of compiler flags for
289                building the eCos infra package. These flags are removed from
290                the set of global flags if present."
291        }
292
293        cdl_option CYGPKG_INFRA_LDFLAGS_REMOVE {
294            display "Suppressed linker flags"
295            flavor  data
296            no_define
297            default_value { "-Wl,--gc-sections" }
298            description   "
299                This option modifies the set of linker flags for
300                building the eCos infra package tests. These flags are removed from
301                the set of global flags if present."
302        }
303
304        cdl_option CYGPKG_INFRA_LDFLAGS_ADD {
305            display "Additional linker flags"
306            flavor  data
307            no_define
308            default_value { "-Wl,--fatal-warnings" }
309            description   "
310                This option modifies the set of linker flags for
311                building the eCos infra package tests. These flags are added to
312                the set of global flags if present."
313        }
314
315        cdl_component CYGPKG_INFRA_TESTS {
316            display "Infra package tests"
317            flavor  data
318            no_define
319            calculated { "tests/cxxsupp" }
320
321            cdl_option CYGNUM_TESTS_RUN_COUNT {
322                display "Number of times a test runs"
323                flavor  data
324                default_value 1
325                description "
326                    This option controls the number of times tests will execute their
327                    basic function.  Not all tests will honor this setting, but those
328                    that do will execute the test N times before terminating.  A value
329                    less than 0 indicates to run forever."
330            }
331        }
332
333    }
334}
Note: See TracBrowser for help on using the repository browser.