UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
portability.h
1 /* portability.h */
2 /* $Id: portability.h,v 2.3 2008/05/29 06:08:28 ibadm Exp $ */
3 #ifndef __portability_h
4 #define __portability_h
5 
12 #ifdef WIN32
13 
14 /*************************************************************
15  *
16  * Definitions for Win32 platform compilation (under VC++ 6.0)
17  *
18  *************************************************************/
19 
20 #pragma warning(disable:4115)
21 
22 #include <windows.h>
23 #include <io.h>
24 #include <direct.h>
25 #include <process.h>
26 #include <lmcons.h>
27 
28 #ifdef VB_SPECIAL
29 #include <oaidl.h>
30 #endif /* VB_SPECIAL */
31 
32 typedef int pid_t;
33 
34 /* case insensitive string compare */
35 #define strcasecmp stricmp
36 
37 /* see access() */
38 #define F_OK 00
39 #define W_OK 02
40 #define R_OK 04
41 
42 
43 /* The following ifdef block is the standard way of creating macros
44  which make exporting from a DLL simpler. All files within this DLL
45  are compiled with the UNIVERS_EXPORTS symbol defined on the command
46  line. this symbol should not be defined on any project that uses
47  this DLL. This way any other project whose source files include
48  this file see UNIVERS_API functions as being imported from a DLL,
49  wheras this DLL sees symbols defined with this macro as being
50  exported. */
51 #if defined(UNIVERS_EXPORTS)
52 #define UNIVERS_API __declspec(dllexport)
53 #else
54 #define UNIVERS_API __declspec(dllimport)
55 #endif
56 
57 #ifdef VB_SPECIAL
58 #define CALLSPEC __stdcall
59 #define STRLIST SAFEARRAY*
60 #else /* VB_SPECIAL */
61 #define CALLSPEC /* default compiler's call convension */
62 #define STRLIST char**
63 #endif /* VB_SPECIAL */
64 
65 #else
66 
67 /*************************************************************
68  *
69  * Definitions for *NIX platform compilation
70  *
71  *************************************************************/
72 
73 #define UNIVERS_API /* nothing */
74 #define CALLSPEC /* nothing */
75 #define STRLIST char**
76 
77 #endif /* WIN32 */
78 
79 #ifdef __GNUC__
80 
81 #if (__GNUC__ < 3)
82 #define NO_MUTEX
83 #endif /* GNU C earlier than 3.x */
84 
85 #endif /* GNU C specific */
86 
87 
88 #endif /* portability.h */