"Fossies" - the Fresh Open Source Software Archive

Member "bind-9.17.5/libltdl/libltdl/lt_system.h" (4 Sep 2020, 5342 Bytes) of package /linux/misc/dns/bind9/9.17.5/bind-9.17.5.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "lt_system.h" see the Fossies "Dox" file reference documentation.

    1 /* lt_system.h -- system portability abstraction layer
    2 
    3    Copyright (C) 2004, 2007, 2010-2015 Free Software Foundation, Inc.
    4    Written by Gary V. Vaughan, 2004
    5 
    6    NOTE: The canonical source of this file is maintained with the
    7    GNU Libtool package.  Report bugs to bug-libtool@gnu.org.
    8 
    9 GNU Libltdl is free software; you can redistribute it and/or
   10 modify it under the terms of the GNU Lesser General Public
   11 License as published by the Free Software Foundation; either
   12 version 2 of the License, or (at your option) any later version.
   13 
   14 As a special exception to the GNU Lesser General Public License,
   15 if you distribute this file as part of a program or library that
   16 is built using GNU Libtool, you may include this file under the
   17 same distribution terms that you use for the rest of that program.
   18 
   19 GNU Libltdl is distributed in the hope that it will be useful,
   20 but WITHOUT ANY WARRANTY; without even the implied warranty of
   21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   22 GNU Lesser General Public License for more details.
   23 
   24 You should have received a copy of the GNU Lesser General Public
   25 License along with GNU Libltdl; see the file COPYING.LIB.  If not, a
   26 copy can be downloaded from  http://www.gnu.org/licenses/lgpl.html,
   27 or obtained by writing to the Free Software Foundation, Inc.,
   28 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
   29 */
   30 
   31 #if !defined LT_SYSTEM_H
   32 #define LT_SYSTEM_H 1
   33 
   34 #include <stddef.h>
   35 #include <stdlib.h>
   36 #include <sys/types.h>
   37 
   38 /* Some systems do not define EXIT_*, even with STDC_HEADERS.  */
   39 #if !defined EXIT_SUCCESS
   40 # define EXIT_SUCCESS 0
   41 #endif
   42 #if !defined EXIT_FAILURE
   43 # define EXIT_FAILURE 1
   44 #endif
   45 
   46 /* Just pick a big number... */
   47 #define LT_FILENAME_MAX 2048
   48 
   49 
   50 /* Saves on those hard to debug '\0' typos....  */
   51 #define LT_EOS_CHAR '\0'
   52 
   53 /* LTDL_BEGIN_C_DECLS should be used at the beginning of your declarations,
   54    so that C++ compilers don't mangle their names.  Use LTDL_END_C_DECLS at
   55    the end of C declarations. */
   56 #if defined __cplusplus
   57 # define LT_BEGIN_C_DECLS   extern "C" {
   58 # define LT_END_C_DECLS     }
   59 #else
   60 # define LT_BEGIN_C_DECLS   /* empty */
   61 # define LT_END_C_DECLS     /* empty */
   62 #endif
   63 
   64 /* LT_STMT_START/END are used to create macros that expand to a
   65    a single compound statement in a portable way.  */
   66 #if defined  __GNUC__ && !defined  __STRICT_ANSI__ && !defined  __cplusplus
   67 #  define LT_STMT_START        (void)(
   68 #  define LT_STMT_END          )
   69 #else
   70 #  if (defined sun || defined __sun__)
   71 #    define LT_STMT_START      if (1)
   72 #    define LT_STMT_END        else (void)0
   73 #  else
   74 #    define LT_STMT_START      do
   75 #    define LT_STMT_END        while (0)
   76 #  endif
   77 #endif
   78 
   79 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
   80 #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
   81 /* DATA imports from DLLs on WIN32 can't be const, because runtime
   82    relocations are performed -- see ld's documentation on pseudo-relocs.  */
   83 # define LT_DLSYM_CONST
   84 #elif defined __osf__
   85 /* This system does not cope well with relocations in const data.  */
   86 # define LT_DLSYM_CONST
   87 #else
   88 # define LT_DLSYM_CONST const
   89 #endif
   90 
   91 /* Canonicalise Windows and Cygwin recognition macros.
   92    To match the values set by recent Cygwin compilers, make sure that if
   93    __CYGWIN__ is defined (after canonicalisation), __WINDOWS__ is NOT!  */
   94 #if defined __CYGWIN32__ && !defined __CYGWIN__
   95 # define __CYGWIN__ __CYGWIN32__
   96 #endif
   97 #if defined __CYGWIN__
   98 # if defined __WINDOWS__
   99 #   undef __WINDOWS__
  100 # endif
  101 #elif defined _WIN32
  102 # define __WINDOWS__ _WIN32
  103 #elif defined WIN32
  104 # define __WINDOWS__ WIN32
  105 #endif
  106 #if defined __CYGWIN__ && defined __WINDOWS__
  107 # undef __WINDOWS__
  108 #endif
  109 
  110 
  111 /* DLL building support on win32 hosts;  mostly to workaround their
  112    ridiculous implementation of data symbol exporting. */
  113 #if !defined LT_SCOPE
  114 #  if defined __WINDOWS__ || defined __CYGWIN__
  115 #    if defined DLL_EXPORT      /* defined by libtool (if required) */
  116 #      define LT_SCOPE  extern __declspec(dllexport)
  117 #    endif
  118 #    if defined LIBLTDL_DLL_IMPORT  /* define if linking with this dll */
  119        /* note: cygwin/mingw compilers can rely instead on auto-import */
  120 #      define LT_SCOPE  extern __declspec(dllimport)
  121 #    endif
  122 #  endif
  123 #  if !defined LT_SCOPE         /* static linking or !__WINDOWS__ */
  124 #    define LT_SCOPE    extern
  125 #  endif
  126 #endif
  127 
  128 #if defined __WINDOWS__
  129 /* LT_DIRSEP_CHAR is accepted *in addition* to '/' as a directory
  130    separator when it is set. */
  131 # define LT_DIRSEP_CHAR     '\\'
  132 # define LT_PATHSEP_CHAR    ';'
  133 #else
  134 # define LT_PATHSEP_CHAR    ':'
  135 #endif
  136 
  137 #if defined _MSC_VER /* Visual Studio */
  138 #  define R_OK 4
  139 #endif
  140 
  141 /* fopen() mode flags for reading a text file */
  142 #undef  LT_READTEXT_MODE
  143 #if defined __WINDOWS__ || defined __CYGWIN__
  144 #  define LT_READTEXT_MODE "rt"
  145 #else
  146 #  define LT_READTEXT_MODE "r"
  147 #endif
  148 
  149 /* The extra indirection to the LT__STR and LT__CONC macros is required so
  150    that if the arguments to LT_STR() (or LT_CONC()) are themselves macros,
  151    they will be expanded before being quoted.   */
  152 #ifndef LT_STR
  153 #  define LT__STR(arg)      #arg
  154 #  define LT_STR(arg)       LT__STR(arg)
  155 #endif
  156 
  157 #ifndef LT_CONC
  158 #  define LT__CONC(a, b)    a##b
  159 #  define LT_CONC(a, b)     LT__CONC(a, b)
  160 #endif
  161 #ifndef LT_CONC3
  162 #  define LT__CONC3(a, b, c)    a##b##c
  163 #  define LT_CONC3(a, b, c) LT__CONC3(a, b, c)
  164 #endif
  165 
  166 #endif /*!defined LT_SYSTEM_H*/