test/make/toolchain.sh

changeset 105
4b3e655339cb
parent 101
7f40964bf1e9
equal deleted inserted replaced
104:ea36fd802446 105:4b3e655339cb
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
127 else 133 else
128 for COMP in $C_COMPILERS 134 for COMP in $C_COMPILERS
129 do 135 do
130 if check_c_compiler "$COMP"; then 136 if check_c_compiler "$COMP"; then
131 TOOLCHAIN_CC=$COMP 137 TOOLCHAIN_CC=$COMP
132 TOOLCHAIN_NAME=`"$TEMP_DIR/checkcc"` 138 TOOLCHAIN=`"$TEMP_DIR/checkcc"`
139 TOOLCHAIN_NAME=`echo "$TOOLCHAIN" | cut -f1 -d' ' -`
133 echo "$COMP" 140 echo "$COMP"
134 return 0 141 return 0
135 fi 142 fi
136 done 143 done
137 echo "not found" 144 echo "not found"
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
159 else 167 else
160 for COMP in $CPP_COMPILERS 168 for COMP in $CPP_COMPILERS
161 do 169 do
162 if check_cpp_compiler "$COMP"; then 170 if check_cpp_compiler "$COMP"; then
163 TOOLCHAIN_CXX=$COMP 171 TOOLCHAIN_CXX=$COMP
164 TOOLCHAIN_NAME=`"$TEMP_DIR/checkcc"` 172 TOOLCHAIN=`"$TEMP_DIR/checkcc"`
173 TOOLCHAIN_NAME=`echo "$TOOLCHAIN" | cut -f1 -d' ' -`
165 echo "$COMP" 174 echo "$COMP"
166 return 0 175 return 0
167 fi 176 fi
168 done 177 done
169 echo "${TOOLCHAIN_CXX:-"not found"}" 178 echo "${TOOLCHAIN_CXX:-"not found"}"

mercurial