• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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, GNU compiler */
117 #if defined(_WIN32) && 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
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