annotate oct-conf-post.in.h @ 24538:2b273df71aa0

allow experimenting with thread_local storage * mk-octave-config-h.sh, oct-conf-post.in.h: Define OCTAVE_THREAD_LOCAL. * interpreter.h, interpreter.cc (interpreter::instance): Tag with OCTAVE_THREAD_LOCAL. Note that error message should be changed when a thread_local interpreter object is really possible.
author John W. Eaton <jwe@octave.org>
date Sat, 06 Jan 2018 12:23:14 -0500
parents 194eb4bd202b
children 6652d3823428
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
1 /*
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
2
23219
3ac9f9ecfae5 maint: Update copyright dates.
John W. Eaton <jwe@octave.org>
parents: 22549
diff changeset
3 Copyright (C) 1993-2017 John W. Eaton
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
4
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
5 This file is part of Octave.
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
6
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23826
diff changeset
7 Octave is free software: you can redistribute it and/or modify it
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22549
diff changeset
8 under the terms of the GNU General Public License as published by
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23826
diff changeset
9 the Free Software Foundation, either version 3 of the License, or
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22549
diff changeset
10 (at your option) any later version.
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
11
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22549
diff changeset
12 Octave is distributed in the hope that it will be useful, but
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22549
diff changeset
13 WITHOUT ANY WARRANTY; without even the implied warranty of
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22549
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22549
diff changeset
15 GNU General Public License for more details.
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
16
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, see
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23826
diff changeset
19 <https://www.gnu.org/licenses/>.
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
20
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
21 */
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
22
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
23 /* The C++ standard is evolving to allow attribute hints in a
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
24 compiler-independent manner. In C++ 2011 support for noreturn was
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
25 added. In C++ 2014 support for deprecated was added. The Octave
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
26 code base has been future-proofed by using macros of the form
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
27 OCTAVE_ATTRIBUTE_NAME in place of vendor specific attribute
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
28 mechanisms. As compilers evolve, the underlying implementation can
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
29 be changed with the macro definitions below. FIXME: Update macros
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
30 to use C++ standard attribute syntax when Octave moves to C++ 2011
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
31 standard. */
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
32
21040
3e7cfee5f786 maint: Rename attributes GCC_ATTR_XXX to OCTAVE_XXX.
Rik <rik@octave.org>
parents: 20436
diff changeset
33 #if defined (__GNUC__)
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
34 /* The following attributes are used with gcc and clang compilers. */
21325
64be7d374f86 Make OCTAVE_DEPRECATED macro compatible with older gcc
Mike Miller <mtmiller@octave.org>
parents: 21240
diff changeset
35 # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
23615
be7b884ac589 use version number in OCTAVE_DEPRECATED macro
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
36 # define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__ ("[" #ver "]: " msg)))
21325
64be7d374f86 Make OCTAVE_DEPRECATED macro compatible with older gcc
Mike Miller <mtmiller@octave.org>
parents: 21240
diff changeset
37 # else
23615
be7b884ac589 use version number in OCTAVE_DEPRECATED macro
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
38 # define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__))
21325
64be7d374f86 Make OCTAVE_DEPRECATED macro compatible with older gcc
Mike Miller <mtmiller@octave.org>
parents: 21240
diff changeset
39 # endif
21229
a83e7a384ee0 create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents: 21228
diff changeset
40 # define HAVE_OCTAVE_DEPRECATED_ATTR 1
21040
3e7cfee5f786 maint: Rename attributes GCC_ATTR_XXX to OCTAVE_XXX.
Rik <rik@octave.org>
parents: 20436
diff changeset
41
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
42 # define OCTAVE_NORETURN __attribute__ ((__noreturn__))
21229
a83e7a384ee0 create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents: 21228
diff changeset
43 # define HAVE_OCTAVE_NORETURN_ATTR 1
21040
3e7cfee5f786 maint: Rename attributes GCC_ATTR_XXX to OCTAVE_XXX.
Rik <rik@octave.org>
parents: 20436
diff changeset
44
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
45 # define OCTAVE_UNUSED __attribute__ ((__unused__))
21229
a83e7a384ee0 create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents: 21228
diff changeset
46 # define HAVE_OCTAVE_UNUSED_ATTR 1
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
47 #else
23615
be7b884ac589 use version number in OCTAVE_DEPRECATED macro
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
48 # define OCTAVE_DEPRECATED(ver, msg)
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
49 # define OCTAVE_NORETURN
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
50 # define OCTAVE_UNUSED
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
51 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
52
23826
d69021d58a61 avoid fallthrough warnings
John W. Eaton <jwe@octave.org>
parents: 23696
diff changeset
53 #if ! defined (OCTAVE_FALLTHROUGH)
d69021d58a61 avoid fallthrough warnings
John W. Eaton <jwe@octave.org>
parents: 23696
diff changeset
54 # if defined (__cplusplus) && __cplusplus > 201402L
d69021d58a61 avoid fallthrough warnings
John W. Eaton <jwe@octave.org>
parents: 23696
diff changeset
55 # define OCTAVE_FALLTHROUGH [[fallthrough]]
d69021d58a61 avoid fallthrough warnings
John W. Eaton <jwe@octave.org>
parents: 23696
diff changeset
56 # elif defined (__GNUC__) && __GNUC__ < 7
d69021d58a61 avoid fallthrough warnings
John W. Eaton <jwe@octave.org>
parents: 23696
diff changeset
57 # define OCTAVE_FALLTHROUGH ((void) 0)
d69021d58a61 avoid fallthrough warnings
John W. Eaton <jwe@octave.org>
parents: 23696
diff changeset
58 # else
d69021d58a61 avoid fallthrough warnings
John W. Eaton <jwe@octave.org>
parents: 23696
diff changeset
59 # define OCTAVE_FALLTHROUGH __attribute__ ((__fallthrough__))
d69021d58a61 avoid fallthrough warnings
John W. Eaton <jwe@octave.org>
parents: 23696
diff changeset
60 # endif
d69021d58a61 avoid fallthrough warnings
John W. Eaton <jwe@octave.org>
parents: 23696
diff changeset
61 #endif
d69021d58a61 avoid fallthrough warnings
John W. Eaton <jwe@octave.org>
parents: 23696
diff changeset
62
23696
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
63 /* This macro could have a better name... It is intended to be used
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
64 only to enable inline functions or typedefs that provide access to
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
65 symbols that have been moved to the octave namespace. It may be
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
66 temporarily useful to define this macro when moving a symbol to the
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
67 octave namespace but it should not be defined when building
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
68 released versions of Octave, as building those should not require
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
69 deprecated symbols. It is defined in octave-config.h, so users of
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
70 Octave may continue to access symbols using the deprecated names. */
08036a7f3660 remove octave:: namespace tag from symbols used inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 23615
diff changeset
71 /* #undef OCTAVE_USE_DEPRECATED_FUNCTIONS */
21726
f05a00e611ff use namespace for glob and fnmatch wrapper functions
John W. Eaton <jwe@octave.org>
parents: 21691
diff changeset
72
21691
263d18409fdf Eliminate unused variable warnings for conditionally compiled code.
John W. Eaton <jwe@octave.org>
parents: 21325
diff changeset
73 #if defined (__cplusplus)
263d18409fdf Eliminate unused variable warnings for conditionally compiled code.
John W. Eaton <jwe@octave.org>
parents: 21325
diff changeset
74 template <typename T>
263d18409fdf Eliminate unused variable warnings for conditionally compiled code.
John W. Eaton <jwe@octave.org>
parents: 21325
diff changeset
75 static inline void
263d18409fdf Eliminate unused variable warnings for conditionally compiled code.
John W. Eaton <jwe@octave.org>
parents: 21325
diff changeset
76 octave_unused_parameter (const T&)
263d18409fdf Eliminate unused variable warnings for conditionally compiled code.
John W. Eaton <jwe@octave.org>
parents: 21325
diff changeset
77 { }
263d18409fdf Eliminate unused variable warnings for conditionally compiled code.
John W. Eaton <jwe@octave.org>
parents: 21325
diff changeset
78 #else
263d18409fdf Eliminate unused variable warnings for conditionally compiled code.
John W. Eaton <jwe@octave.org>
parents: 21325
diff changeset
79 # define octave_unused_parameter(param) (void) param;
263d18409fdf Eliminate unused variable warnings for conditionally compiled code.
John W. Eaton <jwe@octave.org>
parents: 21325
diff changeset
80 #endif
263d18409fdf Eliminate unused variable warnings for conditionally compiled code.
John W. Eaton <jwe@octave.org>
parents: 21325
diff changeset
81
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
82 #if ! defined (HAVE_DEV_T)
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
83 typedef short dev_t;
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
84 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
85
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
86 #if ! defined (HAVE_INO_T)
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
87 typedef unsigned long ino_t;
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
88 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
89
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
90 #if defined (_MSC_VER)
21213
f7d1050b9b53 maint: Clean up various usages of #ifdef.
Rik <rik@octave.org>
parents: 21189
diff changeset
91 # define __WIN32__ 1
f7d1050b9b53 maint: Clean up various usages of #ifdef.
Rik <rik@octave.org>
parents: 21189
diff changeset
92 # define WIN32 1
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
93 /* missing parameters in macros */
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
94 # pragma warning (disable: 4003)
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
95 /* missing implementations in template instantiation */
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
96 # pragma warning (disable: 4996)
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
97 /* deprecated function names (FIXME: ???) */
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
98 # pragma warning (disable: 4661)
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
99 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
100
22012
22a272df4ac4 restore API macros to oct-conf-post.h removed in cset 6bce4d23af6b
John W. Eaton <jwe@octave.org>
parents: 21989
diff changeset
101 #if defined (__APPLE__) && defined (__MACH__)
22a272df4ac4 restore API macros to oct-conf-post.h removed in cset 6bce4d23af6b
John W. Eaton <jwe@octave.org>
parents: 21989
diff changeset
102 # define OCTAVE_USE_OS_X_API 1
22a272df4ac4 restore API macros to oct-conf-post.h removed in cset 6bce4d23af6b
John W. Eaton <jwe@octave.org>
parents: 21989
diff changeset
103 #endif
22a272df4ac4 restore API macros to oct-conf-post.h removed in cset 6bce4d23af6b
John W. Eaton <jwe@octave.org>
parents: 21989
diff changeset
104
22a272df4ac4 restore API macros to oct-conf-post.h removed in cset 6bce4d23af6b
John W. Eaton <jwe@octave.org>
parents: 21989
diff changeset
105 /* Define to 1 if we expect to have <windows.h>, Sleep, etc. */
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
106 #if defined (__WIN32__) && ! defined (__CYGWIN__)
22012
22a272df4ac4 restore API macros to oct-conf-post.h removed in cset 6bce4d23af6b
John W. Eaton <jwe@octave.org>
parents: 21989
diff changeset
107 # define OCTAVE_USE_WINDOWS_API 1
22a272df4ac4 restore API macros to oct-conf-post.h removed in cset 6bce4d23af6b
John W. Eaton <jwe@octave.org>
parents: 21989
diff changeset
108 #endif
22a272df4ac4 restore API macros to oct-conf-post.h removed in cset 6bce4d23af6b
John W. Eaton <jwe@octave.org>
parents: 21989
diff changeset
109
22a272df4ac4 restore API macros to oct-conf-post.h removed in cset 6bce4d23af6b
John W. Eaton <jwe@octave.org>
parents: 21989
diff changeset
110 #if defined (OCTAVE_USE_WINDOWS_API)
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
111 # define OCTAVE_HAVE_WINDOWS_FILESYSTEM 1
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
112 #elif defined (__CYGWIN__)
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
113 # define OCTAVE_HAVE_WINDOWS_FILESYSTEM 1
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
114 # define OCTAVE_HAVE_POSIX_FILESYSTEM 1
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
115 #else
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
116 # define OCTAVE_HAVE_POSIX_FILESYSTEM 1
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
117 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
118
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
119 /* sigsetjmp is a macro, not a function. */
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
120 #if defined (sigsetjmp) && defined (HAVE_SIGLONGJMP)
21213
f7d1050b9b53 maint: Clean up various usages of #ifdef.
Rik <rik@octave.org>
parents: 21189
diff changeset
121 # define OCTAVE_HAVE_SIG_JUMP 1
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
122 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
123
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
124 /* To be able to use long doubles for 64-bit mixed arithmetics, we need
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
125 them at least 80 bits wide and we need roundl declared in math.h.
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
126 FIXME: Maybe substitute this by a more precise check in the future? */
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
127 #if (SIZEOF_LONG_DOUBLE >= 10) && defined (HAVE_ROUNDL)
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
128 # define OCTAVE_INT_USE_LONG_DOUBLE
22197
e43d83253e28 refill multi-line macro definitions
John W. Eaton <jwe@octave.org>
parents: 22143
diff changeset
129 # if (SIZEOF_LONG_DOUBLE < 16 \
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
130 && (defined __i386__ || defined __x86_64__) && defined __GNUC__)
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
131 # define OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED 1
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
132 # endif
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
133 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
134
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
135 /* oct-dlldefs.h */
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
136
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
137 /* FIXME: GCC supports visibility attributes as well, even using the
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
138 same __declspec declaration if desired. The build system should be
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
139 extended to support GCC and visibility attributes. */
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
140 #if defined (_MSC_VER)
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
141 # define OCTAVE_EXPORT __declspec(dllexport)
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
142 # define OCTAVE_IMPORT __declspec(dllimport)
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
143 #else
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
144 /* All other compilers, at least for now. */
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
145 # define OCTAVE_EXPORT
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
146 # define OCTAVE_IMPORT
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
147 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
148
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
149 /* API macro for liboctave */
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
150 #if defined (OCTAVE_DLL)
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
151 # define OCTAVE_API OCTAVE_EXPORT
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
152 #else
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
153 # define OCTAVE_API OCTAVE_IMPORT
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
154 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
155
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
156 /* API macro for libinterp */
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
157 #if defined (OCTINTERP_DLL)
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
158 # define OCTINTERP_API OCTAVE_EXPORT
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
159 #else
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
160 # define OCTINTERP_API OCTAVE_IMPORT
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
161 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
162
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
163 /* API macro for libinterp/graphics */
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
164 #if defined (OCTGRAPHICS_DLL)
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
165 # define OCTGRAPHICS_API OCTAVE_EXPORT
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
166 #else
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
167 # define OCTGRAPHICS_API OCTAVE_IMPORT
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
168 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
169
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
170 /* API macro for libgui */
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
171 #if defined (OCTGUI_DLL)
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
172 # define OCTGUI_API OCTAVE_EXPORT
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
173 #else
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
174 # define OCTGUI_API OCTAVE_IMPORT
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
175 #endif
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
176
21131
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
177 /* Backward compatibility */
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
178
21229
a83e7a384ee0 create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents: 21228
diff changeset
179 #if defined (OCTAVE_ENABLE_ATOMIC_REFCOUNT)
21189
47765afaf131 style fixes for oct-conf-post.in.h
John W. Eaton <jwe@octave.org>
parents: 21188
diff changeset
180 # define USE_ATOMIC_REFCOUNT 1
21131
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
181 #endif
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
182
21229
a83e7a384ee0 create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents: 21228
diff changeset
183 #if defined (OCTAVE_ENABLE_64)
21213
f7d1050b9b53 maint: Clean up various usages of #ifdef.
Rik <rik@octave.org>
parents: 21189
diff changeset
184 # define USE_64_BIT_IDX_T 1
21131
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
185 #endif
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
186
21229
a83e7a384ee0 create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents: 21228
diff changeset
187 #if defined (OCTAVE_ENABLE_OPENMP)
21213
f7d1050b9b53 maint: Clean up various usages of #ifdef.
Rik <rik@octave.org>
parents: 21189
diff changeset
188 # define HAVE_OPENMP 1
21131
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
189 #endif
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
190
21229
a83e7a384ee0 create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents: 21228
diff changeset
191 #if defined (OCTAVE_ENABLE_FLOAT_TRUNCATE)
21225
19a619ac9508 rename FLOAT_TRUNCATE to OCTAVE_FLOAT_TRUNCATE
John W. Eaton <jwe@octave.org>
parents: 21213
diff changeset
192 # define OCTAVE_FLOAT_TRUNCATE volatile
21131
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
193 #else
21225
19a619ac9508 rename FLOAT_TRUNCATE to OCTAVE_FLOAT_TRUNCATE
John W. Eaton <jwe@octave.org>
parents: 21213
diff changeset
194 # define OCTAVE_FLOAT_TRUNCATE
21131
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
195 #endif
54527108599a store more --enable-FEATURE info in octave_config_info
John W. Eaton <jwe@octave.org>
parents: 21092
diff changeset
196
21850
0507f0d2135d indent preprocessor directives in octave-config.h and oct-conf-post.h
John W. Eaton <jwe@octave.org>
parents: 21749
diff changeset
197 #if defined (__cplusplus)
0507f0d2135d indent preprocessor directives in octave-config.h and oct-conf-post.h
John W. Eaton <jwe@octave.org>
parents: 21749
diff changeset
198 # include <cstdint>
0507f0d2135d indent preprocessor directives in octave-config.h and oct-conf-post.h
John W. Eaton <jwe@octave.org>
parents: 21749
diff changeset
199 #else
0507f0d2135d indent preprocessor directives in octave-config.h and oct-conf-post.h
John W. Eaton <jwe@octave.org>
parents: 21749
diff changeset
200 # include <stdint.h>
0507f0d2135d indent preprocessor directives in octave-config.h and oct-conf-post.h
John W. Eaton <jwe@octave.org>
parents: 21749
diff changeset
201 #endif
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
202
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
203 typedef OCTAVE_IDX_TYPE octave_idx_type;
22842
60405b73e439 provide separate typedefs for octave_idx_type and octave_f77_int_type
John W. Eaton <jwe@octave.org>
parents: 22755
diff changeset
204 typedef OCTAVE_F77_INT_TYPE octave_f77_int_type;
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
205
22990
f71191aea679 provide macro declaring existence of f77 integer type
John W. Eaton <jwe@octave.org>
parents: 22985
diff changeset
206 #define OCTAVE_HAVE_F77_INT_TYPE 1
20436
bf47ac616bc0 Backout 9c7dd58b57e4 and have configure generate oct-conf-post.h
Rik <rik@octave.org>
parents:
diff changeset
207
24538
2b273df71aa0 allow experimenting with thread_local storage
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
208 #if defined (__cplusplus) && ! defined (OCTAVE_THREAD_LOCAL)
2b273df71aa0 allow experimenting with thread_local storage
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
209 # define OCTAVE_THREAD_LOCAL
2b273df71aa0 allow experimenting with thread_local storage
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
210 #endif
2b273df71aa0 allow experimenting with thread_local storage
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
211
21240
7af5ca01ecac allow octave-config.h to be included unconditionally
John W. Eaton <jwe@octave.org>
parents: 21229
diff changeset
212 /* Tag indicating Octave's autoconf-generated config.h has been
7af5ca01ecac allow octave-config.h to be included unconditionally
John W. Eaton <jwe@octave.org>
parents: 21229
diff changeset
213 included. This symbol is provided because autoconf-generated
7af5ca01ecac allow octave-config.h to be included unconditionally
John W. Eaton <jwe@octave.org>
parents: 21229
diff changeset
214 config.h files do not define a multiple-inclusion guard. See also
7af5ca01ecac allow octave-config.h to be included unconditionally
John W. Eaton <jwe@octave.org>
parents: 21229
diff changeset
215 the notes at the top of the generated octave-config.h file. */
7af5ca01ecac allow octave-config.h to be included unconditionally
John W. Eaton <jwe@octave.org>
parents: 21229
diff changeset
216
7af5ca01ecac allow octave-config.h to be included unconditionally
John W. Eaton <jwe@octave.org>
parents: 21229
diff changeset
217 #define OCTAVE_AUTOCONFIG_H_INCLUDED 1