make/toolchain.sh

Wed, 05 Jun 2024 19:50:44 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Wed, 05 Jun 2024 19:50:44 +0200
changeset 537
ad44e72fbf50
parent 515
2c3fe06a9210
permissions
-rw-r--r--

add extra nullptr check in the event loop to handle the case when the finish ptr is set to NULL after it was already scheduled

204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 #!/bin/sh
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 #
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 # toolchain detection
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 #
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
6 if isplatform "bsd" && notisplatform "openbsd"; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
7 C_COMPILERS="clang gcc cc"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
8 CPP_COMPILERS="clang++ g++ CC"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
9 else
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
10 C_COMPILERS="gcc clang suncc cc"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
11 CPP_COMPILERS="g++ clang++ sunCC CC"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
12 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
13 unset TOOLCHAIN
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 unset TOOLCHAIN_NAME
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
15 unset TOOLCHAIN_CC
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
16 unset TOOLCHAIN_CXX
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 check_c_compiler()
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 {
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
20 cat > "$TEMP_DIR/test.c" << __EOF__
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 /* test file */
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 #include <stdio.h>
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 int main(int argc, char **argv) {
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
24 #if defined(_MSC_VER)
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
25 printf("msc\n");
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
26 #elif defined(__clang__)
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
27 printf("clang gnuc\n");
260
4779a6fb4fbe fix freebsd build
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 209
diff changeset
28 #elif defined(__GNUC__)
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
29 printf("gcc gnuc\n");
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30 #elif defined(__sun)
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
31 printf("suncc\n");
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32 #else
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
33 printf("unknown\n");
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34 #endif
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
35 return 0;
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 }
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 __EOF__
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
38 rm -f "$TEMP_DIR/checkcc"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
39 $1 -o "$TEMP_DIR/checkcc" $CFLAGS $LDFLAGS "$TEMP_DIR/test.c" 2> /dev/null
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
40 }
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 check_cpp_compiler()
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43 {
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
44 cat > "$TEMP_DIR/test.cpp" << __EOF__
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45 /* test file */
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46 #include <iostream>
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 int main(int argc, char **argv) {
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
48 #if defined(_MSC_VER)
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
49 std::cout << "msc" << std::endl;
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
50 #elif defined(__clang__)
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
51 std::cout << "clang gnuc" << std::endl;
260
4779a6fb4fbe fix freebsd build
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 209
diff changeset
52 #elif defined(__GNUC__)
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
53 std::cout << "gcc gnuc" << std::endl;
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
54 #elif defined(__sun)
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
55 std::cout << "suncc" << std::endl;
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
56 #else
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
57 std::cout << "cc" << std::endl;
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
58 #endif
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
59 return 0;
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
60 }
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
61 __EOF__
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
62 rm -f "$TEMP_DIR/checkcc"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
63 $1 -o "$TEMP_DIR/checkcc" $CXXFLAGS $LDFLAGS "$TEMP_DIR/test.cpp" 2> /dev/null
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
64 }
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
65
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
66 create_libtest_source()
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
67 {
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
68 # $1: filename
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
69 # $2: optional include
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
70 cat > "$TEMP_DIR/$1" << __EOF__
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
71 /* libtest file */
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
72 int main(int argc, char **argv) {
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
73 return 0;
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
74 }
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
75 __EOF__
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
76 if [ -n "$2" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
77 echo "#include <$2>" >> "$TEMP_DIR/$1"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
78 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
79 }
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
80
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
81 check_c_lib()
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
82 {
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
83 # $1: libname
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
84 # $2: optional include
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
85 if [ -z "$TOOLCHAIN_CC" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
86 return 1
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
87 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
88 create_libtest_source "test.c" "$2"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
89 rm -f "$TEMP_DIR/checklib"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
90 $TOOLCHAIN_CC -o "$TEMP_DIR/checklib" $CFLAGS $LDFLAGS "-l$1" "$TEMP_DIR/test.c" 2> /dev/null
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
91 }
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
92
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
93 check_cpp_lib()
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
94 {
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
95 # $1: libname
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
96 # $2: optional include
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
97 if [ -z "$TOOLCHAIN_CXX" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
98 return 1
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
99 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
100 create_libtest_source "test.cpp" "$2"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
101 rm -f "$TEMP_DIR/checklib"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
102 $TOOLCHAIN_CXX -o "$TEMP_DIR/checklib" $CXXFLAGS $LDFLAGS "-l$1" "$TEMP_DIR/test.cpp" 2> /dev/null
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
103 }
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
104
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
105 check_lib()
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
106 {
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
107 # $1: libname
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
108 # $2: optional include
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
109 if [ -n "$TOOLCHAIN_CC" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
110 check_c_lib "$1" "$2"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
111 elif [ -n "$TOOLCHAIN_CXX" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
112 check_cpp_lib "$1" "$2"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
113 fi
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
114 }
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
115
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
116 detect_c_compiler()
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
117 {
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
118 if [ -n "$TOOLCHAIN_CC" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
119 return 0
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
120 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
121 printf "detect C compiler... "
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
122 if [ -n "$CC" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
123 if check_c_compiler "$CC"; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
124 TOOLCHAIN_CC=$CC
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
125 TOOLCHAIN=`"$TEMP_DIR/checkcc"`
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
126 TOOLCHAIN_NAME=`echo "$TOOLCHAIN" | cut -f1 -d' ' -`
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
127 echo "$CC"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
128 return 0
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
129 else
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
130 echo "$CC is not a working C compiler"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
131 return 1
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
132 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
133 else
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
134 for COMP in $C_COMPILERS
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
135 do
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
136 if check_c_compiler "$COMP"; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
137 TOOLCHAIN_CC=$COMP
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
138 TOOLCHAIN=`"$TEMP_DIR/checkcc"`
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
139 TOOLCHAIN_NAME=`echo "$TOOLCHAIN" | cut -f1 -d' ' -`
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
140 echo "$COMP"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
141 return 0
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
142 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
143 done
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
144 echo "not found"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
145 return 1
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
146 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
147 }
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
148
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
149 detect_cpp_compiler()
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
150 {
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
151 if [ -n "$TOOLCHAIN_CXX" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
152 return 0
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
153 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
154 printf "detect C++ compiler... "
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
155
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
156 if [ -n "$CXX" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
157 if check_cpp_compiler "$CXX"; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
158 TOOLCHAIN_CXX=$CXX
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
159 TOOLCHAIN=`"$TEMP_DIR/checkcc"`
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
160 TOOLCHAIN_NAME=`echo "$TOOLCHAIN" | cut -f1 -d' ' -`
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
161 echo "$CXX"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
162 return 0
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
163 else
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
164 echo "$CXX is not a working C++ compiler"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
165 return 1
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
166 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
167 else
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
168 for COMP in $CPP_COMPILERS
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
169 do
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
170 if check_cpp_compiler "$COMP"; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
171 TOOLCHAIN_CXX=$COMP
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
172 TOOLCHAIN=`"$TEMP_DIR/checkcc"`
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
173 TOOLCHAIN_NAME=`echo "$TOOLCHAIN" | cut -f1 -d' ' -`
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
174 echo "$COMP"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
175 return 0
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
176 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
177 done
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
178 echo "${TOOLCHAIN_CXX:-"not found"}"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
179 return 1
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
180 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
181 }
204
e870a7c8f223 replace old build system with uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
182
515
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
183 write_toolchain_defaults()
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
184 {
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
185 echo "# toolchain" >> "$1"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
186 if [ -n "$TOOLCHAIN_CC" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
187 echo "CC = ${TOOLCHAIN_CC}" >> "$1"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
188 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
189 if [ -n "$TOOLCHAIN_CXX" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
190 echo "CXX = ${TOOLCHAIN_CXX}" >> "$1"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
191 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
192 echo >> "$1"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
193 if [ -f "make/${TOOLCHAIN_NAME}.mk" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
194 cat "make/${TOOLCHAIN_NAME}.mk" >> "$1"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
195 elif [ -f "make/cc.mk" ]; then
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
196 cat "make/cc.mk" >> "$1"
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
197 else
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
198 echo "!!! WARNING !!! Default toolchain flags not found. Configuration might be incomplete."
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
199 fi
2c3fe06a9210 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 260
diff changeset
200 }

mercurial