|
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 #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) |
|
112 #define XMLPUBFUN __declspec(dllexport) |
|
113 #define XMLPUBVAR __declspec(dllexport) |
|
114 #else |
|
115 #define XMLPUBFUN |
|
116 #if !defined(LIBXML_STATIC) |
|
117 #define XMLPUBVAR __declspec(dllimport) extern |
|
118 #else |
|
119 #define XMLPUBVAR extern |
|
120 #endif |
|
121 #endif |
|
122 #define XMLCALL __cdecl |
|
123 #define XMLCDECL __cdecl |
|
124 #if !defined _REENTRANT |
|
125 #define _REENTRANT |
|
126 #endif |
|
127 #endif |
|
128 |
|
129 /* Cygwin platform, GNU compiler */ |
|
130 #if defined(_WIN32) && defined(__CYGWIN__) |
|
131 #undef XMLPUBFUN |
|
132 #undef XMLPUBVAR |
|
133 #undef XMLCALL |
|
134 #undef XMLCDECL |
|
135 #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) |
|
136 #define XMLPUBFUN __declspec(dllexport) |
|
137 #define XMLPUBVAR __declspec(dllexport) |
|
138 #else |
|
139 #define XMLPUBFUN |
|
140 #if !defined(LIBXML_STATIC) |
|
141 #define XMLPUBVAR __declspec(dllimport) extern |
|
142 #else |
|
143 #define XMLPUBVAR |
|
144 #endif |
|
145 #endif |
|
146 #define XMLCALL __cdecl |
|
147 #define XMLCDECL __cdecl |
|
148 #endif |
|
149 |
|
150 /* Compatibility */ |
|
151 #if !defined(LIBXML_DLL_IMPORT) |
|
152 #define LIBXML_DLL_IMPORT XMLPUBVAR |
|
153 #endif |
|
154 |
|
155 #endif /* __XML_EXPORTS_H__ */ |
|
156 |
|
157 |