Tue, 16 Dec 2025 21:16:32 +0100
get latest commit infos
| 0 | 1 | #!/bin/sh |
| 2 | ||
|
2
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
3 | # some utility functions |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
4 | isplatform() |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
5 | { |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
6 | for p in $PLATFORM |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
7 | do |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
8 | if [ "$p" = "$1" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
9 | return 0 |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
10 | fi |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
11 | done |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
12 | return 1 |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
13 | } |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
14 | notisplatform() |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
15 | { |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
16 | for p in $PLATFORM |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
17 | do |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
18 | if [ "$p" = "$1" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
19 | return 1 |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
20 | fi |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
21 | done |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
22 | return 0 |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
23 | } |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
24 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
25 | # Simple uname based platform detection |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
26 | # $PLATFORM is used for platform dependent dependency selection |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
27 | OS=`uname -s` |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
28 | OS_VERSION=`uname -r` |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
29 | ARCH=`uname -m` |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
30 | printf "detect platform... " |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
31 | if [ "$OS" = "SunOS" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
32 | PLATFORM="solaris sunos unix svr4" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
33 | elif [ "$OS" = "Linux" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
34 | PLATFORM="linux unix" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
35 | elif [ "$OS" = "FreeBSD" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
36 | PLATFORM="freebsd bsd unix" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
37 | elif [ "$OS" = "OpenBSD" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
38 | PLATFORM="openbsd bsd unix" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
39 | elif [ "$OS" = "NetBSD" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
40 | PLATFORM="netbsd bsd unix" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
41 | elif [ "$OS" = "Darwin" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
42 | PLATFORM="macos osx bsd unix" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
43 | elif echo "$OS" | grep -i "MINGW" > /dev/null; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
44 | PLATFORM="windows mingw" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
45 | fi |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
46 | : ${PLATFORM:="unix"} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
47 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
48 | PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -` |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
49 | echo "$PLATFORM_NAME" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
50 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
51 | mkdir result |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
52 | result_dir=`pwd`/result |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
53 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
54 | configure_log=configure.log |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
55 | compile_log=compile.log |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
56 | check_log=check.log |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
57 | |
|
3
9273d04a4d89
download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
2
diff
changeset
|
58 | result_file="$result_dir/result.json" |
|
2
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
59 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
60 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
61 | echo "[" > $result_file |
|
1
05a8e80e577e
add buildenv remote build.sh execution
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
0
diff
changeset
|
62 | |
|
2
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
63 | # repo source is always expected to be in src/ |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
64 | cd src |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
65 | {{ $nbuild := len .Build }} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
66 | {{ range $i, $build := .Build}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
67 | # Build isplatform="{{ .IsPlatform }}" not="{{ .NotPlatform }}" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
68 | while true |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
69 | do |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
70 | log_dir=$result_dir/build{{$i}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
71 | mkdir -p $log_dir |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
72 | if [ $? -ne 0 ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
73 | echo "failed to create log dir $log_dir" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
74 | echo "abort" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
75 | exit 1 |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
76 | fi |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
77 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
78 | {{- if .IsPlatform}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
79 | if notisplatform "{{ $build.IsPlatform }}"; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
80 | break |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
81 | fi |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
82 | {{- end}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
83 | {{- range $build.NotList}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
84 | if isplatform "{{.}}"; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
85 | break |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
86 | fi |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
87 | {{- end}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
88 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
89 | # configure |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
90 | configure= |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
91 | {{- if $build.Configure}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
92 | {{ $build.Configure }} > $log_dir/$configure_log 2>&1 |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
93 | configure=$? |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
94 | {{- end}} |
| 0 | 95 | |
|
2
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
96 | # compile |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
97 | compile= |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
98 | {{- if $build.Compile}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
99 | {{ $build.Compile }} > $log_dir/$compile_log 2>&1 |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
100 | compile=$? |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
101 | {{- end}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
102 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
103 | # check |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
104 | check= |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
105 | {{- if $build.Check}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
106 | {{ $build.Check }} > $log_dir/$check_log 2>&1 |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
107 | check=$? |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
108 | {{- end}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
109 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
110 | # write result |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
111 | echo "write result to $result_file" |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
112 | echo "{ \"build\":\"{{$i}}\", " >> $result_file |
|
3
9273d04a4d89
download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
2
diff
changeset
|
113 | {{- if $build.Name}} |
|
9273d04a4d89
download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
2
diff
changeset
|
114 | echo " \"name\":\"{{$build.Name}}\"," >> $result_file |
|
9273d04a4d89
download result from buildenv and parse result.json
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
2
diff
changeset
|
115 | {{- end}} |
|
2
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
116 | if [ -n "$configure" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
117 | echo " \"configure\":\"$configure\"," >> $result_file |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
118 | fi |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
119 | if [ -n "compile" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
120 | echo " \"compile\":\"$compile\"," >> $result_file |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
121 | fi |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
122 | if [ -n "check" ]; then |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
123 | echo " \"check\":\"$check\"" >> $result_file |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
124 | fi |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
125 | {{- if eq $i (sub $nbuild 1) }} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
126 | echo '}' >> $result_file |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
127 | {{ else }} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
128 | echo '},' >> $result_file |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
129 | {{- end }} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
130 | break |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
131 | done |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
132 | # End Build |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
133 | {{ end}} |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
134 | |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
135 | echo "]" >> $result_file |
|
edeb8e8e02b6
implement build script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
136 |