libUPnP  1.6.17
UpnpGlobal.h
Go to the documentation of this file.
00001 #ifndef UPNPGLOBAL_H
00002 #define UPNPGLOBAL_H
00003 
00010 #if defined MYLIB_LARGEFILE_SENSITIVE && _FILE_OFFSET_BITS+0 != 64
00011         #if defined __GNUC__
00012                 #warning libupnp requires largefile mode - use AC_SYS_LARGEFILE
00013         #else
00014                 #error  libupnp requires largefile mode - use AC_SYS_LARGEFILE
00015         #endif
00016 #endif
00017 
00018 #ifdef WIN32
00019         /*
00020          * EXPORT_SPEC
00021          */
00022         #ifdef UPNP_STATIC_LIB
00023                 #define EXPORT_SPEC
00024         #else /* UPNP_STATIC_LIB */
00025                 #ifdef LIBUPNP_EXPORTS
00026 
00028                         #define EXPORT_SPEC __declspec(dllexport)
00029                 #else /* LIBUPNP_EXPORTS */
00030                         #define EXPORT_SPEC __declspec(dllimport)
00031                 #endif /* LIBUPNP_EXPORTS */
00032         #endif /* UPNP_STATIC_LIB */
00033 
00034         /*
00035          * UPNP_INLINE
00036          * PRId64
00037          * PRIzd
00038          * PRIzu
00039          * PRIzx
00040          */
00041         #ifdef UPNP_USE_MSVCPP
00042                 /* define some things the M$ VC++ doesn't know */
00043                 #define UPNP_INLINE _inline
00044                 typedef __int64 int64_t;
00045                 #define PRId64 "I64d"
00046                 #define PRIzd "ld"
00047                 #define PRIzu "lu"
00048                 #define PRIzx "lx"
00049         #endif /* UPNP_USE_MSVCPP */
00050 
00051         #ifdef UPNP_USE_BCBPP
00052                 /* define some things Borland Builder doesn't know */
00053                 #define UPNP_INLINE inline
00054                 typedef __int64 int64_t;
00055                 #warning The Borland C compiler is probably broken on PRId64,
00056                 #warning please someone provide a proper fix here
00057                 #define PRId64 "I64d"
00058                 #define PRIzd "zd"
00059                 #define PRIzu "zu"
00060                 #define PRIzx "zx"
00061         #endif /* UPNP_USE_BCBPP */
00062 
00063         #ifdef __GNUC__
00064                 #define UPNP_INLINE inline
00065                 /* Note with PRIzu that in the case of Mingw32, it's the MS C
00066                  * runtime printf which ends up getting called, not the glibc
00067                  * printf, so it genuinely doesn't have "zu"
00068                  */
00069                 #define PRIzd "ld"
00070                 #define PRIzu "lu"
00071                 #define PRIzx "lx"
00072         #endif /* __GNUC__ */
00073 #else
00074 
00081         #define EXPORT_SPEC
00082 
00090         #ifdef __STRICT_ANSI__
00091                 #define UPNP_INLINE __inline__
00092         #else
00093                 #define UPNP_INLINE inline
00094         #endif
00095 
00101         /* #define PRId64 PRId64 */
00102 
00110         #define PRIzd "zd"
00111         #define PRIzu "zu"
00112         #define PRIzx "zx"
00113 #endif
00114 
00115 /*
00116  * Defining this macro here gives some interesting information about unused
00117  * functions in the code. Of course, this should never go uncommented on a
00118  * release.
00119  */
00120 /*#define inline*/
00121 
00122 #endif /* UPNPGLOBAL_H */