Dmitry V. Levin
66b37bb737
* .gitlab-ci.yml: New file. * travis-build.sh: Print $CC -print-multi-lib. Print config.log in case of configure failure. * travis-install.sh: Check sudo availability. Install autoconf, automake, file, gawk, gcc-multilib, git, gzip, make, and xz-utils for all targets. (musl-gcc): Install ca-certificates.
77 lines
1.5 KiB
Bash
Executable File
77 lines
1.5 KiB
Bash
Executable File
#!/bin/sh -ex
|
|
|
|
type sudo >/dev/null 2>&1 && sudo=sudo || sudo=
|
|
common_packages='autoconf automake file gawk gcc-multilib git gzip make xz-utils'
|
|
|
|
updated=
|
|
apt_get_install()
|
|
{
|
|
[ -n "$updated" ] || {
|
|
$sudo apt-get -qq update
|
|
updated=1
|
|
}
|
|
$sudo apt-get -qq --no-install-suggests --no-install-recommends \
|
|
install -y "$@"
|
|
}
|
|
|
|
case "$KHEADERS" in
|
|
*/*)
|
|
git clone --depth=1 https://github.com/"$KHEADERS" kernel
|
|
$sudo make -C kernel headers_install INSTALL_HDR_PATH=/opt/kernel
|
|
$sudo rm -rf kernel
|
|
KHEADERS_INC=/opt/kernel/include
|
|
;;
|
|
*)
|
|
KHEADERS_INC=/usr/include
|
|
;;
|
|
esac
|
|
|
|
case "$CC" in
|
|
gcc)
|
|
apt_get_install $common_packages
|
|
;;
|
|
gcc-*)
|
|
$sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
|
apt_get_install $common_packages "$CC"-multilib
|
|
;;
|
|
clang*)
|
|
apt_get_install $common_packages "$CC"
|
|
;;
|
|
musl-gcc)
|
|
apt_get_install $common_packages ca-certificates
|
|
git clone --depth=1 https://github.com/strace/musl
|
|
cd musl
|
|
CC=gcc
|
|
build=
|
|
case "${TARGET-}" in
|
|
x32)
|
|
CC="$CC -mx32"
|
|
;;
|
|
x86)
|
|
CC="$CC -m32"
|
|
build='--build=i686-pc-linux-gnu --target=i686-pc-linux-gnu'
|
|
;;
|
|
esac
|
|
./configure --prefix=/opt/musl --exec-prefix=/usr ${build}
|
|
make
|
|
$sudo make install
|
|
cd -
|
|
rm -rf musl
|
|
$sudo ln -s \
|
|
$KHEADERS_INC/asm* \
|
|
$KHEADERS_INC/linux \
|
|
$KHEADERS_INC/mtd \
|
|
/opt/musl/include/
|
|
;;
|
|
esac
|
|
|
|
case "${CHECK-}" in
|
|
coverage)
|
|
apt_get_install lcov
|
|
pip install --user codecov
|
|
;;
|
|
valgrind)
|
|
apt_get_install valgrind
|
|
;;
|
|
esac
|