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