Resync (forgot to add new files?)
[CMakeLuaTailorHgBridge.git] / CMakeLua / Source / kwsys / CPU.h.in
blobcabc398d03b80b8fff5bbd6ae68f0360d36a0f25
1 /*=========================================================================
3 Program: KWSys - Kitware System Library
4 Module: $RCSfile: CPU.h.in,v $
6 Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
7 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the above copyright notices for more information.
13 =========================================================================*/
14 #ifndef @KWSYS_NAMESPACE@_CPU_h
15 #define @KWSYS_NAMESPACE@_CPU_h
17 #include <@KWSYS_NAMESPACE@/Configure.h>
19 /* Identify possible endian cases. The macro
20 @KWSYS_NAMESPACE@_CPU_ENDIAN_ID will be defined to one of these, or
21 0 if unknown. */
22 #define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG 4321
23 #define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE 1234
25 /* Apple always defines one of these. */
26 #if defined(__LITTLE_ENDIAN__)
27 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
28 #elif defined(__BIG_ENDIAN__)
29 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
31 /* Alpha */
32 #elif defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)
33 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
35 /* Intel x86 */
36 #elif defined(__i386) || defined(__i386__) || defined(_M_IX86)
37 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
38 #elif defined(_X86_) || defined(__THW_INTEL__) || defined(__I86__)
39 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
40 #elif defined(__MWERKS__) && defined(__INTEL__)
41 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
43 /* Intel x86-64 */
44 #elif defined(__x86_64) || defined(__x86_64__) || defined(_M_X64)
45 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
46 #elif defined(__amd64) || defined(__amd64__)
47 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
49 /* Intel Architecture-64 (Itanium) */
50 #elif defined(__ia64) || defined(__ia64__)
51 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
52 #elif defined(_IA64) || defined(__IA64__) || defined(_M_IA64)
53 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
55 /* PowerPC */
56 #elif defined(__powerpc) || defined(__powerpc__)
57 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
58 #elif defined(__ppc) || defined(__ppc__) || defined(__POWERPC__)
59 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
61 /* SPARC */
62 #elif defined(__sparc) || defined(__sparc__)
63 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
65 /* HP/PA RISC */
66 #elif defined(__hppa) || defined(__hppa__)
67 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
69 /* Motorola 68k */
70 #elif defined(__m68k__) || defined(M68000)
71 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
73 /* MIPS */
74 #elif defined(__mips) || defined(__mips__) || defined(__MIPS__)
75 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
77 /* RS/6000 */
78 #elif defined(__THW_RS600) || defined(_IBMR2) || defined(_POWER)
79 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
80 #elif defined(_ARCH_PWR) || defined(_ARCH_PWR2)
81 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
83 /* System/370 */
84 #elif defined(__370__) || defined(__THW_370__)
85 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
87 /* System/390 */
88 #elif defined(__s390__) || defined(__s390x__)
89 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
91 /* z/Architecture */
92 #elif defined(__SYSC_ZARCH__)
93 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
95 /* Unknown CPU */
96 #else
97 # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID 0
98 # if !defined(@KWSYS_NAMESPACE@_CPU_UNKNOWN_OKAY)
99 # error "The target CPU architecture is not known."
100 # endif
101 #endif
103 /* If building a C or C++ file in kwsys itself, give the source file
104 access to the macros without a configured namespace. */
105 #if defined(KWSYS_NAMESPACE)
106 # define KWSYS_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID
107 # define KWSYS_CPU_ENDIAN_ID_BIG @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
108 # define KWSYS_CPU_ENDIAN_ID_LITTLE @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
109 #endif
111 #endif