Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/kyua/admin/travis-build.sh
39478 views
1
#! /bin/sh
2
# Copyright 2014 The Kyua Authors.
3
# All rights reserved.
4
#
5
# Redistribution and use in source and binary forms, with or without
6
# modification, are permitted provided that the following conditions are
7
# met:
8
#
9
# * Redistributions of source code must retain the above copyright
10
# notice, this list of conditions and the following disclaimer.
11
# * Redistributions in binary form must reproduce the above copyright
12
# notice, this list of conditions and the following disclaimer in the
13
# documentation and/or other materials provided with the distribution.
14
# * Neither the name of Google Inc. nor the names of its contributors
15
# may be used to endorse or promote products derived from this software
16
# without specific prior written permission.
17
#
18
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30
set -e -x
31
32
run_autoreconf() {
33
if [ -d /usr/local/share/aclocal ]; then
34
autoreconf -isv -I/usr/local/share/aclocal
35
else
36
autoreconf -isv
37
fi
38
}
39
40
do_apidocs() {
41
run_autoreconf || return 1
42
./configure --with-doxygen || return 1
43
make check-api-docs
44
}
45
46
do_distcheck() {
47
run_autoreconf || return 1
48
./configure || return 1
49
50
sudo sysctl -w "kernel.core_pattern=core.%p"
51
52
local archflags=
53
[ "${ARCH?}" != i386 ] || archflags=-m32
54
55
cat >kyua.conf <<EOF
56
syntax(2)
57
58
-- We do not know how many CPUs the test machine has. However, parallelizing
59
-- the execution of our tests to _any_ degree speeds up the time it takes to
60
-- complete a test run because many of our tests are blocking.
61
parallelism = 4
62
EOF
63
[ "${UNPRIVILEGED_USER:-no}" = no ] || \
64
echo "unprivileged_user = 'nobody'" >>kyua.conf
65
66
local f=
67
f="${f} CFLAGS='${archflags}'"
68
f="${f} CPPFLAGS='-I/usr/local/include'"
69
f="${f} CXXFLAGS='${archflags}'"
70
f="${f} LDFLAGS='-L/usr/local/lib -Wl,-R/usr/local/lib'"
71
f="${f} PKG_CONFIG_PATH='/usr/local/lib/pkgconfig'"
72
f="${f} KYUA_CONFIG_FILE_FOR_CHECK=$(pwd)/kyua.conf"
73
if [ "${AS_ROOT:-no}" = yes ]; then
74
sudo -H PATH="${PATH}" make distcheck DISTCHECK_CONFIGURE_FLAGS="${f}"
75
else
76
make distcheck DISTCHECK_CONFIGURE_FLAGS="${f}"
77
fi
78
}
79
80
do_style() {
81
run_autoreconf || return 1
82
mkdir build
83
cd build
84
../configure || return 1
85
make check-style
86
}
87
88
main() {
89
if [ -z "${DO}" ]; then
90
echo "DO must be defined" 1>&2
91
exit 1
92
fi
93
for step in ${DO}; do
94
"do_${DO}" || exit 1
95
done
96
}
97
98
main "${@}"
99
100