2015-01-31 22:13:19 -06:00
|
|
|
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
|
|
|
|
./autogen.sh
|
|
|
|
|
2015-09-09 07:13:05 -05:00
|
|
|
if [ "x$ARCH" = "xnative" ]; then
|
2015-09-11 08:03:56 -05:00
|
|
|
# test autotools
|
2015-03-18 19:12:42 -05:00
|
|
|
./configure
|
2015-09-17 05:05:53 -05:00
|
|
|
make -j 4 distcheck
|
2015-09-11 08:03:56 -05:00
|
|
|
|
|
|
|
# make distribution
|
|
|
|
make dist
|
|
|
|
tar zxvf libressl-*.tar.gz
|
|
|
|
cd libressl-*
|
2018-03-21 10:55:55 -07:00
|
|
|
mkdir build-static
|
|
|
|
mkdir build-shared
|
|
|
|
|
|
|
|
cd build-static
|
2015-09-11 08:03:56 -05:00
|
|
|
|
|
|
|
# test cmake and ninja
|
2015-09-09 07:13:05 -05:00
|
|
|
if [ `uname` = "Darwin" ]; then
|
2015-09-11 08:03:56 -05:00
|
|
|
cmake ..
|
|
|
|
make
|
2015-09-17 05:48:09 -05:00
|
|
|
make test
|
2018-03-21 10:55:55 -07:00
|
|
|
|
|
|
|
cd ../build-shared
|
|
|
|
cmake -DBUILD_SHARED_LIBS=ON ..
|
|
|
|
make
|
|
|
|
make test
|
2015-01-31 22:35:52 -06:00
|
|
|
else
|
2015-09-11 08:03:56 -05:00
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install -y cmake ninja-build
|
2019-01-02 05:37:08 -06:00
|
|
|
|
2015-09-11 08:03:56 -05:00
|
|
|
cmake -GNinja ..
|
|
|
|
ninja
|
2015-09-17 05:05:53 -05:00
|
|
|
ninja test
|
2018-03-21 10:55:55 -07:00
|
|
|
|
|
|
|
cd ../build-shared
|
|
|
|
cmake -GNinja -DBUILD_SHARED_LIBS=ON ..
|
|
|
|
ninja
|
|
|
|
ninja test
|
2015-01-31 22:35:52 -06:00
|
|
|
fi
|
2019-01-04 01:32:22 +09:00
|
|
|
|
|
|
|
elif [ "x$ARCH" = "xmingw32" -o "x$ARCH" = "xmingw64" ]; then
|
2019-01-02 05:37:08 -06:00
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install -y cmake ninja-build
|
|
|
|
|
2015-01-31 22:35:52 -06:00
|
|
|
CPU=i686
|
2015-09-09 07:13:05 -05:00
|
|
|
if [ "x$ARCH" = "xmingw64" ]; then
|
2015-01-31 22:35:52 -06:00
|
|
|
CPU=x86_64
|
|
|
|
fi
|
|
|
|
export CC=$CPU-w64-mingw32-gcc
|
2015-01-31 22:13:19 -06:00
|
|
|
|
2015-09-09 07:45:54 -05:00
|
|
|
if [ -z $(which $CC) ]; then
|
2015-01-31 22:24:31 -06:00
|
|
|
sudo apt-get update
|
2016-11-13 13:10:42 -06:00
|
|
|
sudo apt-get install -y mingw-w64 make
|
2015-01-31 22:13:19 -06:00
|
|
|
export PATH=$PATH:/opt/$ARCH/bin
|
|
|
|
fi
|
|
|
|
|
2015-03-18 19:12:42 -05:00
|
|
|
./configure --host=$CPU-w64-mingw32
|
2015-01-31 22:35:52 -06:00
|
|
|
make -j
|
2019-01-02 05:37:08 -06:00
|
|
|
|
|
|
|
(
|
|
|
|
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
|
|
|
|
)
|
2019-01-04 01:32:22 +09:00
|
|
|
|
|
|
|
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 /lib/arm-linux-gnueabihf
|
2021-05-01 10:57:12 -05:00
|
|
|
sudo ln -s /lib/arm-linux-gnueabihf/ld-2.27.so /lib/ld-linux-armhf.so.3
|
2019-01-04 01:32:22 +09:00
|
|
|
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/ /lib/aarch64-linux-gnu
|
2021-05-01 10:57:12 -05:00
|
|
|
sudo ln -s /lib/aarch64-linux-gnu/ld-2.27.so /lib/ld-linux-aarch64.so.1
|
2019-01-04 01:32:22 +09:00
|
|
|
export CC=aarch64-linux-gnu-gcc
|
|
|
|
./configure --host=aarch64-linux
|
|
|
|
fi
|
|
|
|
|
|
|
|
make -j 4 check
|
|
|
|
file apps/openssl/.libs/openssl
|
2019-01-05 16:22:24 +09:00
|
|
|
|
|
|
|
elif [ "x$ARCH" = "xandroid" ]; then
|
2020-03-25 22:45:33 +09:00
|
|
|
touch $HOME/.android/repositories.cfg
|
2021-05-09 15:57:23 +09:00
|
|
|
echo "##### Date: `date` install NDK and build tools"
|
|
|
|
echo y | sdkmanager 'platforms;android-30' > /dev/null 2>&1
|
|
|
|
echo "##### Date: `date` platforms;android installed"
|
|
|
|
echo y | sdkmanager 'ndk-bundle' > /dev/null 2>&1
|
|
|
|
echo "##### Date: `date` ndk-bundle installed"
|
|
|
|
echo y | sdkmanager 'ndk;22.1.7171670'
|
|
|
|
echo "##### Date: `date` ndk installed"
|
|
|
|
echo y | sdkmanager 'cmake;3.18.1'
|
|
|
|
echo "##### Date: `date` cmake installed"
|
|
|
|
|
|
|
|
echo "##### Date: `date` sdkmanager --list"
|
|
|
|
sdkmanager --list
|
|
|
|
|
|
|
|
export CMAKE=$ANDROID_HOME/cmake/3.18.1/bin/cmake
|
|
|
|
export NINJA=$ANDROID_HOME/cmake/3.18.1/bin/ninja
|
2019-01-05 16:22:24 +09:00
|
|
|
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle
|
|
|
|
export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake
|
|
|
|
|
2021-05-09 15:57:23 +09:00
|
|
|
# set target API level and architecture
|
2019-01-05 16:22:24 +09:00
|
|
|
level_arch=""
|
|
|
|
level=$MIN_NAL
|
|
|
|
while [ $level -le $MAX_NAL ]
|
|
|
|
do
|
2021-05-09 15:57:23 +09:00
|
|
|
level_arch="$level_arch $level;x86_64"
|
|
|
|
level_arch="$level_arch $level;x86"
|
|
|
|
level_arch="$level_arch $level;arm64-v8a"
|
|
|
|
|
2019-01-05 16:22:24 +09:00
|
|
|
level=`expr $level + 1`
|
|
|
|
done
|
|
|
|
|
2021-05-09 15:57:23 +09:00
|
|
|
echo "##### level_arch = $level_arch"
|
|
|
|
|
2019-01-05 16:22:24 +09:00
|
|
|
# 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 \
|
2019-01-08 00:00:31 +09:00
|
|
|
-DANDROID_ABI=$ABI -DANDROID_NATIVE_API_LEVEL=$NAL ..
|
2019-01-05 16:22:24 +09:00
|
|
|
|
|
|
|
$NINJA -j 4
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
file apps/openssl/openssl
|
|
|
|
)
|
|
|
|
done
|
2015-01-31 22:13:19 -06:00
|
|
|
fi
|