1ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 2ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Summary: macros for marking symbols as exportable/importable. 3ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Description: macros for marking symbols as exportable/importable. 4ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 5ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Copy: See Copyright for the status of this software. 6ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 7ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Author: Igor Zlatovic <igor@zlatkovic.com> 8ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 9ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 10ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifndef __XML_EXPORTS_H__ 11ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define __XML_EXPORTS_H__ 12ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 13ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 14ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * XMLPUBFUN, XMLPUBVAR, XMLCALL 15ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 16ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macros which declare an exportable function, an exportable variable and 17ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * the calling convention used for functions. 18ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 19ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Please use an extra block for every platform/compiler combination when 20ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * modifying this, rather than overlong #ifdef lines. This helps 21ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * readability as well as the fact that different compilers on the same 22ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * platform might need different definitions. 23ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 24ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 25ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 26ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * XMLPUBFUN: 27ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 28ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macros which declare an exportable function 29ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 30ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define XMLPUBFUN 31ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 32ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * XMLPUBVAR: 33ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 34ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macros which declare an exportable variable 35ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 36ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define XMLPUBVAR extern 37ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 38ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * XMLCALL: 39ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 40ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macros which declare the called convention for exported functions 41ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 42ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define XMLCALL 43ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 44ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * XMLCDECL: 45ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 46ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro which declares the calling convention for exported functions that 47ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * use '...'. 48ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 49ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define XMLCDECL 50ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 51ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** DOC_DISABLE */ 52ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 53ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* Windows platform with MS compiler */ 54ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#if defined(_WIN32) && defined(_MSC_VER) 55ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLPUBFUN 56ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLPUBVAR 57ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLCALL 58ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLCDECL 59ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 60ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBFUN __declspec(dllexport) 61ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR __declspec(dllexport) 62ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #else 63ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBFUN 64ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if !defined(LIBXML_STATIC) 65ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR __declspec(dllimport) extern 66ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #else 67ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR extern 68ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 69ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 70ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if defined(LIBXML_FASTCALL) 71ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLCALL __fastcall 72ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #else 73ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLCALL __cdecl 74ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 75ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLCDECL __cdecl 76ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if !defined _REENTRANT 77ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define _REENTRANT 78ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 79ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 80ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 81ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* Windows platform with Borland compiler */ 82ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#if defined(_WIN32) && defined(__BORLANDC__) 83ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLPUBFUN 84ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLPUBVAR 85ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLCALL 86ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLCDECL 87ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 88ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBFUN __declspec(dllexport) 89ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR __declspec(dllexport) extern 90ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #else 91ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBFUN 92ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if !defined(LIBXML_STATIC) 93ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR __declspec(dllimport) extern 94ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #else 95ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR extern 96ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 97ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 98ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLCALL __cdecl 99ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLCDECL __cdecl 100ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if !defined _REENTRANT 101ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define _REENTRANT 102ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 103ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 104ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 105ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* Windows platform with GNU compiler (Mingw) */ 106ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#if defined(_WIN32) && defined(__MINGW32__) 107ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLPUBFUN 108ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLPUBVAR 109ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLCALL 110ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLCDECL 111df143a5041f03a22808b59c76698770b74692815Selim Gurun /* 112df143a5041f03a22808b59c76698770b74692815Selim Gurun * if defined(IN_LIBXML) this raises problems on mingw with msys 113df143a5041f03a22808b59c76698770b74692815Selim Gurun * _imp__xmlFree listed as missing. Try to workaround the problem 114df143a5041f03a22808b59c76698770b74692815Selim Gurun * by also making that declaration when compiling client code. 115df143a5041f03a22808b59c76698770b74692815Selim Gurun */ 116ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 117ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBFUN __declspec(dllexport) 118ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR __declspec(dllexport) 119ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #else 120ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBFUN 121ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if !defined(LIBXML_STATIC) 122ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR __declspec(dllimport) extern 123ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #else 124ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR extern 125ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 126ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 127ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLCALL __cdecl 128ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLCDECL __cdecl 129ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if !defined _REENTRANT 130ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define _REENTRANT 131ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 132ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 133ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 134ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* Cygwin platform, GNU compiler */ 135ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#if defined(_WIN32) && defined(__CYGWIN__) 136ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLPUBFUN 137ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLPUBVAR 138ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLCALL 139ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #undef XMLCDECL 140ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 141ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBFUN __declspec(dllexport) 142ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR __declspec(dllexport) 143ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #else 144ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBFUN 145ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #if !defined(LIBXML_STATIC) 146ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR __declspec(dllimport) extern 147ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #else 148ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLPUBVAR 149ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 150ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #endif 151ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLCALL __cdecl 152ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project #define XMLCDECL __cdecl 153ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 154ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 155ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* Compatibility */ 156ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#if !defined(LIBXML_DLL_IMPORT) 157ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define LIBXML_DLL_IMPORT XMLPUBVAR 158ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 159ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 160ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* __XML_EXPORTS_H__ */ 161ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 162ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 163