1 /* libxml2 - Library for parsing XML documents 2 * Copyright (C) 2006-2019 Free Software Foundation, Inc. 3 * 4 * This file is not part of the GNU gettext program, but is used with 5 * GNU gettext. 6 * 7 * The original copyright notice is as follows: 8 */ 9 10 /* 11 * Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved. 12 * 13 * Permission is hereby granted, free of charge, to any person obtaining a copy 14 * of this software and associated documentation files (the "Software"), to deal 15 * in the Software without restriction, including without limitation the rights 16 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 * copies of the Software, and to permit persons to whom the Software is fur- 18 * nished to do so, subject to the following conditions: 19 * 20 * The above copyright notice and this permission notice shall be included in 21 * all copies or substantial portions of the Software. 22 * 23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- 25 * NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 * THE SOFTWARE. 30 * 31 * Author: Igor Zlatovic <igor@zlatkovic.com> 32 */ 33 34 /* 35 * Summary: macros for marking symbols as exportable/importable. 36 * Description: macros for marking symbols as exportable/importable. 37 */ 38 39 #ifndef __XML_EXPORTS_H__ 40 #define __XML_EXPORTS_H__ 41 42 /** 43 * XMLPUBFUN, XMLPUBVAR, XMLCALL 44 * 45 * Macros which declare an exportable function, an exportable variable and 46 * the calling convention used for functions. 47 * 48 * Please use an extra block for every platform/compiler combination when 49 * modifying this, rather than overlong #ifdef lines. This helps 50 * readability as well as the fact that different compilers on the same 51 * platform might need different definitions. 52 */ 53 54 /** 55 * XMLPUBFUN: 56 * 57 * Macros which declare an exportable function 58 */ 59 #define XMLPUBFUN 60 /** 61 * XMLPUBVAR: 62 * 63 * Macros which declare an exportable variable 64 */ 65 #define XMLPUBVAR extern 66 /** 67 * XMLCALL: 68 * 69 * Macros which declare the called convention for exported functions 70 */ 71 #define XMLCALL 72 /** 73 * XMLCDECL: 74 * 75 * Macro which declares the calling convention for exported functions that 76 * use '...'. 77 */ 78 #define XMLCDECL 79 80 /** DOC_DISABLE */ 81 82 /* Windows platform with MS compiler */ 83 #if defined(_WIN32) && defined(_MSC_VER) 84 #undef XMLPUBFUN 85 #undef XMLPUBVAR 86 #undef XMLCALL 87 #undef XMLCDECL 88 #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 89 #define XMLPUBFUN __declspec(dllexport) 90 #define XMLPUBVAR __declspec(dllexport) 91 #else 92 #define XMLPUBFUN 93 #if !defined(LIBXML_STATIC) 94 #define XMLPUBVAR __declspec(dllimport) extern 95 #else 96 #define XMLPUBVAR extern 97 #endif 98 #endif 99 #if defined(LIBXML_FASTCALL) 100 #define XMLCALL __fastcall 101 #else 102 #define XMLCALL __cdecl 103 #endif 104 #define XMLCDECL __cdecl 105 #if !defined _REENTRANT 106 #define _REENTRANT 107 #endif 108 #endif 109 110 /* Windows platform with Borland compiler */ 111 #if defined(_WIN32) && defined(__BORLANDC__) 112 #undef XMLPUBFUN 113 #undef XMLPUBVAR 114 #undef XMLCALL 115 #undef XMLCDECL 116 #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 117 #define XMLPUBFUN __declspec(dllexport) 118 #define XMLPUBVAR __declspec(dllexport) extern 119 #else 120 #define XMLPUBFUN 121 #if !defined(LIBXML_STATIC) 122 #define XMLPUBVAR __declspec(dllimport) extern 123 #else 124 #define XMLPUBVAR extern 125 #endif 126 #endif 127 #define XMLCALL __cdecl 128 #define XMLCDECL __cdecl 129 #if !defined _REENTRANT 130 #define _REENTRANT 131 #endif 132 #endif 133 134 /* Windows platform with GNU compiler (Mingw) */ 135 #if defined(_WIN32) && defined(__MINGW32__) 136 #undef XMLPUBFUN 137 #undef XMLPUBVAR 138 #undef XMLCALL 139 #undef XMLCDECL 140 /* 141 * if defined(IN_LIBXML) this raises problems on mingw with msys 142 * _imp__xmlFree listed as missing. Try to workaround the problem 143 * by also making that declaration when compiling client code. 144 */ 145 #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 146 #define XMLPUBFUN __declspec(dllexport) 147 #define XMLPUBVAR __declspec(dllexport) extern 148 #else 149 #define XMLPUBFUN 150 #if !defined(LIBXML_STATIC) 151 #define XMLPUBVAR __declspec(dllimport) extern 152 #else 153 #define XMLPUBVAR extern 154 #endif 155 #endif 156 #define XMLCALL __cdecl 157 #define XMLCDECL __cdecl 158 #if !defined _REENTRANT 159 #define _REENTRANT 160 #endif 161 #endif 162 163 /* Cygwin platform (does not define _WIN32), GNU compiler */ 164 #if defined(__CYGWIN__) 165 #undef XMLPUBFUN 166 #undef XMLPUBVAR 167 #undef XMLCALL 168 #undef XMLCDECL 169 #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 170 #define XMLPUBFUN __declspec(dllexport) 171 #define XMLPUBVAR __declspec(dllexport) 172 #else 173 #define XMLPUBFUN 174 #if !defined(LIBXML_STATIC) 175 #define XMLPUBVAR __declspec(dllimport) extern 176 #else 177 #define XMLPUBVAR extern 178 #endif 179 #endif 180 #define XMLCALL __cdecl 181 #define XMLCDECL __cdecl 182 #endif 183 184 /* Compatibility */ 185 #if !defined(LIBXML_DLL_IMPORT) 186 #define LIBXML_DLL_IMPORT XMLPUBVAR 187 #endif 188 189 #endif /* __XML_EXPORTS_H__ */ 190 191 192