summaryrefslogtreecommitdiff
path: root/win32/VC10/config.h
diff options
context:
space:
mode:
authorThomas Lemm <thomas.lemm@gmx.de>2012-05-09 18:27:04 +0800
committerDaniel Veillard <veillard@redhat.com>2012-05-09 18:27:04 +0800
commit066c69777207436e3517d1b930a97f0e0a8aa060 (patch)
tree4ee8d39900db19684e196ccbc8d367c0831134de /win32/VC10/config.h
parent689408bd86227c33b1d93aab478d735effe8af6b (diff)
downloadlibxml2-066c69777207436e3517d1b930a97f0e0a8aa060.tar.gz
Allow to compile with Visual Studio 2010
For https://bugzilla.gnome.org/show_bug.cgi?id=666491 This patch adds project files to compile and debug libxml2 using Visual Studio 2010. Only few minor changes have been made to the actual source code. This patch also requires for the iconv package to be compiled with visual studio 2010 which has been submitted to the iconv project (see: https://savannah.gnu.org/bugs/?35088)
Diffstat (limited to 'win32/VC10/config.h')
-rw-r--r--win32/VC10/config.h125
1 files changed, 125 insertions, 0 deletions
diff --git a/win32/VC10/config.h b/win32/VC10/config.h
new file mode 100644
index 00000000..8629944e
--- /dev/null
+++ b/win32/VC10/config.h
@@ -0,0 +1,125 @@
+#ifndef __LIBXML_WIN32_CONFIG__
+#define __LIBXML_WIN32_CONFIG__
+
+#define HAVE_CTYPE_H
+#define HAVE_STDARG_H
+#define HAVE_MALLOC_H
+#define HAVE_ERRNO_H
+#define HAVE_STDINT_H
+
+#if defined(_WIN32_WCE)
+#undef HAVE_ERRNO_H
+#include <windows.h>
+#include "wincecompat.h"
+#else
+#define HAVE_SYS_STAT_H
+#define HAVE__STAT
+#define HAVE_STAT
+#define HAVE_STDLIB_H
+#define HAVE_TIME_H
+#define HAVE_FCNTL_H
+#include <io.h>
+#include <direct.h>
+#endif
+
+#include <libxml/xmlversion.h>
+
+#ifndef ICONV_CONST
+#define ICONV_CONST const
+#endif
+
+#ifdef NEED_SOCKETS
+#include <wsockcompat.h>
+#endif
+
+/*
+ * Windows platforms may define except
+ */
+#undef except
+
+#define HAVE_ISINF
+#define HAVE_ISNAN
+#include <math.h>
+#if defined(_MSC_VER) || defined(__BORLANDC__)
+/* MS C-runtime has functions which can be used in order to determine if
+ a given floating-point variable contains NaN, (+-)INF. These are
+ preferred, because floating-point technology is considered propriatary
+ by MS and we can assume that their functions know more about their
+ oddities than we do. */
+#include <float.h>
+/* Bjorn Reese figured a quite nice construct for isinf() using the _fpclass
+ function. */
+#ifndef isinf
+#define isinf(d) ((_fpclass(d) == _FPCLASS_PINF) ? 1 \
+ : ((_fpclass(d) == _FPCLASS_NINF) ? -1 : 0))
+#endif
+/* _isnan(x) returns nonzero if (x == NaN) and zero otherwise. */
+#ifndef isnan
+#define isnan(d) (_isnan(d))
+#endif
+#else /* _MSC_VER */
+#ifndef isinf
+static int isinf (double d) {
+ int expon = 0;
+ double val = frexp (d, &expon);
+ if (expon == 1025) {
+ if (val == 0.5) {
+ return 1;
+ } else if (val == -0.5) {
+ return -1;
+ } else {
+ return 0;
+ }
+ } else {
+ return 0;
+ }
+}
+#endif
+#ifndef isnan
+static int isnan (double d) {
+ int expon = 0;
+ double val = frexp (d, &expon);
+ if (expon == 1025) {
+ if (val == 0.5) {
+ return 0;
+ } else if (val == -0.5) {
+ return 0;
+ } else {
+ return 1;
+ }
+ } else {
+ return 0;
+ }
+}
+#endif
+#endif /* _MSC_VER */
+
+#if defined(_MSC_VER)
+#define mkdir(p,m) _mkdir(p)
+#define snprintf _snprintf
+#if _MSC_VER < 1500
+#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
+#endif
+#elif defined(__MINGW32__)
+#define mkdir(p,m) _mkdir(p)
+#endif
+
+/* Threading API to use should be specified here for compatibility reasons.
+ This is however best specified on the compiler's command-line. */
+#if defined(LIBXML_THREAD_ENABLED)
+#if !defined(HAVE_PTHREAD_H) && !defined(HAVE_WIN32_THREADS) && !defined(_WIN32_WCE)
+#define HAVE_WIN32_THREADS
+#endif
+#endif
+
+/* Some third-party libraries far from our control assume the following
+ is defined, which it is not if we don't include windows.h. */
+#if !defined(FALSE)
+#define FALSE 0
+#endif
+#if !defined(TRUE)
+#define TRUE (!(FALSE))
+#endif
+
+#endif /* __LIBXML_WIN32_CONFIG__ */
+