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