remove \r
[extl.git] / extl / config / platform / unix / config.h
blob5d81e234fe994276ae02e3fc4ac80ca68868faa8
1 /* ///////////////////////////////////////////////////////////////////////
2 * File: config.h
4 * Created: 08.02.02
5 * Updated: 08.06.26
7 * Brief: Unix platform configuration
9 * [<Home>]
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
13 #ifndef EXTL_PLATFORM_UNIX_CONFIG_H
14 #define EXTL_PLATFORM_UNIX_CONFIG_H
16 #ifndef EXTL_PLATFORM_CONFIG_H
17 # error This file must be included of platform\config.h
18 #endif
20 /* ///////////////////////////////////////////////////////////////////////
21 * Compatibility
23 #ifndef EXTL_CONFIG_COMPILER_H
24 # error This file must be depended on compiler\config.h
25 #endif
27 #ifdef EXTL_UNIX_NO_SUPPORT
28 # undef EXTL_UNIX_NO_SUPPORT
29 #endif
31 #if defined(EXTL_PLATFORM_IS_UNIX)
33 # if defined(EXTL_COMPILER_IS_GCC)
34 # if __GNUC__ < 2 || \
35 ( __GNUC__ == 2 && \
36 __GNUC_MINOR__ < 95)
37 # define EXTL_UNIX_NO_SUPPORT
38 # endif
40 # elif defined(EXTL_COMPILER_IS_INTEL)
41 # if (__INTEL_COMPILER < 700)
42 # define EXTL_UNIX_NO_SUPPORT
43 # endif
45 # else
46 # error Currently only GNU C++, Intel C/C++ compilers are supported by the Unix.
47 # endif
49 #else
50 # error This file is supported by Unix platform.
51 #endif
53 /* ///////////////////////////////////////////////////////////////////////
54 * Architecture
56 #ifdef EXTL_UNIX_ARCH_IS_INTEL
57 # undef EXTL_UNIX_ARCH_IS_INTEL
58 #endif
59 #ifdef EXTL_UNIX_ARCH_IS_POWERPC
60 # undef EXTL_UNIX_ARCH_IS_POWERPC
61 #endif
62 #ifdef EXTL_UNIX_ARCH_IS_SPARC
63 # undef EXTL_UNIX_ARCH_IS_SPARC
64 #endif
65 #ifdef EXTL_UNIX_ARCH_IS_UNKNOWN
66 # undef EXTL_UNIX_ARCH_IS_UNKNOWN
67 #endif
69 #if defined(__i386__) || \
70 defined(__i386) || \
71 defined(_M_IX86)
72 # define EXTL_UNIX_ARCH_IS_INTEL
73 #elif defined(__ppc__) || \
74 defined(__ppc) || \
75 defined(__POWERPC__)
76 # define EXTL_UNIX_ARCH_IS_POWERPC
77 #elif defined(__sparc__)
78 # define EXTL_UNIX_ARCH_IS_SPARC
79 #else
80 # define EXTL_UNIX_ARCH_IS_UNKNOWN
81 #endif
83 /* ///////////////////////////////////////////////////////////////////////
84 * operating system aggreement
86 #ifdef EXTL_UNIX_OSFAMILY_IS_BSD
87 # undef EXTL_UNIX_OSFAMILY_IS_BSD
88 #endif
89 #ifdef EXTL_UNIX_OSFAMILY_IS_SVR4
90 # undef EXTL_UNIX_OSFAMILY_IS_SVR4
91 #endif
94 #if defined(__FreeBSD__) || \
95 defined(__NetBSD__) || \
96 defined(__OpenBSD__) || \
97 defined(__bsdi__) || \
98 defined(_SYSTYPE_BSD)
99 # define EXTL_UNIX_OSFAMILY_IS_BSD
100 #endif
102 #if defined(__sysv__) || \
103 defined(__SVR4) || \
104 defined(__svr4__) || \
105 defined(_SYSTYPE_SVR4)
106 # define EXTL_UNIX_OSFAMILY_IS_SVR4
107 #endif
109 /* ///////////////////////////////////////////////////////////////////////
110 * UNIX platform detecting
112 #ifdef EXTL_UNIX_PLATFORM_IS_APPLE
113 # undef EXTL_UNIX_PLATFORM_IS_APPLE
114 #endif
115 #ifdef EXTL_UNIX_PLATFORM_IS_AIX
116 # undef EXTL_UNIX_PLATFORM_IS_AIX
117 #endif
118 #ifdef EXTL_UNIX_PLATFORM_IS_FREEBSD
119 # undef EXTL_UNIX_PLATFORM_IS_FREEBSD
120 #endif
121 #ifdef EXTL_UNIX_PLATFORM_IS_HPUX
122 # undef EXTL_UNIX_PLATFORM_IS_HPUX
123 #endif
124 #ifdef EXTL_UNIX_PLATFORM_IS_LINUX
125 # undef EXTL_UNIX_PLATFORM_IS_LINUX
126 #endif
127 #ifdef EXTL_UNIX_PLATFORM_IS_MACOSX
128 # undef EXTL_UNIX_PLATFORM_IS_MACOSX
129 #endif
130 #ifdef EXTL_UNIX_PLATFORM_IS_NETBSD
131 # undef EXTL_UNIX_PLATFORM_IS_NETBSD
132 #endif
133 #ifdef EXTL_UNIX_PLATFORM_IS_OPENBSD
134 # undef EXTL_UNIX_PLATFORM_IS_OPENBSD
135 #endif
136 #ifdef EXTL_UNIX_PLATFORM_IS_SOLARIS
137 # undef EXTL_UNIX_PLATFORM_IS_SOLARIS
138 #endif
139 #ifdef EXTL_UNIX_PLATFORM_IS_FREEBSD
140 # undef EXTL_UNIX_PLATFORM_IS_FREEBSD
141 #endif
142 #ifdef EXTL_UNIX_PLATFORM_IS_UNKNOWN
143 # undef EXTL_UNIX_PLATFORM_IS_UNKNOWN
144 #endif
146 #if defined(__APPLE__) || \
147 defined(__MACOSX__)
148 # define EXTL_UNIX_PLATFORM_IS_APPLE
149 define EXTL_UNIX_PLATFORM_IS_MACOSX
150 #elif defined(_AIX)
151 # define EXTL_UNIX_PLATFORM_IS_AIX
152 #elif defined(__FreeBSD__)
153 # define EXTL_UNIX_PLATFORM_IS_FREEBSD
154 #elif defined(hpux) || \
155 defined(_hpux)
156 # define EXTL_UNIX_PLATFORM_IS_HPUX
157 #elif defined(__linux__) || \
158 defined(__linux) || \
159 defined(linux)
160 # define EXTL_UNIX_PLATFORM_IS_LINUX
161 #elif defined(__NetBSD__)
162 # define EXTL_UNIX_PLATFORM_IS_NETBSD
163 #elif defined(__OpenBSD__)
164 # define EXTL_UNIX_PLATFORM_IS_OPENBSD
165 #elif defined(sun) || \
166 defined(__sun)
167 # if defined(EXTL_UNIX_OSFAMILY_IS_SVR4)
168 # define EXTL_UNIX_PLATFORM_IS_SOLARIS
169 # else
170 # define EXTL_UNIX_PLATFORM_IS_SUNOS
171 # endif
172 #else
173 # define EXTL_UNIX_PLATFORM_IS_UNKNOWN
174 #endif
177 /* //////////////////////////////////////////////////////////////////// */
178 #endif /* EXTL_PLATFORM_UNIX_CONFIG_H */
179 /* //////////////////////////////////////////////////////////////////// */