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
8#ifndef __XML_EXPORTS_H__
9#define __XML_EXPORTS_H__
10
11#if defined(_WIN32) || defined(__CYGWIN__)
12/** DOC_DISABLE */
13
14#ifdef LIBXML_STATIC
15 #define XMLPUBLIC
16#elif defined(IN_LIBXML)
17 #define XMLPUBLIC __declspec(dllexport)
18#else
19 #define XMLPUBLIC __declspec(dllimport)
20#endif
21
22#if defined(LIBXML_FASTCALL)
23 #define XMLCALL __fastcall
24#else
25 #define XMLCALL __cdecl
26#endif
27#define XMLCDECL __cdecl
28
29/** DOC_ENABLE */
30#else /* not Windows */
31
32/**
33 * XMLPUBLIC:
34 *
35 * Macro which declares a public symbol
36 */
37#define XMLPUBLIC
38
39/**
40 * XMLCALL:
41 *
42 * Macro which declares the calling convention for exported functions
43 */
44#define XMLCALL
45
46/**
47 * XMLCDECL:
48 *
49 * Macro which declares the calling convention for exported functions that
50 * use '...'.
51 */
52#define XMLCDECL
53
54#endif /* platform switch */
55
56/*
57 * XMLPUBFUN:
58 *
59 * Macro which declares an exportable function
60 */
61#define XMLPUBFUN XMLPUBLIC
62
63/**
64 * XMLPUBVAR:
65 *
66 * Macro which declares an exportable variable
67 */
68#define XMLPUBVAR XMLPUBLIC extern
69
70/* Compatibility */
71#if !defined(LIBXML_DLL_IMPORT)
72#define LIBXML_DLL_IMPORT XMLPUBVAR
73#endif
74
75#endif /* __XML_EXPORTS_H__ */
76
77
78