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