make/toolchain.sh

Sat, 11 Oct 2025 11:55:46 +0200

author
Mike Becker <universe@uap-core.de>
date
Sat, 11 Oct 2025 11:55:46 +0200
changeset 1422
8bfccb342895
parent 1331
caa66055b025
permissions
-rw-r--r--

changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers

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

mercurial