blob: a0d6428fb0e953f669d276bdc956d1d598c148ad (
plain)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
#!/bin/bash
set -x
# Special build tools are here...
export PATH=$HOME/i/bin:$PATH
# This is a policy bound API key. It can only be used with
# https://github.com/libffi/rlgl-policy.git.
RLGL_KEY=0LIBFFI-0LIBFFI-0LIBFFI-0LIBFFI
if [ -z ${QEMU_CPU+x} ]; then
export SET_QEMU_CPU=
else
export SET_QEMU_CPU="-e QEMU_CPU=${QEMU_CPU}"
fi
export DOCKER=docker
function build_cfarm()
{
curl -u ${CFARM_AUTH} https://cfarm-test-libffi-libffi.apps.home.labdroid.net/test?host=${HOST}\&commit=${TRAVIS_COMMIT} | tee build.log
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo $(tail build.log | grep '^==LOGFILE==')
echo $(tail build.log | grep '^==LOGFILE==' | cut -b13-)
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
curl -u ${CFARM_AUTH} "$(tail build.log | grep '^==LOGFILE==' | cut -b13-)" > libffi.log
./rlgl l --key=${RLGL_KEY} https://rl.gl
ID=$(./rlgl start)
./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git libffi.log
exit $?
}
function build_linux()
{
./autogen.sh
./configure ${HOST+--host=$HOST} ${CONFIGURE_OPTIONS} || cat */config.log
make
make dist
DEJAGNU=$(pwd)/.ci/site.exp BOARDSDIR=$(pwd)/.ci runtest --version
DEJAGNU=$(pwd)/.ci/site.exp BOARDSDIR=$(pwd)/.ci make check RUNTESTFLAGS="-a $RUNTESTFLAGS"
./rlgl l --key=${RLGL_KEY} https://rl.gl
ID=$(./rlgl start)
./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
exit $?
}
function build_foreign_linux()
{
${DOCKER} run --rm -t -v $(pwd):/opt ${SET_QEMU_CPU} -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" $2 bash -c /opt/.ci/build-in-container.sh
./rlgl l --key=${RLGL_KEY} https://rl.gl
ID=$(./rlgl start)
./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
exit $?
}
function build_cross_linux()
{
${DOCKER} run --rm -t -v $(pwd):/opt ${SET_QEMU_CPU} -e HOST="${HOST}" -e CC="${HOST}-gcc-8 ${GCC_OPTIONS}" -e CXX="${HOST}-g++-8 ${GCC_OPTIONS}" -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" quay.io/moxielogic/cross-ci-build-container:latest bash -c /opt/.ci/build-in-container.sh
./rlgl l --key=${RLGL_KEY} https://rl.gl
ID=$(./rlgl start)
./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
exit $?
}
function build_cross()
{
${DOCKER} pull quay.io/moxielogic/libffi-ci-${HOST}
${DOCKER} run --rm -t -v $(pwd):/opt -e HOST="${HOST}" -e CC="${HOST}-gcc ${GCC_OPTIONS}" -e CXX="${HOST}-g++ ${GCC_OPTIONS}" -e RUNNER_WORKSPACE=/opt -e RUNTESTFLAGS="-vv ${RUNTESTFLAGS}" -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" quay.io/moxielogic/libffi-ci-${HOST} bash -c /opt/.ci/build-cross-in-container.sh
./rlgl l --key=${RLGL_KEY} https://rl.gl
ID=$(./rlgl start)
./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
exit $?
}
function build_ios()
{
which python
# export PYTHON_BIN=/usr/local/bin/python
./generate-darwin-source-and-headers.py --only-ios
xcodebuild -showsdks
xcodebuild -project libffi.xcodeproj -target "libffi-iOS" -configuration Release -sdk iphoneos11.4
exit $?
}
function build_macosx()
{
which python
# export PYTHON_BIN=/usr/local/bin/python
./generate-darwin-source-and-headers.py --only-osx
xcodebuild -showsdks
xcodebuild -project libffi.xcodeproj -target "libffi-Mac" -configuration Release -sdk macosx10.13
echo "Finished build"
exit $?
}
case "$HOST" in
arm-apple-darwin*)
./autogen.sh
build_ios
;;
x86_64-apple-darwin*)
./autogen.sh
build_macosx
;;
arm32v7-linux-gnu)
./autogen.sh
build_foreign_linux arm quay.io/moxielogic/arm32v7-ci-build-container:latest
;;
mips64el-linux-gnu | sparc64-linux-gnu)
build_cfarm
;;
bfin-elf )
./autogen.sh
GCC_OPTIONS=-msim build_cross
;;
m32r-elf )
./autogen.sh
build_cross
;;
or1k-elf )
./autogen.sh
build_cross
;;
powerpc-eabisim )
./autogen.sh
build_cross
;;
m68k-linux-gnu )
./autogen.sh
GCC_OPTIONS=-mcpu=547x build_cross_linux
;;
alpha-linux-gnu | sh4-linux-gnu )
./autogen.sh
build_cross_linux
;;
*)
./autogen.sh
build_linux
;;
esac
|