Annotation of embedaddon/libxml2/include/libxml/xmlexports.h, revision 1.1.1.3

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:  *
1.1.1.3 ! misho      46:  * Macro which declares the calling convention for exported functions that
1.1       misho      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)
1.1.1.2   misho     118:     #define XMLPUBVAR __declspec(dllexport) extern
1.1       misho     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: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>