home *** CD-ROM | disk | FTP | other *** search
- /*
- * _mingw.h
- *
- * Mingw specific macros included by ALL include files.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- * Created by Mumit Khan <khan@xraylith.wisc.edu>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
- #ifndef __MINGW_H
- #define __MINGW_H
-
- /* These are defined by the user (or the compiler)
- to specify how identifiers are imported from a DLL.
-
- __DECLSPEC_SUPPORTED Defined if dllimport attribute is supported.
- __MINGW_IMPORT The attribute definition to specify imported
- variables/functions.
- _CRTIMP As above. For MS compatibility.
- __MINGW32_VERSION Runtime version.
- __MINGW32_MAJOR_VERSION Runtime major version.
- __MINGW32_MINOR_VERSION Runtime minor version.
- __MINGW32_BUILD_DATE Runtime build date.
-
- Other macros:
-
- __int64 define to be long long. Using a typedef doesn't
- work for "unsigned __int64"
-
- All headers should include this first, and then use __DECLSPEC_SUPPORTED
- to choose between the old ``__imp__name'' style or __MINGW_IMPORT
- style declarations. */
-
- /* Try to avoid problems with outdated checks for GCC __attribute__ support. */
- #undef __attribute__
-
- #ifndef __GNUC__
- # ifndef __MINGW_IMPORT
- # define __MINGW_IMPORT __declspec(dllimport)
- # endif
- # ifndef _CRTIMP
- # define _CRTIMP __declspec(dllimport)
- # endif
- # define __DECLSPEC_SUPPORTED
- # define __attribute__(x) /* nothing */
- #else /* __GNUC__ */
- # ifdef __declspec
- # ifndef __MINGW_IMPORT
- /* Note the extern. This is needed to work around GCC's
- limitations in handling dllimport attribute. */
- # define __MINGW_IMPORT extern __attribute__ ((dllimport))
- # endif
- # ifndef _CRTIMP
- # ifdef __USE_CRTIMP
- # define _CRTIMP __attribute__ ((dllimport))
- # else
- # define _CRTIMP
- # endif
- # endif
- # define __DECLSPEC_SUPPORTED
- # else /* __declspec */
- # undef __DECLSPEC_SUPPORTED
- # undef __MINGW_IMPORT
- # ifndef _CRTIMP
- # define _CRTIMP
- # endif
- # endif /* __declspec */
- # ifndef __cdecl
- # define __cdecl __attribute__ ((__cdecl__))
- # endif
- # ifndef __stdcall
- # define __stdcall __attribute__ ((__stdcall__))
- # endif
- # ifndef __int64
- # define __int64 long long
- # endif
- # ifndef __int32
- # define __int32 long
- # endif
- # ifndef __int16
- # define __int16 short
- # endif
- # ifndef __int8
- # define __int8 char
- # endif
- # ifndef __small
- # define __small char
- # endif
- # ifndef __hyper
- # define __hyper long long
- # endif
- #endif /* __GNUC__ */
-
- #ifdef __cplusplus
- #define __CRT_INLINE inline
- #else
- #define __CRT_INLINE extern __inline__
- #endif
-
- #ifdef __cplusplus
- # define __UNUSED_PARAM(x)
- #else
- # ifdef __GNUC__
- # define __UNUSED_PARAM(x) x __attribute__ ((__unused__))
- # else
- # define __UNUSED_PARAM(x) x
- # endif
- #endif
-
- #ifdef __GNUC__
- #define __MINGW_ATTRIB_NORETURN __attribute__ ((__noreturn__))
- #define __MINGW_ATTRIB_CONST __attribute__ ((__const__))
- #else
- #define __MINGW_ATTRIB_NORETURN
- #define __MINGW_ATTRIB_CONST
- #endif
-
- #if ( __GNUC__ >= 3)
- #define __MINGW_ATTRIB_MALLOC __attribute__ ((__malloc__))
- #define __MINGW_ATTRIB_PURE __attribute__ ((__pure__))
- #else
- #define __MINGW_ATTRIB_MALLOC
- #define __MINGW_ATTRIB_PURE
- #endif
-
- #ifndef __MSVCRT_VERSION__
- /* High byte is the major version, low byte is the minor. */
- # define __MSVCRT_VERSION__ 0x0600
- #endif
-
- #define __MINGW32_VERSION 3.7
- #define __MINGW32_MAJOR_VERSION 3
- #define __MINGW32_MINOR_VERSION 7
-
- #endif /* __MINGW_H */
-