ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/platform.h
Revision: 3.15
Committed: Thu Dec 22 17:07:46 2016 UTC (7 years, 4 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R1
Changes since 3.14: +18 -1 lines
Log Message:
Added a bunch of #undef statements to avoid macro redefinition warnings

File Contents

# User Rev Content
1 greg 3.15 /* RCSid $Id: platform.h,v 3.14 2016/08/18 17:57:57 greg Exp $ */
2 schorsch 3.1 /*
3     * platform.h - header file for platform specific definitions
4     */
5     #ifndef _RAD_PLATFORM_H_
6     #define _RAD_PLATFORM_H_
7    
8 schorsch 3.12 #if defined(_WIN32) || defined(_WIN64)
9 schorsch 3.1
10 schorsch 3.7 #include <io.h> /* _setmode() and stuff from unistd.h */
11 schorsch 3.12 #include <stdio.h>
12 schorsch 3.7 typedef long off_t;
13 greg 3.15 #undef fdopen
14 schorsch 3.12 #define fdopen _fdopen
15 greg 3.15 #undef read
16 schorsch 3.12 #define read _read
17 greg 3.15 #undef open
18 schorsch 3.12 #define open _open
19 greg 3.15 #undef close
20 schorsch 3.12 #define close _close
21 greg 3.15 #undef write
22 schorsch 3.12 #define write _write
23 greg 3.15 #undef ftruncate
24 schorsch 3.12 #define ftruncate _chsize_s
25 greg 3.15 #undef unlink
26 schorsch 3.12 #define unlink _unlink
27 greg 3.15 #undef fileno
28 schorsch 3.12 #define fileno _fileno
29 greg 3.15 #undef snprintf
30 schorsch 3.10 #define snprintf _snprintf
31 greg 3.15 #undef vsnprintf
32 schorsch 3.12 #define vsnprintf _vsnprintf
33     /* XXX should we check first if size_t is 32 bit? */
34 greg 3.15 #undef fseeko
35 schorsch 3.12 #define fseeko _fseeki64
36 greg 3.15 #undef lseek
37 schorsch 3.12 #define lseek _lseek
38 greg 3.15 #undef access
39 schorsch 3.12 #define access _access
40 greg 3.15 #undef mktemp
41 schorsch 3.12 #define mktemp _mktemp
42    
43     #include <string.h>
44 greg 3.15 #undef strcasecmp
45 schorsch 3.12 #define strcasecmp _stricmp
46 greg 3.15 #undef strncasecmp
47 schorsch 3.12 #define strncasecmp _strnicmp
48 greg 3.15 #undef strdup
49 schorsch 3.12 #define strdup _strdup
50 schorsch 3.6
51 schorsch 3.7 #include <windows.h>
52 schorsch 3.12 /* really weird defines by Microsoft in <resource.h>
53     generating lots of name collisions in Radiance. */
54     #if defined(rad1)
55     #undef rad1
56     #undef rad2
57     #undef rad3
58     #undef rad4
59     #undef rad5
60     #undef rad6
61     #undef rad7
62     #undef rad8
63     #undef rad9
64     #endif
65 greg 3.13 #define sleep(s) Sleep((DWORD)((s)*1000))
66 schorsch 3.7
67 schorsch 3.6 #define NON_POSIX
68    
69     #include <sys/types.h>
70     #include <sys/stat.h>
71     #define RHAS_STAT
72     #define S_IFREG _S_IFREG
73     #define W_IFDIR _S_IFDIR
74    
75 schorsch 3.5 #include <fcntl.h> /* _O_BINARY, _O_TEXT */
76     #include <stdlib.h> /* _fmode */
77 greg 3.14 #define SET_DEFAULT_BINARY() (_fmode = _O_BINARY)
78     #define SET_DEFAULT_TEXT() (_fmode = _O_TEXT)
79 schorsch 3.12 #define SET_FILE_BINARY(fp) _setmode(_fileno(fp),_O_BINARY)
80 greg 3.14 #define SET_FILE_TEXT(fp) _setmode(_fileno(fp),_O_TEXT)
81 schorsch 3.5 #define SET_FD_BINARY(fd) _setmode(fd,_O_BINARY)
82 greg 3.14 #define SET_FD_TEXT(fd) _setmode(fd,_O_TEXT)
83 schorsch 3.12 #define putenv _putenv
84 schorsch 3.1
85 schorsch 3.12 #else /* _WIN32 || _WIN64 */
86 schorsch 3.1
87 schorsch 3.5 #ifdef AMIGA
88     #define NON_POSIX
89     #else
90     /* assumedly posix systems */
91 schorsch 3.9 #include <unistd.h>
92 schorsch 3.6 #define RHAS_STAT
93 schorsch 3.5 #define RHAS_FORK_EXEC
94     #endif
95    
96     /* everybody except Windows */
97    
98     /* NOPs */
99     #define SET_DEFAULT_BINARY()
100     #define SET_FILE_BINARY(fp)
101     #define SET_FD_BINARY(fd)
102 greg 3.14 #define SET_DEFAULT_TEXT()
103     #define SET_FILE_TEXT(fp)
104     #define SET_FD_TEXT(fd)
105 schorsch 3.1
106 schorsch 3.12 #endif /* _WIN32 || _WIN64 */
107 schorsch 3.1
108 schorsch 3.8 #ifdef __cplusplus
109     extern "C" {
110     #endif
111    
112     /* nothing to protect yet */
113 schorsch 3.2
114     #ifdef __cplusplus
115     }
116     #endif
117 schorsch 3.1 #endif /* _RAD_PLATFORM_H_ */
118