8 CPP_COMPILERS="clang++ g++ CC" |
8 CPP_COMPILERS="clang++ g++ CC" |
9 else |
9 else |
10 C_COMPILERS="gcc clang suncc cc" |
10 C_COMPILERS="gcc clang suncc cc" |
11 CPP_COMPILERS="g++ clang++ sunCC CC" |
11 CPP_COMPILERS="g++ clang++ sunCC CC" |
12 fi |
12 fi |
|
13 unset TOOLCHAIN |
13 unset TOOLCHAIN_NAME |
14 unset TOOLCHAIN_NAME |
14 unset TOOLCHAIN_CC |
15 unset TOOLCHAIN_CC |
15 unset TOOLCHAIN_CXX |
16 unset TOOLCHAIN_CXX |
16 |
17 |
17 check_c_compiler() |
18 check_c_compiler() |
18 { |
19 { |
19 cat > "$TEMP_DIR/test.c" << __EOF__ |
20 cat > "$TEMP_DIR/test.c" << __EOF__ |
20 /* test file */ |
21 /* test file */ |
21 #include <stdio.h> |
22 #include <stdio.h> |
22 int main(int argc, char **argv) { |
23 int main(int argc, char **argv) { |
23 #if defined(__clang__) |
24 #if defined(_MSC_VER) |
24 printf("clang\n"); |
25 printf("msc\n"); |
|
26 #elif defined(__clang__) |
|
27 printf("clang gnuc\n"); |
25 #elif defined(__GNUC__) |
28 #elif defined(__GNUC__) |
26 printf("gcc\n"); |
29 printf("gcc gnuc\n"); |
27 #elif defined(__sun) |
30 #elif defined(__sun) |
28 printf("suncc\n"); |
31 printf("suncc\n"); |
29 #else |
32 #else |
30 printf("unknown\n"); |
33 printf("unknown\n"); |
31 #endif |
34 #endif |
40 { |
43 { |
41 cat > "$TEMP_DIR/test.cpp" << __EOF__ |
44 cat > "$TEMP_DIR/test.cpp" << __EOF__ |
42 /* test file */ |
45 /* test file */ |
43 #include <iostream> |
46 #include <iostream> |
44 int main(int argc, char **argv) { |
47 int main(int argc, char **argv) { |
45 #if defined(__clang__) |
48 #if defined(_MSC_VER) |
46 std::cout << "clang" << std::endl; |
49 std::cout << "msc" << std::endl; |
|
50 #elif defined(__clang__) |
|
51 std::cout << "clang gnuc" << std::endl; |
47 #elif defined(__GNUC__) |
52 #elif defined(__GNUC__) |
48 std::cout << "gcc" << std::endl; |
53 std::cout << "gcc gnuc" << std::endl; |
49 #elif defined(__sun) |
54 #elif defined(__sun) |
50 std::cout << "suncc" << std::endl; |
55 std::cout << "suncc" << std::endl; |
51 #else |
56 #else |
52 std::cout << "cc" << std::endl; |
57 std::cout << "cc" << std::endl; |
53 #endif |
58 #endif |
115 fi |
120 fi |
116 printf "detect C compiler... " |
121 printf "detect C compiler... " |
117 if [ -n "$CC" ]; then |
122 if [ -n "$CC" ]; then |
118 if check_c_compiler "$CC"; then |
123 if check_c_compiler "$CC"; then |
119 TOOLCHAIN_CC=$CC |
124 TOOLCHAIN_CC=$CC |
120 TOOLCHAIN_NAME=`"$TEMP_DIR/checkcc"` |
125 TOOLCHAIN=`"$TEMP_DIR/checkcc"` |
|
126 TOOLCHAIN_NAME=`echo "$TOOLCHAIN" | cut -f1 -d' ' -` |
121 echo "$CC" |
127 echo "$CC" |
122 return 0 |
128 return 0 |
123 else |
129 else |
124 echo "$CC is not a working C compiler" |
130 echo "$CC is not a working C compiler" |
125 return 1 |
131 return 1 |
147 printf "detect C++ compiler... " |
154 printf "detect C++ compiler... " |
148 |
155 |
149 if [ -n "$CXX" ]; then |
156 if [ -n "$CXX" ]; then |
150 if check_cpp_compiler "$CXX"; then |
157 if check_cpp_compiler "$CXX"; then |
151 TOOLCHAIN_CXX=$CXX |
158 TOOLCHAIN_CXX=$CXX |
152 TOOLCHAIN_NAME=`"$TEMP_DIR/checkcc"` |
159 TOOLCHAIN=`"$TEMP_DIR/checkcc"` |
|
160 TOOLCHAIN_NAME=`echo "$TOOLCHAIN" | cut -f1 -d' ' -` |
153 echo "$CXX" |
161 echo "$CXX" |
154 return 0 |
162 return 0 |
155 else |
163 else |
156 echo "$CXX is not a working C++ compiler" |
164 echo "$CXX is not a working C++ compiler" |
157 return 1 |
165 return 1 |