xref: /aosp_15_r20/external/virglrenderer/src/mesa/pipe/p_config.h (revision bbecb9d118dfdb95f99bd754f8fa9be01f189df3)
1*bbecb9d1SAndroid Build Coastguard Worker /**************************************************************************
2*bbecb9d1SAndroid Build Coastguard Worker  *
3*bbecb9d1SAndroid Build Coastguard Worker  * Copyright 2008 VMware, Inc.
4*bbecb9d1SAndroid Build Coastguard Worker  * All Rights Reserved.
5*bbecb9d1SAndroid Build Coastguard Worker  *
6*bbecb9d1SAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a
7*bbecb9d1SAndroid Build Coastguard Worker  * copy of this software and associated documentation files (the
8*bbecb9d1SAndroid Build Coastguard Worker  * "Software"), to deal in the Software without restriction, including
9*bbecb9d1SAndroid Build Coastguard Worker  * without limitation the rights to use, copy, modify, merge, publish,
10*bbecb9d1SAndroid Build Coastguard Worker  * distribute, sub license, and/or sell copies of the Software, and to
11*bbecb9d1SAndroid Build Coastguard Worker  * permit persons to whom the Software is furnished to do so, subject to
12*bbecb9d1SAndroid Build Coastguard Worker  * the following conditions:
13*bbecb9d1SAndroid Build Coastguard Worker  *
14*bbecb9d1SAndroid Build Coastguard Worker  * The above copyright notice and this permission notice (including the
15*bbecb9d1SAndroid Build Coastguard Worker  * next paragraph) shall be included in all copies or substantial portions
16*bbecb9d1SAndroid Build Coastguard Worker  * of the Software.
17*bbecb9d1SAndroid Build Coastguard Worker  *
18*bbecb9d1SAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19*bbecb9d1SAndroid Build Coastguard Worker  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20*bbecb9d1SAndroid Build Coastguard Worker  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21*bbecb9d1SAndroid Build Coastguard Worker  * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
22*bbecb9d1SAndroid Build Coastguard Worker  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23*bbecb9d1SAndroid Build Coastguard Worker  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24*bbecb9d1SAndroid Build Coastguard Worker  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25*bbecb9d1SAndroid Build Coastguard Worker  *
26*bbecb9d1SAndroid Build Coastguard Worker  **************************************************************************/
27*bbecb9d1SAndroid Build Coastguard Worker 
28*bbecb9d1SAndroid Build Coastguard Worker /**
29*bbecb9d1SAndroid Build Coastguard Worker  * @file
30*bbecb9d1SAndroid Build Coastguard Worker  * Gallium configuration defines.
31*bbecb9d1SAndroid Build Coastguard Worker  *
32*bbecb9d1SAndroid Build Coastguard Worker  * This header file sets several defines based on the compiler, processor
33*bbecb9d1SAndroid Build Coastguard Worker  * architecture, and operating system being used. These defines should be used
34*bbecb9d1SAndroid Build Coastguard Worker  * throughout the code to facilitate porting to new platforms. It is likely that
35*bbecb9d1SAndroid Build Coastguard Worker  * this file is auto-generated by an autoconf-like tool at some point, as some
36*bbecb9d1SAndroid Build Coastguard Worker  * things cannot be determined by pre-defined environment alone.
37*bbecb9d1SAndroid Build Coastguard Worker  *
38*bbecb9d1SAndroid Build Coastguard Worker  * See also:
39*bbecb9d1SAndroid Build Coastguard Worker  * - http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
40*bbecb9d1SAndroid Build Coastguard Worker  * - echo | gcc -dM -E - | sort
41*bbecb9d1SAndroid Build Coastguard Worker  * - http://msdn.microsoft.com/en-us/library/b0084kay.aspx
42*bbecb9d1SAndroid Build Coastguard Worker  *
43*bbecb9d1SAndroid Build Coastguard Worker  * @author José Fonseca <[email protected]>
44*bbecb9d1SAndroid Build Coastguard Worker  */
45*bbecb9d1SAndroid Build Coastguard Worker 
46*bbecb9d1SAndroid Build Coastguard Worker #ifndef P_CONFIG_H_
47*bbecb9d1SAndroid Build Coastguard Worker #define P_CONFIG_H_
48*bbecb9d1SAndroid Build Coastguard Worker 
49*bbecb9d1SAndroid Build Coastguard Worker #include <limits.h>
50*bbecb9d1SAndroid Build Coastguard Worker /*
51*bbecb9d1SAndroid Build Coastguard Worker  * Compiler
52*bbecb9d1SAndroid Build Coastguard Worker  */
53*bbecb9d1SAndroid Build Coastguard Worker 
54*bbecb9d1SAndroid Build Coastguard Worker #if defined(__GNUC__)
55*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_CC_GCC
56*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_CC_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
57*bbecb9d1SAndroid Build Coastguard Worker #endif
58*bbecb9d1SAndroid Build Coastguard Worker 
59*bbecb9d1SAndroid Build Coastguard Worker /*
60*bbecb9d1SAndroid Build Coastguard Worker  * Meaning of _MSC_VER value:
61*bbecb9d1SAndroid Build Coastguard Worker  * - 1800: Visual Studio 2013
62*bbecb9d1SAndroid Build Coastguard Worker  * - 1700: Visual Studio 2012
63*bbecb9d1SAndroid Build Coastguard Worker  * - 1600: Visual Studio 2010
64*bbecb9d1SAndroid Build Coastguard Worker  * - 1500: Visual Studio 2008
65*bbecb9d1SAndroid Build Coastguard Worker  * - 1400: Visual C++ 2005
66*bbecb9d1SAndroid Build Coastguard Worker  * - 1310: Visual C++ .NET 2003
67*bbecb9d1SAndroid Build Coastguard Worker  * - 1300: Visual C++ .NET 2002
68*bbecb9d1SAndroid Build Coastguard Worker  *
69*bbecb9d1SAndroid Build Coastguard Worker  * __MSC__ seems to be an old macro -- it is not pre-defined on recent MSVC
70*bbecb9d1SAndroid Build Coastguard Worker  * versions.
71*bbecb9d1SAndroid Build Coastguard Worker  */
72*bbecb9d1SAndroid Build Coastguard Worker #if defined(_MSC_VER) || defined(__MSC__)
73*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_CC_MSVC
74*bbecb9d1SAndroid Build Coastguard Worker #endif
75*bbecb9d1SAndroid Build Coastguard Worker 
76*bbecb9d1SAndroid Build Coastguard Worker #if defined(__ICL)
77*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_CC_ICL
78*bbecb9d1SAndroid Build Coastguard Worker #endif
79*bbecb9d1SAndroid Build Coastguard Worker 
80*bbecb9d1SAndroid Build Coastguard Worker 
81*bbecb9d1SAndroid Build Coastguard Worker /*
82*bbecb9d1SAndroid Build Coastguard Worker  * Processor architecture
83*bbecb9d1SAndroid Build Coastguard Worker  *
84*bbecb9d1SAndroid Build Coastguard Worker  * (virglrenderer) This is detected by meson.
85*bbecb9d1SAndroid Build Coastguard Worker  */
86*bbecb9d1SAndroid Build Coastguard Worker 
87*bbecb9d1SAndroid Build Coastguard Worker #if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
88*bbecb9d1SAndroid Build Coastguard Worker #if defined(PIPE_CC_GCC) && !defined(__SSE2__)
89*bbecb9d1SAndroid Build Coastguard Worker /* #warning SSE2 support requires -msse -msse2 compiler options */
90*bbecb9d1SAndroid Build Coastguard Worker #else
91*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_ARCH_SSE
92*bbecb9d1SAndroid Build Coastguard Worker #endif
93*bbecb9d1SAndroid Build Coastguard Worker #if defined(PIPE_CC_GCC) && (__GNUC__ * 100 + __GNUC_MINOR__) < 409 && !defined(__SSSE3__)
94*bbecb9d1SAndroid Build Coastguard Worker /* #warning SSE3 support requires -msse3 compiler options before GCC 4.9 */
95*bbecb9d1SAndroid Build Coastguard Worker #else
96*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_ARCH_SSSE3
97*bbecb9d1SAndroid Build Coastguard Worker #endif
98*bbecb9d1SAndroid Build Coastguard Worker #endif
99*bbecb9d1SAndroid Build Coastguard Worker 
100*bbecb9d1SAndroid Build Coastguard Worker /*
101*bbecb9d1SAndroid Build Coastguard Worker  * Endian detection.
102*bbecb9d1SAndroid Build Coastguard Worker  */
103*bbecb9d1SAndroid Build Coastguard Worker 
104*bbecb9d1SAndroid Build Coastguard Worker #include "util/u_endian.h"
105*bbecb9d1SAndroid Build Coastguard Worker 
106*bbecb9d1SAndroid Build Coastguard Worker /*
107*bbecb9d1SAndroid Build Coastguard Worker  * Auto-detect the operating system family.
108*bbecb9d1SAndroid Build Coastguard Worker  */
109*bbecb9d1SAndroid Build Coastguard Worker #include "util/detect_os.h"
110*bbecb9d1SAndroid Build Coastguard Worker 
111*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_LINUX
112*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_LINUX
113*bbecb9d1SAndroid Build Coastguard Worker #endif
114*bbecb9d1SAndroid Build Coastguard Worker 
115*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_UNIX
116*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_UNIX
117*bbecb9d1SAndroid Build Coastguard Worker #endif
118*bbecb9d1SAndroid Build Coastguard Worker 
119*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_ANDROID
120*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_ANDROID
121*bbecb9d1SAndroid Build Coastguard Worker #endif
122*bbecb9d1SAndroid Build Coastguard Worker 
123*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_FREEBSD
124*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_FREEBSD
125*bbecb9d1SAndroid Build Coastguard Worker #endif
126*bbecb9d1SAndroid Build Coastguard Worker 
127*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_BSD
128*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_BSD
129*bbecb9d1SAndroid Build Coastguard Worker #endif
130*bbecb9d1SAndroid Build Coastguard Worker 
131*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_OPENBSD
132*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_OPENBSD
133*bbecb9d1SAndroid Build Coastguard Worker #endif
134*bbecb9d1SAndroid Build Coastguard Worker 
135*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_NETBSD
136*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_NETBSD
137*bbecb9d1SAndroid Build Coastguard Worker #endif
138*bbecb9d1SAndroid Build Coastguard Worker 
139*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_DRAGONFLY
140*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_DRAGONFLY
141*bbecb9d1SAndroid Build Coastguard Worker #endif
142*bbecb9d1SAndroid Build Coastguard Worker 
143*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_HURD
144*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_HURD
145*bbecb9d1SAndroid Build Coastguard Worker #endif
146*bbecb9d1SAndroid Build Coastguard Worker 
147*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_SOLARIS
148*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_SOLARIS
149*bbecb9d1SAndroid Build Coastguard Worker #endif
150*bbecb9d1SAndroid Build Coastguard Worker 
151*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_APPLE
152*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_APPLE
153*bbecb9d1SAndroid Build Coastguard Worker #endif
154*bbecb9d1SAndroid Build Coastguard Worker 
155*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_WINDOWS
156*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_WINDOWS
157*bbecb9d1SAndroid Build Coastguard Worker #endif
158*bbecb9d1SAndroid Build Coastguard Worker 
159*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_HAIKU
160*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_HAIKU
161*bbecb9d1SAndroid Build Coastguard Worker #endif
162*bbecb9d1SAndroid Build Coastguard Worker 
163*bbecb9d1SAndroid Build Coastguard Worker #if DETECT_OS_CYGWIN
164*bbecb9d1SAndroid Build Coastguard Worker #define PIPE_OS_CYGWIN
165*bbecb9d1SAndroid Build Coastguard Worker #endif
166*bbecb9d1SAndroid Build Coastguard Worker 
167*bbecb9d1SAndroid Build Coastguard Worker #endif /* P_CONFIG_H_ */
168