1 /* 2 * Summary: macros for marking symbols as exportable/importable. 3 * Description: macros for marking symbols as exportable/importable. 4 * 5 * Copy: See Copyright for the status of this software. 6 * 7 * Author: Igor Zlatkovic <igor (at) zlatkovic.com> 8 */ 9 10 #ifndef __XSLT_EXPORTS_H__ 11 #define __XSLT_EXPORTS_H__ 12 13 /** 14 * XSLTPUBFUN: 15 * XSLTPUBFUN, XSLTPUBVAR, XSLTCALL 16 * 17 * Macros which declare an exportable function, an exportable variable and 18 * the calling convention used for functions. 19 * 20 * Please use an extra block for every platform/compiler combination when 21 * modifying this, rather than overlong #ifdef lines. This helps 22 * readability as well as the fact that different compilers on the same 23 * platform might need different definitions. 24 */ 25 26 /** 27 * XSLTPUBFUN: 28 * 29 * Macros which declare an exportable function 30 */ 31 #define XSLTPUBFUN 32 /** 33 * XSLTPUBVAR: 34 * 35 * Macros which declare an exportable variable 36 */ 37 #define XSLTPUBVAR extern 38 /** 39 * XSLTCALL: 40 * 41 * Macros which declare the called convention for exported functions 42 */ 43 #define XSLTCALL 44 45 /** DOC_DISABLE */ 46 47 /* Windows platform with MS compiler */ 48 #if defined(_WIN32) && defined(_MSC_VER) 49 #undef XSLTPUBFUN 50 #undef XSLTPUBVAR 51 #undef XSLTCALL 52 #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC) 53 #define XSLTPUBFUN __declspec(dllexport) 54 #define XSLTPUBVAR __declspec(dllexport) 55 #else 56 #define XSLTPUBFUN 57 #if !defined(LIBXSLT_STATIC) 58 #define XSLTPUBVAR __declspec(dllimport) extern 59 #else 60 #define XSLTPUBVAR extern 61 #endif 62 #endif 63 #define XSLTCALL __cdecl 64 #if !defined _REENTRANT 65 #define _REENTRANT 66 #endif 67 #endif 68 69 /* Windows platform with Borland compiler */ 70 #if defined(_WIN32) && defined(__BORLANDC__) 71 #undef XSLTPUBFUN 72 #undef XSLTPUBVAR 73 #undef XSLTCALL 74 #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC) 75 #define XSLTPUBFUN __declspec(dllexport) 76 #define XSLTPUBVAR __declspec(dllexport) extern 77 #else 78 #define XSLTPUBFUN 79 #if !defined(LIBXSLT_STATIC) 80 #define XSLTPUBVAR __declspec(dllimport) extern 81 #else 82 #define XSLTPUBVAR extern 83 #endif 84 #endif 85 #define XSLTCALL __cdecl 86 #if !defined _REENTRANT 87 #define _REENTRANT 88 #endif 89 #endif 90 91 /* Windows platform with GNU compiler (Mingw) */ 92 #if defined(_WIN32) && defined(__MINGW32__) 93 #undef XSLTPUBFUN 94 #undef XSLTPUBVAR 95 #undef XSLTCALL 96 /* 97 #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC) 98 */ 99 #if !defined(LIBXSLT_STATIC) 100 #define XSLTPUBFUN __declspec(dllexport) 101 #define XSLTPUBVAR __declspec(dllexport) extern 102 #else 103 #define XSLTPUBFUN 104 #if !defined(LIBXSLT_STATIC) 105 #define XSLTPUBVAR __declspec(dllimport) extern 106 #else 107 #define XSLTPUBVAR extern 108 #endif 109 #endif 110 #define XSLTCALL __cdecl 111 #if !defined _REENTRANT 112 #define _REENTRANT 113 #endif 114 #endif 115 116 /* Cygwin platform, GNU compiler */ 117 #if defined(_WIN32) && defined(__CYGWIN__) 118 #undef XSLTPUBFUN 119 #undef XSLTPUBVAR 120 #undef XSLTCALL 121 #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC) 122 #define XSLTPUBFUN __declspec(dllexport) 123 #define XSLTPUBVAR __declspec(dllexport) 124 #else 125 #define XSLTPUBFUN 126 #if !defined(LIBXSLT_STATIC) 127 #define XSLTPUBVAR __declspec(dllimport) extern 128 #else 129 #define XSLTPUBVAR 130 #endif 131 #endif 132 #define XSLTCALL __cdecl 133 #endif 134 135 /* Compatibility */ 136 #if !defined(LIBXSLT_PUBLIC) 137 #define LIBXSLT_PUBLIC XSLTPUBVAR 138 #endif 139 140 #endif /* __XSLT_EXPORTS_H__ */ 141 142 143