xmlwin32version.h.in revision f076f348c4e7449f3f70b1e0f2137dccd0c2ba2e
1f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/*
2be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Summary: compile-time version informations on Windows
3be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Description: compile-time version informations for the XML library
4be5869729a416032a4abb5a65430d25831828f75Daniel Veillard *              when compiled on the Windows platform
5f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
6be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Copy: See Copyright for the status of this software.
7f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
8be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Author: Daniel Veillard
9f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
10f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
11f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#ifndef __XML_VERSION_H__
12f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define __XML_VERSION_H__
13f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
14f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#ifdef __cplusplus
15f7f41852e681a83a763dba75eddee023258ed190Daniel Veillardextern "C" {
16f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
17f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
18f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/*
19f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * use those to be sure nothing nasty will happen if
20f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * your library and includes mismatch
21f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
2250f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard#ifndef LIBXML2_COMPILING_MSCCDEF
2305dec3443909fa6176fbbdd69b32b60ead7cc0ceDaniel Veillardextern void xmlCheckVersion(int version);
2450f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard#endif /* LIBXML2_COMPILING_MSCCDEF */
2550f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard
2650f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard/**
2750f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * LIBXML_DOTTED_VERSION:
2850f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard *
2950f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * the version string like "1.2.3"
3050f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard */
31c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard#define LIBXML_DOTTED_VERSION "@VERSION@"
3250f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard
3350f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard/**
3450f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * LIBXML_VERSION:
3550f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard *
3650f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * the version number: 1.2.3 value is 1002003
3750f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard */
38c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard#define LIBXML_VERSION @LIBXML_VERSION_NUMBER@
3950f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard
4050f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard/**
4150f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * LIBXML_VERSION_STRING:
4250f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard *
4350f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * the version number string, 1.2.3 value is "1002003"
4450f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard */
45c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard#define LIBXML_VERSION_STRING "@LIBXML_VERSION_NUMBER@"
4650f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard
4750f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard/**
48f4025492f51c976edecd92deba5581dab2687773William M. Brack * LIBXML_VERSION_EXTRA:
49f4025492f51c976edecd92deba5581dab2687773William M. Brack *
50f4025492f51c976edecd92deba5581dab2687773William M. Brack * extra version information, used to show a CVS compilation
51f4025492f51c976edecd92deba5581dab2687773William M. Brack */
52d17760f39782109df9206472b8573780e2e1290cDaniel Veillard#define LIBXML_VERSION_EXTRA "-win32"
53f4025492f51c976edecd92deba5581dab2687773William M. Brack
54f4025492f51c976edecd92deba5581dab2687773William M. Brack/**
5550f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * LIBXML_TEST_VERSION:
5650f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard *
5750f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * Macro to check that the libxml version in use is compatible with
5850f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * the version the software has been compiled against
5950f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard */
60c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard#define LIBXML_TEST_VERSION xmlCheckVersion(@LIBXML_VERSION_NUMBER@);
61f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
627cf5e448274048e5dfb9bfb878d4ed406bc52b93Daniel Veillard#if 0
63f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
64f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * WITH_TRIO:
65f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
667cf5e448274048e5dfb9bfb878d4ed406bc52b93Daniel Veillard * defined if the trio support need to be configured in
67f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
68f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define WITH_TRIO
697cf5e448274048e5dfb9bfb878d4ed406bc52b93Daniel Veillard#else
707cf5e448274048e5dfb9bfb878d4ed406bc52b93Daniel Veillard/**
717cf5e448274048e5dfb9bfb878d4ed406bc52b93Daniel Veillard * WITHOUT_TRIO:
727cf5e448274048e5dfb9bfb878d4ed406bc52b93Daniel Veillard *
737cf5e448274048e5dfb9bfb878d4ed406bc52b93Daniel Veillard * defined if the trio support should not be configured in
747cf5e448274048e5dfb9bfb878d4ed406bc52b93Daniel Veillard */
757cf5e448274048e5dfb9bfb878d4ed406bc52b93Daniel Veillard#define WITHOUT_TRIO
76f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
77f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
78f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
79da423da207ec877ed93a7b165c5ef6d6785e8940Daniel Veillard * LIBXML_THREAD_ENABLED:
80db0eb8df5a13ef5dcf228519682d41cfe5f8700bDaniel Veillard *
81db0eb8df5a13ef5dcf228519682d41cfe5f8700bDaniel Veillard * Whether the thread support is configured in
82db0eb8df5a13ef5dcf228519682d41cfe5f8700bDaniel Veillard */
83db0eb8df5a13ef5dcf228519682d41cfe5f8700bDaniel Veillard#if 0
84db0eb8df5a13ef5dcf228519682d41cfe5f8700bDaniel Veillard#define LIBXML_THREAD_ENABLED
85db0eb8df5a13ef5dcf228519682d41cfe5f8700bDaniel Veillard#endif
86db0eb8df5a13ef5dcf228519682d41cfe5f8700bDaniel Veillard
87db0eb8df5a13ef5dcf228519682d41cfe5f8700bDaniel Veillard/**
88f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * LIBXML_FTP_ENABLED:
89f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
90f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether the FTP support is configured in
91f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
92f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#if 1
93f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_FTP_ENABLED
94f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
95f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
96f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
97f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * LIBXML_HTTP_ENABLED:
98f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
99f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether the HTTP support is configured in
100f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
101f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#if 1
102f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_HTTP_ENABLED
103f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
104f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
105f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
106f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * LIBXML_HTML_ENABLED:
107f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
108f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether the HTML support is configured in
109f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
110f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#if 1
111f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_HTML_ENABLED
112f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
113f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
114f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
115f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * LIBXML_CATALOG_ENABLED:
116f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
117f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether the Catalog support is configured in
118f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
119f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#if 1
120f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_CATALOG_ENABLED
121f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
122f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
123f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
124f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * LIBXML_DOCB_ENABLED:
125f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
126f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether the SGML Docbook support is configured in
127f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
12850f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard#if 1
129f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_DOCB_ENABLED
130f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
131f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
132f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
133f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * LIBXML_XPATH_ENABLED:
134f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
135f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether XPath is configured in
136f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
137f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#if 1
138f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_XPATH_ENABLED
139f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
140f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
141f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
142f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * LIBXML_XPTR_ENABLED:
143f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
144f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether XPointer is configured in
145f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
146f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#if 1
147f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_XPTR_ENABLED
148f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
149f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
150f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
151044fc6b7476798cbb95277b4905e5111d7c2775dDaniel Veillard * LIBXML_C14N_ENABLED:
152044fc6b7476798cbb95277b4905e5111d7c2775dDaniel Veillard *
153044fc6b7476798cbb95277b4905e5111d7c2775dDaniel Veillard * Whether the Canonicalization support is configured in
154044fc6b7476798cbb95277b4905e5111d7c2775dDaniel Veillard */
155044fc6b7476798cbb95277b4905e5111d7c2775dDaniel Veillard#if 0
156044fc6b7476798cbb95277b4905e5111d7c2775dDaniel Veillard#define LIBXML_C14N_ENABLED
157044fc6b7476798cbb95277b4905e5111d7c2775dDaniel Veillard#endif
158044fc6b7476798cbb95277b4905e5111d7c2775dDaniel Veillard
159044fc6b7476798cbb95277b4905e5111d7c2775dDaniel Veillard/**
160f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * LIBXML_XINCLUDE_ENABLED:
161f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
162f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether XInclude is configured in
163f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
164f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#if 1
165f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_XINCLUDE_ENABLED
166f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
167f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
168f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
169ed6c54971fdb7fa37c183b1a36c2e581c750984bDaniel Veillard * LIBXML_SCHEMATRON_ENABLED:
170ed6c54971fdb7fa37c183b1a36c2e581c750984bDaniel Veillard *
171ed6c54971fdb7fa37c183b1a36c2e581c750984bDaniel Veillard * Whether the Schematron validation interfaces are compiled in
172ed6c54971fdb7fa37c183b1a36c2e581c750984bDaniel Veillard */
173ed6c54971fdb7fa37c183b1a36c2e581c750984bDaniel Veillard#if 1
174ed6c54971fdb7fa37c183b1a36c2e581c750984bDaniel Veillard#define LIBXML_SCHEMATRON_ENABLED
175ed6c54971fdb7fa37c183b1a36c2e581c750984bDaniel Veillard#endif
176ed6c54971fdb7fa37c183b1a36c2e581c750984bDaniel Veillard
177ed6c54971fdb7fa37c183b1a36c2e581c750984bDaniel Veillard/**
178f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * LIBXML_ICONV_ENABLED:
179f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
180f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether iconv support is available
181f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
18250f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard#if 0
183f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_ICONV_ENABLED
184f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
185f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
186f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
18701fc1a9d5a3929c3903fbb49ff4c6d719d8e46e4Daniel Veillard * LIBXML_ISO8859X_ENABLED:
18801fc1a9d5a3929c3903fbb49ff4c6d719d8e46e4Daniel Veillard *
18901fc1a9d5a3929c3903fbb49ff4c6d719d8e46e4Daniel Veillard * Whether ISO-8859-* support is made available in case iconv is not
19001fc1a9d5a3929c3903fbb49ff4c6d719d8e46e4Daniel Veillard */
19101fc1a9d5a3929c3903fbb49ff4c6d719d8e46e4Daniel Veillard#if 1
19201fc1a9d5a3929c3903fbb49ff4c6d719d8e46e4Daniel Veillard#define LIBXML_ISO8859X_ENABLED
19301fc1a9d5a3929c3903fbb49ff4c6d719d8e46e4Daniel Veillard#endif
19401fc1a9d5a3929c3903fbb49ff4c6d719d8e46e4Daniel Veillard
19501fc1a9d5a3929c3903fbb49ff4c6d719d8e46e4Daniel Veillard/**
196f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * LIBXML_DEBUG_ENABLED:
197f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
198f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether Debugging module is configured in
199f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
200f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#if 1
201f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_DEBUG_ENABLED
202f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
203f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
204f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
205f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * DEBUG_MEMORY_LOCATION:
206f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
207f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Whether the memory debugging is configured in
208f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
20907385fd77f2a6f4c990ad72d554937a50ea29ae9Daniel Veillard#if 0
210f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define DEBUG_MEMORY_LOCATION
211f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
212f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
21350f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard/**
21422cdb842fdc74bc4b5133f5c03d7c85c9fef7d7fDaniel Veillard * LIBXML_DEBUG_RUNTIME:
21522cdb842fdc74bc4b5133f5c03d7c85c9fef7d7fDaniel Veillard *
21622cdb842fdc74bc4b5133f5c03d7c85c9fef7d7fDaniel Veillard * Whether the runtime debugging is configured in
21722cdb842fdc74bc4b5133f5c03d7c85c9fef7d7fDaniel Veillard */
21822cdb842fdc74bc4b5133f5c03d7c85c9fef7d7fDaniel Veillard#if 0
21922cdb842fdc74bc4b5133f5c03d7c85c9fef7d7fDaniel Veillard#define LIBXML_DEBUG_RUNTIME
22022cdb842fdc74bc4b5133f5c03d7c85c9fef7d7fDaniel Veillard#endif
22122cdb842fdc74bc4b5133f5c03d7c85c9fef7d7fDaniel Veillard
22222cdb842fdc74bc4b5133f5c03d7c85c9fef7d7fDaniel Veillard/**
22350f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * LIBXML_DLL_IMPORT:
22450f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard *
22550f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * Used on Windows (MS C compiler only) to declare a variable as
22650f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * imported from the library. This macro should be empty when compiling
22750f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * libxml itself. It should expand to __declspec(dllimport)
22850f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * when the client code includes this header, and that only if the client
22950f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * links dynamically against libxml.
23050f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * For this to work, we need three macros. One tells us which compiler is
23150f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * being used and luckily the compiler defines such a thing: _MSC_VER. The
23250f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * second macro tells us if we are compiling libxml or the client code and
23350f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * we define the macro IN_LIBXML on the compiler's command line for this
23450f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * purpose. The third macro, LIBXML_STATIC, must be defined by any client
23550f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard * code which links against libxml statically.
23650f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard */
237f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#ifndef LIBXML_DLL_IMPORT
23850f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard#if defined(_MSC_VER) && !defined(IN_LIBXML) && !defined(LIBXML_STATIC)
239f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_DLL_IMPORT __declspec(dllimport)
240f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#else
241f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define LIBXML_DLL_IMPORT
242f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
243f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
244f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
245f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard#ifdef __GNUC__
246f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard#ifdef HAVE_ANSIDECL_H
247f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard#include <ansidecl.h>
248f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard#endif
249f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard
250f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard/**
251f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * ATTRIBUTE_UNUSED:
252f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard *
253f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard * Macro used to signal to GCC unused function parameters
254f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard */
255f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard
25650f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard#ifndef ATTRIBUTE_UNUSED
25750f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard#define ATTRIBUTE_UNUSED
25850f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard#endif
259f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard
260f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard/**
261f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard * ATTRIBUTE_ALLOC_SIZE:
262f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard *
263f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard * Macro used to indicate to GCC this is an allocator function
264f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard */
265f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard
266d032a5bc212143649e7d5a55a1180fba34b18185Daniel Veillard#ifndef ATTRIBUTE_ALLOC_SIZE
267d032a5bc212143649e7d5a55a1180fba34b18185Daniel Veillard# if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
268d032a5bc212143649e7d5a55a1180fba34b18185Daniel Veillard#  define ATTRIBUTE_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
269d032a5bc212143649e7d5a55a1180fba34b18185Daniel Veillard# else
270d032a5bc212143649e7d5a55a1180fba34b18185Daniel Veillard#  define ATTRIBUTE_ALLOC_SIZE(x)
271d032a5bc212143649e7d5a55a1180fba34b18185Daniel Veillard# endif
272d032a5bc212143649e7d5a55a1180fba34b18185Daniel Veillard#else
273d032a5bc212143649e7d5a55a1180fba34b18185Daniel Veillard# define ATTRIBUTE_ALLOC_SIZE(x)
274d032a5bc212143649e7d5a55a1180fba34b18185Daniel Veillard#endif
275f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard
276f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard/**
277f076f348c4e7449f3f70b1e0f2137dccd0c2ba2eDaniel Veillard * LIBXML_ATTR_FORMAT:
278f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard *
279f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard * Macro used to indicate to GCC the parameter are printf like
280f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard */
281f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard
282f076f348c4e7449f3f70b1e0f2137dccd0c2ba2eDaniel Veillard#ifndef LIBXML_ATTR_FORMAT
283f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard# if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))
284f076f348c4e7449f3f70b1e0f2137dccd0c2ba2eDaniel Veillard#  define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args)))
285f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard# else
286f076f348c4e7449f3f70b1e0f2137dccd0c2ba2eDaniel Veillard#  define LIBXML_ATTR_FORMAT(fmt,args)
287f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard# endif
28850f3437111a6428b4852740e83db4848b0b09a97Daniel Veillard#else
289f076f348c4e7449f3f70b1e0f2137dccd0c2ba2eDaniel Veillard# define LIBXML_ATTR_FORMAT(fmt,args)
290f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard#endif
291f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard
292f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard#else /* !__GNUC__ */
293f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#define ATTRIBUTE_UNUSED
294f076f348c4e7449f3f70b1e0f2137dccd0c2ba2eDaniel Veillard#define LIBXML_ATTR_FORMAT(fmt,args)
295d032a5bc212143649e7d5a55a1180fba34b18185Daniel Veillard#define ATTRIBUTE_ALLOC_SIZE(x)
296f63085de5e33a95e326d1d810fb18d979359012bDaniel Veillard#endif /* __GNUC__ */
297f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard
29860f394e96df5022a6145505bfbeb99815f65e7daWilliam M. Brack/*
2998e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard * #pragma comment(lib, "iconv.lib")
3008e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard *
3018e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard * pragma understood my MS compiler which enables a conditional link with
3028e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard * iconv.
3038e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard */
3048e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard#ifdef _MSC_VER
3058e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard#if defined LIBXML_ICONV_ENABLED && !defined LIBXML2_COMPILING_MSCCDEF
3068e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard#pragma comment(lib, "iconv.lib")
3078e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard#endif
3088e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard#endif
3098e3943cbabf23a7c97af785f11cca328e6ddf9f9Daniel Veillard
310ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard/*
311ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard * #pragma comment(lib, "kernel32.lib")
312ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard *
313ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard * pragma understood my MS compiler which enables a conditional link with
314ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard * kernel32.
315ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard */
316ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard#ifdef _MSC_VER
317ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard#if defined LIBXML_MODULES_ENABLED
318ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard#pragma comment(lib, "kernel32.lib")
319ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard#endif
320ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard#endif
321ce1648b124a9d8decd453185852b0927d311a3aaDaniel Veillard
322f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#ifdef __cplusplus
323f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard}
324f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif /* __cplusplus */
325f7f41852e681a83a763dba75eddee023258ed190Daniel Veillard#endif
326