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-2024 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  // Includes
  30  
  31  #if defined (HAVE_SYS_TYPES_H)
  32  #  include <sys/types.h>
  33  #endif
  34  
  35  #if defined (HAVE_STDIO_H)
  36  #  include <stdio.h>
  37  #endif
  38  
  39  #if defined (HAVE_LIMITS_H)
  40  #  include <limits.h>
  41  #endif
  42  
  43  #if defined (HAVE_ASSERT_H)
  44  #  include <assert.h>
  45  #endif
  46  
  47  #if defined (HAVE_CONIO_H)
  48  #  include <conio.h>
  49  #endif
  50  
  51  #if defined (HAVE_CTYPE_H)
  52  #  include <ctype.h>
  53  #endif
  54  
  55  #if defined (HAVE_LIBGEN_H)
  56  // libgen selects Posix versions of dirname/basename in stead of GNU versions.
  57  #  include <libgen.h>
  58  #endif
  59  
  60  #if defined (HAVE_READLINE_READLINE_H)
  61  #  include <readline/readline.h>
  62  #endif
  63  
  64  #if defined (HAVE_READLINE_HISTORY_H)
  65  #  include <readline/history.h>
  66  #endif
  67  
  68  #if defined (HAVE_DIRENT_H)
  69  #  include <dirent.h>
  70  #endif
  71  
  72  #if defined (HAVE_DL)
  73  #  include <dlfcn.h>
  74  #endif
  75  
  76  #if defined (HAVE_ENDIAN_H)
  77  #  include <endian.h>
  78  #endif
  79  
  80  #if defined (HAVE_ERRNO_H)
  81  #  include <errno.h>
  82  #endif
  83  
  84  #if defined (HAVE_FCNTL_H)
  85  #  include <fcntl.h>
  86  #endif
  87  
  88  #if defined (HAVE_FENV_H)
  89  #  include <fenv.h>
  90  #endif
  91  
  92  #if defined (HAVE_FLOAT_H)
  93  #  include <float.h>
  94  #endif
  95  
  96  #if defined (HAVE_MATH_H)
  97  #  include <math.h>
  98  #endif
  99  
 100  #if defined (HAVE_COMPLEX_H)
 101  #  include <complex.h>
 102  #endif
 103  
 104  #if defined (HAVE_GNU_PLOTUTILS)
 105  #  include <plot.h>
 106  #endif
 107  
 108  #if defined (HAVE_PTHREAD_H)
 109  #  include <pthread.h>
 110  #endif
 111  
 112  #if defined (HAVE_QUADMATH_H)
 113  #  include <quadmath.h>
 114  #endif
 115  
 116  #if defined (HAVE_SETJMP_H)
 117  #  include <setjmp.h>
 118  #endif
 119  
 120  #if defined (HAVE_SIGNAL_H)
 121  #  include <signal.h>
 122  #endif
 123  
 124  #if defined (HAVE_STDARG_H)
 125  #  include <stdarg.h>
 126  #endif
 127  
 128  #if defined (HAVE_STDBOOL_H)
 129  #  include <stdbool.h>
 130  #endif
 131  
 132  #if defined (HAVE_STDDEF_H)
 133  #  include <stddef.h>
 134  #endif
 135  
 136  #if defined (HAVE_STDINT_H)
 137  #  include <stdint.h>
 138  #endif
 139  
 140  #if defined (HAVE_STDLIB_H)
 141  #  include <stdlib.h>
 142  #endif
 143  
 144  #if defined (HAVE_STRING_H)
 145  #  include <string.h>
 146  #endif
 147  
 148  #if defined (HAVE_STRINGS_H)
 149  #  include <strings.h>
 150  #endif
 151  
 152  #if (defined (HAVE_TERMIOS_H) && ! defined (TIOCGWINSZ))
 153  #  include <termios.h>
 154  #elif (defined (HAVE_TERMIOS_H) && ! defined (GWINSZ_IN_SYS_IOCTL))
 155  #  include <termios.h>
 156  #endif
 157  
 158  #if defined (HAVE_TIME_H)
 159  #  include <time.h>
 160  #endif
 161  
 162  #if defined (HAVE_UNISTD_H)
 163  #  include <unistd.h>
 164  #endif
 165  
 166  #if defined (HAVE_SYS_IOCTL_H)
 167  #  include <sys/ioctl.h>
 168  #endif
 169  
 170  #if defined (HAVE_SYS_RESOURCE_H)
 171  #  include <sys/resource.h>
 172  #endif
 173  
 174  #if defined (HAVE_SYS_STAT_H)
 175  #  include <sys/stat.h>
 176  #endif
 177  
 178  #if defined (HAVE_SYS_TIME_H)
 179  #  include <sys/time.h>
 180  #endif
 181  
 182  #if defined (HAVE_SYS_WAIT_H)
 183  #  include <sys/wait.h>
 184  #endif
 185  
 186  #if defined (HAVE_GNU_MPFR)
 187  #  define MPFR_WANT_FLOAT128
 188  #  include <gmp.h>
 189  #  include <mpfr.h>
 190  #endif
 191  
 192  #if defined (HAVE_GSL_GSL_BLAS_H)
 193  #  include <gsl/gsl_blas.h>
 194  #endif
 195  
 196  #if defined (HAVE_GSL_GSL_COMPLEX_H)
 197  #  include <gsl/gsl_complex.h>
 198  #endif
 199  
 200  #if defined (HAVE_GSL_GSL_COMPLEX_MATH_H)
 201  #  include <gsl/gsl_complex_math.h>
 202  #endif
 203  
 204  #if defined (HAVE_GSL_GSL_EIGEN_H)
 205  #  include <gsl/gsl_eigen.h>
 206  #endif
 207  
 208  #if defined (HAVE_GSL_GSL_ERRNO_H)
 209  #  include <gsl/gsl_errno.h>
 210  #endif
 211  
 212  #if defined (HAVE_GSL_GSL_FFT_COMPLEX_H)
 213  #  include <gsl/gsl_fft_complex.h>
 214  #endif
 215  
 216  #if defined (HAVE_GSL_GSL_INTEGRATION_H)
 217  #  include <gsl/gsl_integration.h>
 218  #endif
 219  
 220  #if defined (HAVE_GSL_GSL_SF_H)
 221  #  include <gsl/gsl_sf.h>
 222  #endif
 223  
 224  #if defined (HAVE_GSL_GSL_SF_ELLINT_H)
 225  #  include <gsl/gsl_sf_ellint.h>
 226  #endif
 227  
 228  #if defined (HAVE_GSL_GSL_SF_HERMITE_H)
 229  #  include <gsl/gsl_sf_hermite.h>
 230  #endif
 231  
 232  #if defined (HAVE_GSL_GSL_LINALG_H)
 233  #  include <gsl/gsl_linalg.h>
 234  #endif
 235  
 236  #if defined (HAVE_GSL_GSL_MATH_H)
 237  #  include <gsl/gsl_math.h>
 238  #endif
 239  
 240  #if defined (HAVE_GSL_GSL_MATRIX_H)
 241  #  include <gsl/gsl_matrix.h>
 242  #endif
 243  
 244  #if defined (HAVE_GSL_GSL_PERMUTATION_H)
 245  #  include <gsl/gsl_permutation.h>
 246  #endif
 247  
 248  #if defined (HAVE_GSL_GSL_SF_H)
 249  #  include <gsl/gsl_sf.h>
 250  #endif
 251  
 252  #if defined (HAVE_GSL_GSL_STATISTICS_H)
 253  #  include <gsl/gsl_statistics.h>
 254  #endif
 255  
 256  #if defined (HAVE_GSL_GSL_VECTOR_H)
 257  #  include <gsl/gsl_vector.h>
 258  #endif
 259  
 260  #if defined (HAVE_GSL_GSL_VERSION_H)
 261  #  include <gsl/gsl_version.h>
 262  #endif
 263  
 264  #if defined (HAVE_CURSES)
 265  #  if defined (HAVE_NCURSESW_CURSES_H)
 266  #    include <ncursesw/curses.h>
 267  #  elif defined (HAVE_NCURSESW_H)
 268  #    include <ncursesw.h>
 269  #  elif defined (HAVE_NCURSES_CURSES_H)
 270  #    include <ncurses/curses.h>
 271  #  elif defined (HAVE_NCURSES_H)
 272  #    include <ncurses.h>
 273  #  elif defined (HAVE_CURSES_H)
 274  #    include <curses.h>
 275  #  else
 276  #    error "Curses header file required"
 277  #  endif
 278  #endif
 279  
 280  #if defined (HAVE_REGEX_H)
 281  #  if defined (BUILD_WIN32)
 282  #    include "a68g-regex.h"
 283  #  else
 284  #    include <regex.h>
 285  #  endif
 286  #endif
 287  
 288  #if defined (HAVE_LIBPQ_FE_H)
 289  #  if ! defined (A68_OPTIMISE)
 290  #    include <libpq-fe.h>
 291  #  endif
 292  #endif
 293  
 294  #endif