-
Notifications
You must be signed in to change notification settings - Fork 6
/
autogen.sh
executable file
·71 lines (58 loc) · 1.1 KB
/
autogen.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
set -euo pipefail
autotools() {
autoreconf -i -Wall
}
clean() {
git clean -fdx
autotools
}
scan_build_run() {
scan-build --use-analyzer=/usr/bin/clang "${@}"
}
scan_build() {
clean
scan_build_run ./configure "${@}"
scan_build_run make
}
static_analysis() {
coverity-submit
scan_build "${@}"
}
full() {
static_analysis "${@}"
clean
./configure "${@}"
make
make distcheck
}
run_action() {
local action="${1}"
shift
local configure_args=(
--prefix=/usr
--sysconfdir=/etc
)
case "${action}" in
configure-full|cf)
./configure "${configure_args[@]}" "${@}"
;;
coverity|cov)
coverity-submit
;;
scan-build|sb)
scan_build "${configure_args[@]}" "${@}"
;;
static-analysis|sa)
static_analysis "${configure_args[@]}" "${@}"
;;
full)
full "${configure_args[@]}" "${@}"
;;
esac
}
main() {
autotools
[[ "${#}" == 0 ]] || run_action "${@}"
}
main "${@}"