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