xref: /PHP-5.5/Zend/zend_config.w32.h (revision 73c1be26)
1 /*
2    +----------------------------------------------------------------------+
3    | Zend Engine                                                          |
4    +----------------------------------------------------------------------+
5    | Copyright (c) 1998-2015 Zend Technologies Ltd. (http://www.zend.com) |
6    +----------------------------------------------------------------------+
7    | This source file is subject to version 2.00 of the Zend license,     |
8    | that is bundled with this package in the file LICENSE, and is        |
9    | available through the world-wide-web at the following url:           |
10    | http://www.zend.com/license/2_00.txt.                                |
11    | If you did not receive a copy of the Zend license and are unable to  |
12    | obtain it through the world-wide-web, please send a note to          |
13    | license@zend.com so we can mail you a copy immediately.              |
14    +----------------------------------------------------------------------+
15    | Authors: Andi Gutmans <andi@zend.com>                                |
16    |          Zeev Suraski <zeev@zend.com>                                |
17    +----------------------------------------------------------------------+
18 */
19 
20 /* $Id$ */
21 
22 #ifndef ZEND_CONFIG_W32_H
23 #define ZEND_CONFIG_W32_H
24 
25 #include <../main/config.w32.h>
26 
27 #define _CRTDBG_MAP_ALLOC
28 
29 #include <malloc.h>
30 #include <stdlib.h>
31 #include <crtdbg.h>
32 
33 #include <string.h>
34 
35 #ifndef ZEND_INCLUDE_FULL_WINDOWS_HEADERS
36 #define WIN32_LEAN_AND_MEAN
37 #endif
38 #include <winsock2.h>
39 #include <windows.h>
40 
41 #include <float.h>
42 
43 typedef unsigned long ulong;
44 typedef unsigned int uint;
45 
46 #define HAVE_STDIOSTR_H 1
47 #define HAVE_CLASS_ISTDIOSTREAM
48 #define istdiostream stdiostream
49 
50 #define snprintf _snprintf
51 #if _MSC_VER < 1500
52 #define vsnprintf _vsnprintf
53 #endif
54 #define strcasecmp(s1, s2) stricmp(s1, s2)
55 #define strncasecmp(s1, s2, n) strnicmp(s1, s2, n)
56 #define zend_isinf(a)	((_fpclass(a) == _FPCLASS_PINF) || (_fpclass(a) == _FPCLASS_NINF))
57 #define zend_finite(x)	_finite(x)
58 #define zend_isnan(x)	_isnan(x)
59 
60 #define zend_sprintf sprintf
61 
62 /* This will cause the compilation process to be MUCH longer, but will generate
63  * a much quicker PHP binary
64  */
65 #ifdef ZEND_WIN32_FORCE_INLINE
66 /* _ALLOW_KEYWORD_MACROS is only relevant for C++ */
67 # if (_MSC_VER >= 1700) && !defined(_ALLOW_KEYWORD_MACROS)
68 #  define _ALLOW_KEYWORD_MACROS
69 # endif
70 # undef inline
71 # define inline __forceinline
72 #elif !defined(ZEND_WIN32_KEEP_INLINE)
73 # undef inline
74 # define inline
75 #endif
76 
77 #ifdef LIBZEND_EXPORTS
78 #	define ZEND_API __declspec(dllexport)
79 #else
80 #	define ZEND_API __declspec(dllimport)
81 #endif
82 
83 #define ZEND_DLEXPORT		__declspec(dllexport)
84 #define ZEND_DLIMPORT		__declspec(dllimport)
85 
86 /* 0x00200000L is MB_SERVICE_NOTIFICATION, which is only supported under Windows NT
87  * (and requires _WIN32_WINNT to be defined, which prevents the resulting executable
88  * from running under Windows 9x
89  * Windows 9x should silently ignore it, so it's being used here directly
90  */
91 #ifndef MB_SERVICE_NOTIFICATION
92 #define	MB_SERVICE_NOTIFICATION		0x00200000L
93 #endif
94 
95 #define ZEND_SERVICE_MB_STYLE		(MB_TOPMOST|MB_SERVICE_NOTIFICATION)
96 
97 #endif /* ZEND_CONFIG_W32_H */
98 
99 /*
100  * Local variables:
101  * tab-width: 4
102  * c-basic-offset: 4
103  * indent-tabs-mode: t
104  * End:
105  */
106