Return to xmlexports.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml |
1.1 ! misho 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 Zlatovic <igor@zlatkovic.com> ! 8: */ ! 9: ! 10: #ifndef __XML_EXPORTS_H__ ! 11: #define __XML_EXPORTS_H__ ! 12: ! 13: /** ! 14: * XMLPUBFUN, XMLPUBVAR, XMLCALL ! 15: * ! 16: * Macros which declare an exportable function, an exportable variable and ! 17: * the calling convention used for functions. ! 18: * ! 19: * Please use an extra block for every platform/compiler combination when ! 20: * modifying this, rather than overlong #ifdef lines. This helps ! 21: * readability as well as the fact that different compilers on the same ! 22: * platform might need different definitions. ! 23: */ ! 24: ! 25: /** ! 26: * XMLPUBFUN: ! 27: * ! 28: * Macros which declare an exportable function ! 29: */ ! 30: #define XMLPUBFUN ! 31: /** ! 32: * XMLPUBVAR: ! 33: * ! 34: * Macros which declare an exportable variable ! 35: */ ! 36: #define XMLPUBVAR extern ! 37: /** ! 38: * XMLCALL: ! 39: * ! 40: * Macros which declare the called convention for exported functions ! 41: */ ! 42: #define XMLCALL ! 43: /** ! 44: * XMLCDECL: ! 45: * ! 46: * Macro which declares the calling convention for exported functions that ! 47: * use '...'. ! 48: */ ! 49: #define XMLCDECL ! 50: ! 51: /** DOC_DISABLE */ ! 52: ! 53: /* Windows platform with MS compiler */ ! 54: #if defined(_WIN32) && defined(_MSC_VER) ! 55: #undef XMLPUBFUN ! 56: #undef XMLPUBVAR ! 57: #undef XMLCALL ! 58: #undef XMLCDECL ! 59: #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) ! 60: #define XMLPUBFUN __declspec(dllexport) ! 61: #define XMLPUBVAR __declspec(dllexport) ! 62: #else ! 63: #define XMLPUBFUN ! 64: #if !defined(LIBXML_STATIC) ! 65: #define XMLPUBVAR __declspec(dllimport) extern ! 66: #else ! 67: #define XMLPUBVAR extern ! 68: #endif ! 69: #endif ! 70: #if defined(LIBXML_FASTCALL) ! 71: #define XMLCALL __fastcall ! 72: #else ! 73: #define XMLCALL __cdecl ! 74: #endif ! 75: #define XMLCDECL __cdecl ! 76: #if !defined _REENTRANT ! 77: #define _REENTRANT ! 78: #endif ! 79: #endif ! 80: ! 81: /* Windows platform with Borland compiler */ ! 82: #if defined(_WIN32) && defined(__BORLANDC__) ! 83: #undef XMLPUBFUN ! 84: #undef XMLPUBVAR ! 85: #undef XMLCALL ! 86: #undef XMLCDECL ! 87: #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) ! 88: #define XMLPUBFUN __declspec(dllexport) ! 89: #define XMLPUBVAR __declspec(dllexport) extern ! 90: #else ! 91: #define XMLPUBFUN ! 92: #if !defined(LIBXML_STATIC) ! 93: #define XMLPUBVAR __declspec(dllimport) extern ! 94: #else ! 95: #define XMLPUBVAR extern ! 96: #endif ! 97: #endif ! 98: #define XMLCALL __cdecl ! 99: #define XMLCDECL __cdecl ! 100: #if !defined _REENTRANT ! 101: #define _REENTRANT ! 102: #endif ! 103: #endif ! 104: ! 105: /* Windows platform with GNU compiler (Mingw) */ ! 106: #if defined(_WIN32) && defined(__MINGW32__) ! 107: #undef XMLPUBFUN ! 108: #undef XMLPUBVAR ! 109: #undef XMLCALL ! 110: #undef XMLCDECL ! 111: /* ! 112: * if defined(IN_LIBXML) this raises problems on mingw with msys ! 113: * _imp__xmlFree listed as missing. Try to workaround the problem ! 114: * by also making that declaration when compiling client code. ! 115: */ ! 116: #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) ! 117: #define XMLPUBFUN __declspec(dllexport) ! 118: #define XMLPUBVAR __declspec(dllexport) ! 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: /* Cygwin platform, GNU compiler */ ! 135: #if defined(_WIN32) && defined(__CYGWIN__) ! 136: #undef XMLPUBFUN ! 137: #undef XMLPUBVAR ! 138: #undef XMLCALL ! 139: #undef XMLCDECL ! 140: #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) ! 141: #define XMLPUBFUN __declspec(dllexport) ! 142: #define XMLPUBVAR __declspec(dllexport) ! 143: #else ! 144: #define XMLPUBFUN ! 145: #if !defined(LIBXML_STATIC) ! 146: #define XMLPUBVAR __declspec(dllimport) extern ! 147: #else ! 148: #define XMLPUBVAR ! 149: #endif ! 150: #endif ! 151: #define XMLCALL __cdecl ! 152: #define XMLCDECL __cdecl ! 153: #endif ! 154: ! 155: /* Compatibility */ ! 156: #if !defined(LIBXML_DLL_IMPORT) ! 157: #define LIBXML_DLL_IMPORT XMLPUBVAR ! 158: #endif ! 159: ! 160: #endif /* __XML_EXPORTS_H__ */ ! 161: ! 162: