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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [infra/] [current/] [cdl/] [infra.cdl] - Blame information for rev 786

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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