a68g-includes.h
1 //! @file a68g-includes.h
2 //! @author J. Marcel van der Veer
3
4 //! @section Copyright
5 //!
6 //! This file is part of Algol68G - an Algol 68 compiler-interpreter.
7 //! Copyright 2001-2025 J. Marcel van der Veer [algol68g@xs4all.nl].
8
9 //! @section License
10 //!
11 //! This program is free software; you can redistribute it and/or modify it
12 //! under the terms of the GNU General Public License as published by the
13 //! Free Software Foundation; either version 3 of the License, or
14 //! (at your option) any later version.
15 //!
16 //! This program is distributed in the hope that it will be useful, but
17 //! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18 //! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
19 //! more details. You should have received a copy of the GNU General Public
20 //! License along with this program. If not, see [http://www.gnu.org/licenses/].
21
22 //! @section Synopsis
23 //!
24 //! Common a68g includes.
25
26 #if !defined (__A68G_INCLUDES_H__)
27 #define __A68G_INCLUDES_H__
28
29 #if defined (HAVE_SYS_TYPES_H)
30 #include <sys/types.h>
31 #endif
32
33 #if defined (HAVE_STDIO_H)
34 #include <stdio.h>
35 #endif
36
37 #if defined (HAVE_LIMITS_H)
38 #include <limits.h>
39 #endif
40
41 #if defined (HAVE_ASSERT_H)
42 #include <assert.h>
43 #endif
44
45 #if defined (HAVE_CONIO_H)
46 #include <conio.h>
47 #endif
48
49 #if defined (HAVE_CTYPE_H)
50 #include <ctype.h>
51 #endif
52
53 #if defined (HAVE_LIBGEN_H)
54 // libgen selects Posix versions of dirname/basename in stead of GNU versions.
55 #include <libgen.h>
56 #endif
57
58 #if defined (HAVE_READLINE_READLINE_H)
59 #include <readline/readline.h>
60 #endif
61
62 #if defined (HAVE_READLINE_HISTORY_H)
63 #include <readline/history.h>
64 #endif
65
66 #if defined (HAVE_DIRENT_H)
67 #include <dirent.h>
68 #endif
69
70 #if defined (HAVE_DL)
71 #include <dlfcn.h>
72 #endif
73
74 #if defined (HAVE_ENDIAN_H)
75 #include <endian.h>
76 #endif
77
78 #if defined (HAVE_ERRNO_H)
79 #include <errno.h>
80 #endif
81
82 #if defined (HAVE_FCNTL_H)
83 #include <fcntl.h>
84 #endif
85
86 #if defined (HAVE_FENV_H)
87 #include <fenv.h>
88 #endif
89
90 #if defined (HAVE_FLOAT_H)
91 #include <float.h>
92 #endif
93
94 #if defined (HAVE_MALLOC_H)
95 #include <malloc.h>
96 #endif
97
98 #if defined (HAVE_MATH_H)
99 #include <math.h>
100 #endif
101
102 #if defined (HAVE_COMPLEX_H)
103 #include <complex.h>
104 #endif
105
106 #if defined (HAVE_GNU_PLOTUTILS)
107 #include <plot.h>
108 #endif
109
110 #if defined (HAVE_PTHREAD_H)
111 #include <pthread.h>
112 #endif
113
114 #if defined (HAVE_QUADMATH_H)
115 #include <quadmath.h>
116 #endif
117
118 #if defined (HAVE_SETJMP_H)
119 #include <setjmp.h>
120 #endif
121
122 #if defined (HAVE_SIGNAL_H)
123 #include <signal.h>
124 #endif
125
126 #if defined (HAVE_STDARG_H)
127 #include <stdarg.h>
128 #endif
129
130 #if defined (HAVE_STDBOOL_H)
131 #include <stdbool.h>
132 #endif
133
134 #if defined (HAVE_STDDEF_H)
135 #include <stddef.h>
136 #endif
137
138 #if defined (HAVE_STDINT_H)
139 #include <stdint.h>
140 #endif
141
142 #if defined (HAVE_STDLIB_H)
143 #include <stdlib.h>
144 #endif
145
146 #if defined (HAVE_STRING_H)
147 #include <string.h>
148 #endif
149
150 #if defined (HAVE_STRINGS_H)
151 #include <strings.h>
152 #endif
153
154 #if (defined (HAVE_TERMIOS_H) && !defined (TIOCGWINSZ))
155 #include <termios.h>
156 #elif (defined (HAVE_TERMIOS_H) && !defined (GWINSZ_IN_SYS_IOCTL))
157 #include <termios.h>
158 #endif
159
160 #if defined (HAVE_TIME_H)
161 #include <time.h>
162 #endif
163
164 #if defined (HAVE_UNISTD_H)
165 #include <unistd.h>
166 #endif
167
168 #if defined (HAVE_SYS_IOCTL_H)
169 #include <sys/ioctl.h>
170 #endif
171
172 #if defined (HAVE_SYS_RESOURCE_H)
173 #include <sys/resource.h>
174 #endif
175
176 #if defined (HAVE_SYS_STAT_H)
177 #include <sys/stat.h>
178 #endif
179
180 #if defined (HAVE_SYS_TIME_H)
181 #include <sys/time.h>
182 #endif
183
184 #if defined (HAVE_SYS_WAIT_H)
185 #include <sys/wait.h>
186 #endif
187
188 #if defined (HAVE_GNU_MPFR)
189 #define MPFR_WANT_FLOAT128
190 #include <gmp.h>
191 #include <mpfr.h>
192 #endif
193
194 #if defined (HAVE_GSL_GSL_BLAS_H)
195 #include <gsl/gsl_blas.h>
196 #endif
197
198 #if defined (HAVE_GSL_GSL_COMPLEX_H)
199 #include <gsl/gsl_complex.h>
200 #endif
201
202 #if defined (HAVE_GSL_GSL_COMPLEX_MATH_H)
203 #include <gsl/gsl_complex_math.h>
204 #endif
205
206 #if defined (HAVE_GSL_GSL_EIGEN_H)
207 #include <gsl/gsl_eigen.h>
208 #endif
209
210 #if defined (HAVE_GSL_GSL_ERRNO_H)
211 #include <gsl/gsl_errno.h>
212 #endif
213
214 #if defined (HAVE_GSL_GSL_FFT_COMPLEX_H)
215 #include <gsl/gsl_fft_complex.h>
216 #endif
217
218 #if defined (HAVE_GSL_GSL_INTEGRATION_H)
219 #include <gsl/gsl_integration.h>
220 #endif
221
222 #if defined (HAVE_GSL_GSL_SF_H)
223 #include <gsl/gsl_sf.h>
224 #endif
225
226 #if defined (HAVE_GSL_GSL_SF_ELLINT_H)
227 #include <gsl/gsl_sf_ellint.h>
228 #endif
229
230 #if defined (HAVE_GSL_GSL_SF_HERMITE_H)
231 #include <gsl/gsl_sf_hermite.h>
232 #endif
233
234 #if defined (HAVE_GSL_GSL_LINALG_H)
235 #include <gsl/gsl_linalg.h>
236 #endif
237
238 #if defined (HAVE_GSL_GSL_MATH_H)
239 #include <gsl/gsl_math.h>
240 #endif
241
242 #if defined (HAVE_GSL_GSL_MATRIX_H)
243 #include <gsl/gsl_matrix.h>
244 #endif
245
246 #if defined (HAVE_GSL_GSL_PERMUTATION_H)
247 #include <gsl/gsl_permutation.h>
248 #endif
249
250 #if defined (HAVE_GSL_GSL_SF_H)
251 #include <gsl/gsl_sf.h>
252 #endif
253
254 #if defined (HAVE_GSL_GSL_STATISTICS_H)
255 #include <gsl/gsl_statistics.h>
256 #endif
257
258 #if defined (HAVE_GSL_GSL_VECTOR_H)
259 #include <gsl/gsl_vector.h>
260 #endif
261
262 #if defined (HAVE_GSL_GSL_VERSION_H)
263 #include <gsl/gsl_version.h>
264 #endif
265
266 #if defined (HAVE_CURSES)
267 #if defined (HAVE_NCURSESW_CURSES_H)
268 #include <ncursesw/curses.h>
269 #elif defined (HAVE_NCURSESW_H)
270 #include <ncursesw.h>
271 #elif defined (HAVE_NCURSES_CURSES_H)
272 #include <ncurses/curses.h>
273 #elif defined (HAVE_NCURSES_H)
274 #include <ncurses.h>
275 #elif defined (HAVE_CURSES_H)
276 #include <curses.h>
277 #else
278 #error "Curses header file required"
279 #endif
280 #endif
281
282 #if defined (HAVE_REGEX_H)
283 #if defined (BUILD_WINDOWS)
284 #include "a68g-regex.h"
285 #else
286 #include <regex.h>
287 #endif
288 #endif
289
290 #if defined (HAVE_LIBPQ_FE_H)
291 #if !defined (A68G_OPTIMISE)
292 #include <libpq-fe.h>
293 #endif
294 #endif
295
296 #endif
© 2002-2025 J.M. van der Veer (jmvdveer@xs4all.nl)
|