update badges, further split out actions by OS, add more Linux targets
This commit is contained in:
143
scripts/test
Executable file
143
scripts/test
Executable file
@@ -0,0 +1,143 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
./autogen.sh
|
||||
|
||||
if [ "x$ARCH" = "xnative" ]; then
|
||||
# test autotools
|
||||
./configure
|
||||
make -j 4 distcheck
|
||||
|
||||
# make distribution
|
||||
make dist
|
||||
tar zxvf libressl-*.tar.gz
|
||||
cd libressl-*
|
||||
mkdir build-static
|
||||
mkdir build-shared
|
||||
|
||||
cd build-static
|
||||
|
||||
# test cmake and ninja
|
||||
if [ `uname` = "Darwin" ]; then
|
||||
cmake ..
|
||||
make
|
||||
make test
|
||||
|
||||
cd ../build-shared
|
||||
cmake -DBUILD_SHARED_LIBS=ON ..
|
||||
make
|
||||
make test
|
||||
else
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y cmake ninja-build
|
||||
|
||||
cmake -GNinja ..
|
||||
ninja
|
||||
ninja test
|
||||
|
||||
cd ../build-shared
|
||||
cmake -GNinja -DBUILD_SHARED_LIBS=ON ..
|
||||
ninja
|
||||
ninja test
|
||||
fi
|
||||
|
||||
elif [ "x$ARCH" = "xmingw32" -o "x$ARCH" = "xmingw64" ]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y cmake ninja-build
|
||||
|
||||
CPU=i686
|
||||
if [ "x$ARCH" = "xmingw64" ]; then
|
||||
CPU=x86_64
|
||||
fi
|
||||
export CC=$CPU-w64-mingw32-gcc
|
||||
|
||||
if [ -z $(which $CC) ]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y mingw-w64 make
|
||||
export PATH=$PATH:/opt/$ARCH/bin
|
||||
fi
|
||||
|
||||
./configure --host=$CPU-w64-mingw32
|
||||
make -j
|
||||
|
||||
(
|
||||
rm -fr build-static
|
||||
mkdir build-static
|
||||
cd build-static
|
||||
cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=../scripts/$CPU-w64-mingw32.cmake ..
|
||||
ninja
|
||||
)
|
||||
(
|
||||
rm -fr build-shared
|
||||
mkdir build-shared
|
||||
cd build-shared
|
||||
cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=../scripts/$CPU-w64-mingw32.cmake -DBUILD_SHARED_LIBS=ON ..
|
||||
ninja
|
||||
)
|
||||
|
||||
elif [ "x$ARCH" = "xarm32" -o "x$ARCH" = "xarm64" ]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y qemu-user-static binfmt-support
|
||||
|
||||
if [ "x$ARCH" = "xarm32" ]; then
|
||||
sudo apt-get install -y g++-arm-linux-gnueabihf
|
||||
sudo ln -s /usr/arm-linux-gnueabihf/lib/ld-*.*.so /lib/ld-linux-armhf.so.3
|
||||
export LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib
|
||||
export CC=arm-linux-gnueabihf-gcc
|
||||
./configure --host=arm-linux
|
||||
else
|
||||
sudo apt-get install -y g++-aarch64-linux-gnu
|
||||
sudo ln -s /usr/aarch64-linux-gnu/lib/ld-*.*.so /lib/ld-linux-aarch64.so.1
|
||||
export LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib
|
||||
export CC=aarch64-linux-gnu-gcc
|
||||
./configure --host=aarch64-linux
|
||||
fi
|
||||
|
||||
make -j 4 check
|
||||
file apps/openssl/.libs/openssl
|
||||
|
||||
elif [ "x$ARCH" = "xandroid" ]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y cmake ninja-build
|
||||
|
||||
export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake
|
||||
|
||||
# set target API level and architecture
|
||||
level_arch=""
|
||||
level=$MIN_NAL
|
||||
while [ $level -le $MAX_NAL ]
|
||||
do
|
||||
level_arch="$level_arch $level;x86_64"
|
||||
level_arch="$level_arch $level;x86"
|
||||
level_arch="$level_arch $level;arm64-v8a"
|
||||
|
||||
level=`expr $level + 1`
|
||||
done
|
||||
|
||||
echo "##### level_arch = $level_arch"
|
||||
|
||||
# build each API level and architecture
|
||||
for la in $level_arch
|
||||
do
|
||||
NAL=`echo $la | cut -d ';' -f 1`
|
||||
ABI=`echo $la | cut -d ';' -f 2`
|
||||
echo ""
|
||||
echo "##### Date: `date`, Native API level: $NAL, ABI: $ABI"
|
||||
|
||||
(
|
||||
build_dir=build_$NAL_$ABI
|
||||
rm -fr $build_dir
|
||||
mkdir $build_dir
|
||||
cd $build_dir
|
||||
cmake -GNinja -DCMAKE_MAKE_PROGRAM=ninja \
|
||||
-DANDROID_NDK=$ANDROID_NDK_HOME \
|
||||
-DCMAKE_TOOLCHAIN_FILE=$TC_FILE \
|
||||
-DANDROID_ABI=$ABI -DANDROID_NATIVE_API_LEVEL=$NAL ..
|
||||
|
||||
ninja -j 4
|
||||
|
||||
echo ""
|
||||
file apps/openssl/openssl
|
||||
)
|
||||
done
|
||||
fi
|
Reference in New Issue
Block a user