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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [language/] [c/] [libm/] [current/] [cdl/] [libm.cdl] - Blame information for rev 825

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
# ====================================================================
2
#
3
#      libm.cdl
4
#
5
#      Maths library 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, 2010 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:  jlarmour
44
# Contributors:
45
# Date:           1999-06-13
46
#
47
#####DESCRIPTIONEND####
48
#
49
# ====================================================================
50
 
51
cdl_package CYGPKG_LIBM {
52
    display       "Math library"
53
    doc           ref/libc.html
54
    description   "
55
        ISO standard floating point mathematical library
56
        containing many useful functions for mathematical
57
        calculations."
58
 
59
    compile       misc/matherr.c misc/standard.c misc/compatmode.cxx          \
60
                  misc/infconst.c                                             \
61
                                                                              \
62
                  double/ieee754-core/e_acos.c double/ieee754-core/e_asin.c   \
63
                  double/ieee754-core/e_atan2.c double/ieee754-core/e_cosh.c  \
64
                  double/ieee754-core/e_exp.c double/ieee754-core/e_fmod.c    \
65
                  double/ieee754-core/e_log.c double/ieee754-core/e_log10.c   \
66
                  double/ieee754-core/e_pow.c                                 \
67
                  double/ieee754-core/e_rem_pio2.c                            \
68
                  double/ieee754-core/e_scalb.c double/ieee754-core/e_sinh.c  \
69
                  double/ieee754-core/e_sqrt.c                                \
70
                                                                              \
71
                  double/ieee754-api/w_acos.c double/ieee754-api/w_asin.c     \
72
                  double/ieee754-api/w_atan2.c double/ieee754-api/w_cosh.c    \
73
                  double/ieee754-api/w_exp.c double/ieee754-api/w_fmod.c      \
74
                  double/ieee754-api/w_log.c double/ieee754-api/w_log10.c     \
75
                  double/ieee754-api/w_pow.c double/ieee754-api/w_scalb.c     \
76
                  double/ieee754-api/w_sinh.c double/ieee754-api/w_sqrt.c     \
77
                                                                              \
78
                  double/internal/k_cos.c double/internal/k_rem_pio2.c        \
79
                  double/internal/k_sin.c double/internal/k_tan.c             \
80
                                                                              \
81
                  double/portable-api/s_atan.c double/portable-api/s_ceil.c   \
82
                  double/portable-api/s_copysign.c                            \
83
                  double/portable-api/s_cos.c double/portable-api/s_expm1.c   \
84
                  double/portable-api/s_fabs.c double/portable-api/s_finite.c \
85
                  double/portable-api/s_floor.c double/portable-api/s_frexp.c \
86
                  double/portable-api/s_isnan.c double/portable-api/s_ldexp.c \
87
                  double/portable-api/s_rint.c double/portable-api/s_scalbn.c \
88
                  double/portable-api/s_sin.c double/portable-api/s_tan.c     \
89
                  double/portable-api/s_modf.c double/portable-api/s_tanh.c
90
 
91
 
92
    # COMPATIBILITY-MODE RELATED CONFIGURATION OPTIONS
93
    cdl_component CYGPKG_LIBM_COMPATIBILITY {
94
        display       "Compatibility mode"
95
        flavor        none
96
        description   "
97
            These options deal with behaviour related to
98
            the various compatibility modes - POSIX, IEEE,
99
            X/OPEN and SVID."
100
 
101
        script        compat.cdl
102
    }
103
 
104
    # THREAD-SAFETY CONFIGURATION OPTIONS
105
    cdl_component CYGPKG_LIBM_THREAD_SAFETY {
106
        display       "Thread safety"
107
        flavor        none
108
        description   "
109
            This option controls whether the C library has
110
            support for thread safe operation in general.
111
            This requires eCos kernel support for per-thread
112
            data, and adjustment of the stack limit."
113
 
114
        cdl_option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE {
115
            display       "Compatibility mode setting"
116
            requires      !CYGSEM_LIBM_COMPAT_IEEE_ONLY
117
            requires      CYGVAR_KERNEL_THREADS_DATA
118
            default_value 0
119
            description   "
120
                This option makes the setting of the compatiblity
121
                mode be a per-thread property. This directly
122
                implies that it also becomes thread-safe."
123
        }
124
 
125
        cdl_option CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS {
126
            display       "gamma() and lgamma()"
127
            requires      CYGVAR_KERNEL_THREADS_DATA
128
            default_value 0
129
            description   "
130
                This option makes the gamma() and lgamma()
131
                functions be thread-safe. Note that these
132
                functions are identical - they take the log of
133
                the absolute value of their argument. The sign
134
                of the argument is stored in a variable called
135
                signgam. Enabling this option makes signgam
136
                a per-thread variable. Note there are also
137
                gamma_r() and lgamma_r() alternatives that
138
                allow signgam to be passed in by reference as
139
                an argument."
140
        }
141
    }
142
 
143
    # TRACING OPTIONS
144
    cdl_component CYGPKG_LIBM_TRACE {
145
        display       "Tracing output levels in math library"
146
        flavor        bool
147
        requires      CYGDBG_USE_TRACING
148
        default_value 0
149
        description   "
150
            Tracing support is useful for debugging. Some
151
            Math library modules can be configured with
152
            different levels of tracing verbosity. These
153
            levels can be configured here."
154
 
155
 
156
        cdl_option CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL {
157
            display       "Compatibility mode get/set"
158
            requires      CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
159
            flavor        data
160
            legal_values  0 to 1
161
            default_value 0
162
            description   "
163
                Trace level for debugging the getting and
164
                setting of the compatibility mode when it is
165
                configured to be thread-safe."
166
        }
167
 
168
        cdl_option CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL {
169
            display       "signgam variable access"
170
            requires      CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
171
            flavor        data
172
            legal_values  0 to 1
173
            default_value 0
174
            description   "
175
                Trace level for debugging all accesses to the
176
                signgam variable in thread-safe mode."
177
        }
178
    }
179
 
180
    # OTHER CONFIGURATION SETTINGS
181
    cdl_option CYGNUM_LIBM_X_TLOSS {
182
        display       "Bessel function limit of significance"
183
        flavor        data
184
        default_value 1.41484755040568800000e+16;  # pi*(2**52)
185
        legal_values  1 to 1e308;  # FIXME
186
        define        X_TLOSS
187
        description   "
188
            For the Bessel functions (j0(), j1(), jn(),
189
            y0(), y1(), yn()) this option defines the
190
            maximum absolute value of the ordinate
191
            before we assume total loss of significance.
192
            This number must be a floating-point number (e.g.
193
            contains a decimal point), and should be
194
            large."
195
    }
196
 
197
    define_proc {
198
        puts $::cdl_header "/***** proc output start *****/"
199
 
200
        puts $::cdl_header "#include "
201
 
202
        # TYPE DEFINITIONS
203
        # Compatibility mode selector - required for default below
204
 
205
        puts $::cdl_header "typedef enum {"
206
        puts $::cdl_header "    CYGNUM_LIBM_COMPAT_UNINIT= 0,  // Default state. DO NOT set it to this"
207
        puts $::cdl_header "    CYGNUM_LIBM_COMPAT_POSIX = 1,  // ANSI/POSIX 1003.1"
208
        puts $::cdl_header "    CYGNUM_LIBM_COMPAT_IEEE  = 2,  // IEEE-754"
209
        puts $::cdl_header "    CYGNUM_LIBM_COMPAT_XOPEN = 3,  // X/OPEN Portability guide issue 3"
210
        puts $::cdl_header "                                   // (XPG3)"
211
        puts $::cdl_header "    CYGNUM_LIBM_COMPAT_SVID  = 4   // System V Interface Definition 3rd"
212
        puts $::cdl_header "                                   // edition"
213
        puts $::cdl_header "} Cyg_libm_compat_t;"
214
        puts $::cdl_header ""
215
 
216
        puts $::cdl_header "/****** proc output end ******/"
217
    }
218
 
219
    cdl_component CYGPKG_LIBM_OPTIONS {
220
        display "Math library build options"
221
        flavor  none
222
        description   "
223
            Package specific build options including control over
224
            compiler flags used only in building this package,
225
            and details of which tests are built."
226
 
227
 
228
        cdl_option CYGPKG_LIBM_CFLAGS_ADD {
229
            display "Additional compiler flags"
230
            flavor  data
231
            no_define
232
            default_value { "-fno-strict-aliasing" . \
233
                                ((!CYGPKG_HAL_I386 && !CYGPKG_HAL_SYNTH_I386) ? "" : " -ffloat-store") }
234
            description   "
235
                This option modifies the set of compiler flags for
236
                building the math library. These flags are used in addition
237
                to the set of global flags."
238
        }
239
 
240
        cdl_option CYGPKG_LIBM_CFLAGS_REMOVE {
241
            display "Suppressed compiler flags"
242
            flavor  data
243
            no_define
244
            default_value { "" }
245
            description   "
246
                This option modifies the set of compiler flags for
247
                building the math library. These flags are removed from
248
                the set of global flags if present."
249
        }
250
 
251
        cdl_option CYGPKG_LIBM_TESTS {
252
            display "Math library tests"
253
            flavor  data
254
            no_define
255
            calculated { "tests/vectors/acos tests/vectors/asin tests/vectors/atan tests/vectors/atan2 tests/vectors/ceil tests/vectors/cos tests/vectors/cosh tests/vectors/exp tests/vectors/fabs tests/vectors/floor tests/vectors/fmod tests/vectors/frexp tests/vectors/ldexp tests/vectors/log tests/vectors/log10 tests/vectors/modf tests/vectors/pow tests/vectors/sin tests/vectors/sinh tests/vectors/sqrt tests/vectors/tan tests/vectors/tanh" }
256
            description   "
257
                This option specifies the set of tests for the math library."
258
        }
259
    }
260
}

powered by: WebSVN 2.1.0

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