xref: /aosp_15_r20/external/libffi/.travis/build.sh (revision 1fd5a2e1d639cd1ddf29dd0c484c123bbd850c21)
1*1fd5a2e1SPrashanth Swaminathan#!/bin/bash
2*1fd5a2e1SPrashanth Swaminathan
3*1fd5a2e1SPrashanth Swaminathanset -x
4*1fd5a2e1SPrashanth Swaminathan
5*1fd5a2e1SPrashanth Swaminathanif [ -z ${QEMU_CPU+x} ]; then
6*1fd5a2e1SPrashanth Swaminathan    export SET_QEMU_CPU=
7*1fd5a2e1SPrashanth Swaminathanelse
8*1fd5a2e1SPrashanth Swaminathan    export SET_QEMU_CPU="-e QEMU_CPU=${QEMU_CPU}"
9*1fd5a2e1SPrashanth Swaminathanfi
10*1fd5a2e1SPrashanth Swaminathan
11*1fd5a2e1SPrashanth Swaminathan# Default to podman where available, docker otherwise.
12*1fd5a2e1SPrashanth Swaminathan# Override by setting the DOCKER environment variable.
13*1fd5a2e1SPrashanth Swaminathanif test -z "$DOCKER"; then
14*1fd5a2e1SPrashanth Swaminathan  which podman > /dev/null 2>&1
15*1fd5a2e1SPrashanth Swaminathan  if [ $? != 0 ]; then
16*1fd5a2e1SPrashanth Swaminathan    export DOCKER=docker
17*1fd5a2e1SPrashanth Swaminathan  else
18*1fd5a2e1SPrashanth Swaminathan    export DOCKER=podman
19*1fd5a2e1SPrashanth Swaminathan  fi
20*1fd5a2e1SPrashanth Swaminathanfi
21*1fd5a2e1SPrashanth Swaminathan
22*1fd5a2e1SPrashanth Swaminathanfunction build_cfarm()
23*1fd5a2e1SPrashanth Swaminathan{
24*1fd5a2e1SPrashanth Swaminathan    curl -u ${CFARM_AUTH} https://cfarm-test-libffi-libffi.apps.home.labdroid.net/test?host=${HOST}\&commit=${TRAVIS_COMMIT} | tee build.log
25*1fd5a2e1SPrashanth Swaminathan    echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
26*1fd5a2e1SPrashanth Swaminathan    echo $(tail build.log | grep '^==LOGFILE==')
27*1fd5a2e1SPrashanth Swaminathan    echo $(tail build.log | grep '^==LOGFILE==' | cut -b13-)
28*1fd5a2e1SPrashanth Swaminathan    echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
29*1fd5a2e1SPrashanth Swaminathan    curl -u ${CFARM_AUTH} "$(tail build.log | grep '^==LOGFILE==' | cut -b13-)" > libffi.log
30*1fd5a2e1SPrashanth Swaminathan
31*1fd5a2e1SPrashanth Swaminathan    ./rlgl l https://rl.gl
32*1fd5a2e1SPrashanth Swaminathan    ID=$(./rlgl start)
33*1fd5a2e1SPrashanth Swaminathan    ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git libffi.log
34*1fd5a2e1SPrashanth Swaminathan    exit $?
35*1fd5a2e1SPrashanth Swaminathan}
36*1fd5a2e1SPrashanth Swaminathan
37*1fd5a2e1SPrashanth Swaminathanfunction build_linux()
38*1fd5a2e1SPrashanth Swaminathan{
39*1fd5a2e1SPrashanth Swaminathan    ./autogen.sh
40*1fd5a2e1SPrashanth Swaminathan    ./configure ${HOST+--host=$HOST} ${CONFIGURE_OPTIONS}
41*1fd5a2e1SPrashanth Swaminathan    make
42*1fd5a2e1SPrashanth Swaminathan    make dist
43*1fd5a2e1SPrashanth Swaminathan    make check RUNTESTFLAGS="-a $RUNTESTFLAGS"
44*1fd5a2e1SPrashanth Swaminathan
45*1fd5a2e1SPrashanth Swaminathan    ./rlgl l https://rl.gl
46*1fd5a2e1SPrashanth Swaminathan    ID=$(./rlgl start)
47*1fd5a2e1SPrashanth Swaminathan    ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
48*1fd5a2e1SPrashanth Swaminathan    exit $?
49*1fd5a2e1SPrashanth Swaminathan}
50*1fd5a2e1SPrashanth Swaminathan
51*1fd5a2e1SPrashanth Swaminathanfunction build_foreign_linux()
52*1fd5a2e1SPrashanth Swaminathan{
53*1fd5a2e1SPrashanth Swaminathan    ${DOCKER} run --rm -t -i -v `pwd`:/opt ${SET_QEMU_CPU} -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" $2 bash -c /opt/.travis/build-in-container.sh
54*1fd5a2e1SPrashanth Swaminathan
55*1fd5a2e1SPrashanth Swaminathan    ./rlgl l https://rl.gl
56*1fd5a2e1SPrashanth Swaminathan    ID=$(./rlgl start)
57*1fd5a2e1SPrashanth Swaminathan    ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
58*1fd5a2e1SPrashanth Swaminathan    exit $?
59*1fd5a2e1SPrashanth Swaminathan}
60*1fd5a2e1SPrashanth Swaminathan
61*1fd5a2e1SPrashanth Swaminathanfunction build_cross_linux()
62*1fd5a2e1SPrashanth Swaminathan{
63*1fd5a2e1SPrashanth Swaminathan    ${DOCKER} run --rm -t -i -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}" moxielogic/cross-ci-build-container:latest bash -c /opt/.travis/build-in-container.sh
64*1fd5a2e1SPrashanth Swaminathan
65*1fd5a2e1SPrashanth Swaminathan    ./rlgl l https://rl.gl
66*1fd5a2e1SPrashanth Swaminathan    ID=$(./rlgl start)
67*1fd5a2e1SPrashanth Swaminathan    ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
68*1fd5a2e1SPrashanth Swaminathan    exit $?
69*1fd5a2e1SPrashanth Swaminathan}
70*1fd5a2e1SPrashanth Swaminathan
71*1fd5a2e1SPrashanth Swaminathanfunction build_cross()
72*1fd5a2e1SPrashanth Swaminathan{
73*1fd5a2e1SPrashanth Swaminathan    ${DOCKER} pull quay.io/moxielogic/libffi-ci-${HOST}
74*1fd5a2e1SPrashanth Swaminathan    ${DOCKER} run --rm -t -i -v `pwd`:/opt -e HOST="${HOST}" -e CC="${HOST}-gcc ${GCC_OPTIONS}" -e CXX="${HOST}-g++ ${GCC_OPTIONS}" -e TRAVIS_BUILD_DIR=/opt -e DEJAGNU="${DEJAGNU}" -e RUNTESTFLAGS="${RUNTESTFLAGS}" -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" quay.io/moxielogic/libffi-ci-${HOST} bash -c /opt/.travis/build-cross-in-container.sh
75*1fd5a2e1SPrashanth Swaminathan
76*1fd5a2e1SPrashanth Swaminathan    ./rlgl l https://rl.gl
77*1fd5a2e1SPrashanth Swaminathan    ID=$(./rlgl start)
78*1fd5a2e1SPrashanth Swaminathan    ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
79*1fd5a2e1SPrashanth Swaminathan    exit $?
80*1fd5a2e1SPrashanth Swaminathan}
81*1fd5a2e1SPrashanth Swaminathan
82*1fd5a2e1SPrashanth Swaminathanfunction build_ios()
83*1fd5a2e1SPrashanth Swaminathan{
84*1fd5a2e1SPrashanth Swaminathan    which python
85*1fd5a2e1SPrashanth Swaminathan# export PYTHON_BIN=/usr/local/bin/python
86*1fd5a2e1SPrashanth Swaminathan    ./generate-darwin-source-and-headers.py --only-ios
87*1fd5a2e1SPrashanth Swaminathan    xcodebuild -showsdks
88*1fd5a2e1SPrashanth Swaminathan    xcodebuild -project libffi.xcodeproj -target "libffi-iOS" -configuration Release -sdk iphoneos11.4
89*1fd5a2e1SPrashanth Swaminathan    exit $?
90*1fd5a2e1SPrashanth Swaminathan}
91*1fd5a2e1SPrashanth Swaminathan
92*1fd5a2e1SPrashanth Swaminathanfunction build_macosx()
93*1fd5a2e1SPrashanth Swaminathan{
94*1fd5a2e1SPrashanth Swaminathan    which python
95*1fd5a2e1SPrashanth Swaminathan# export PYTHON_BIN=/usr/local/bin/python
96*1fd5a2e1SPrashanth Swaminathan    ./generate-darwin-source-and-headers.py --only-osx
97*1fd5a2e1SPrashanth Swaminathan    xcodebuild -showsdks
98*1fd5a2e1SPrashanth Swaminathan    xcodebuild -project libffi.xcodeproj -target "libffi-Mac" -configuration Release -sdk macosx10.13
99*1fd5a2e1SPrashanth Swaminathan    exit $?
100*1fd5a2e1SPrashanth Swaminathan}
101*1fd5a2e1SPrashanth Swaminathan
102*1fd5a2e1SPrashanth Swaminathancase "$HOST" in
103*1fd5a2e1SPrashanth Swaminathan    arm-apple-darwin*)
104*1fd5a2e1SPrashanth Swaminathan	./autogen.sh
105*1fd5a2e1SPrashanth Swaminathan	build_ios
106*1fd5a2e1SPrashanth Swaminathan	;;
107*1fd5a2e1SPrashanth Swaminathan    x86_64-apple-darwin*)
108*1fd5a2e1SPrashanth Swaminathan	./autogen.sh
109*1fd5a2e1SPrashanth Swaminathan	build_macosx
110*1fd5a2e1SPrashanth Swaminathan	;;
111*1fd5a2e1SPrashanth Swaminathan    arm32v7-linux-gnu)
112*1fd5a2e1SPrashanth Swaminathan	./autogen.sh
113*1fd5a2e1SPrashanth Swaminathan        build_foreign_linux arm moxielogic/arm32v7-ci-build-container:latest
114*1fd5a2e1SPrashanth Swaminathan	;;
115*1fd5a2e1SPrashanth Swaminathan    aarch64-linux-gnu| powerpc64le-unknown-linux-gnu | mips64el-linux-gnu | sparc64-linux-gnu)
116*1fd5a2e1SPrashanth Swaminathan        build_cfarm
117*1fd5a2e1SPrashanth Swaminathan	;;
118*1fd5a2e1SPrashanth Swaminathan    bfin-elf )
119*1fd5a2e1SPrashanth Swaminathan	./autogen.sh
120*1fd5a2e1SPrashanth Swaminathan	GCC_OPTIONS=-msim build_cross
121*1fd5a2e1SPrashanth Swaminathan	;;
122*1fd5a2e1SPrashanth Swaminathan    m32r-elf )
123*1fd5a2e1SPrashanth Swaminathan	./autogen.sh
124*1fd5a2e1SPrashanth Swaminathan	build_cross
125*1fd5a2e1SPrashanth Swaminathan	;;
126*1fd5a2e1SPrashanth Swaminathan    or1k-elf )
127*1fd5a2e1SPrashanth Swaminathan	./autogen.sh
128*1fd5a2e1SPrashanth Swaminathan	build_cross
129*1fd5a2e1SPrashanth Swaminathan	;;
130*1fd5a2e1SPrashanth Swaminathan    m68k-linux-gnu )
131*1fd5a2e1SPrashanth Swaminathan	./autogen.sh
132*1fd5a2e1SPrashanth Swaminathan	GCC_OPTIONS=-mcpu=547x build_cross_linux
133*1fd5a2e1SPrashanth Swaminathan	;;
134*1fd5a2e1SPrashanth Swaminathan    alpha-linux-gnu | sh4-linux-gnu | s390x-linux-gnu )
135*1fd5a2e1SPrashanth Swaminathan	./autogen.sh
136*1fd5a2e1SPrashanth Swaminathan	build_cross_linux
137*1fd5a2e1SPrashanth Swaminathan	;;
138*1fd5a2e1SPrashanth Swaminathan    *)
139*1fd5a2e1SPrashanth Swaminathan	./autogen.sh
140*1fd5a2e1SPrashanth Swaminathan	build_linux
141*1fd5a2e1SPrashanth Swaminathan	;;
142*1fd5a2e1SPrashanth Swaminathanesac
143