blob: 5c2f6ad9106b0accdd4cb9ed866b0357d51399ec (
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
147
148
149
150
151
152
153
154
155
156
157
158
|
#!/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 /lib/arm-linux-gnueabihf
sudo ln -s /lib/arm-linux-gnueabihf/ld-2.27.so /lib/ld-linux-armhf.so.3
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
sudo ln -s /lib/aarch64-linux-gnu/ld-2.27.so /lib/ld-linux-aarch64.so.1
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
touch $HOME/.android/repositories.cfg
echo y | sdkmanager 'ndk-bundle'
echo y | sdkmanager 'ndk;20.1.5948944'
echo y | sdkmanager 'cmake;3.6.4111459'
export CMAKE=$ANDROID_HOME/cmake/3.6.4111459/bin/cmake
export NINJA=$ANDROID_HOME/cmake/3.6.4111459/bin/ninja
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle
export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake
# get available API level and architecture
pdir=$ANDROID_NDK_HOME/platforms
level_arch=""
level=$MIN_NAL
while [ $level -le $MAX_NAL ]
do
if [ -d $pdir/android-$level ] ; then
adir=$pdir/android-$level
if [ -d $adir/arch-arm ] ; then
level_arch="$level_arch $level;armeabi-v7a"
fi
if [ -d $adir/arch-arm64 ] ; then
level_arch="$level_arch $level;arm64-v8a"
fi
if [ -d $adir/arch-x86 ] ; then
level_arch="$level_arch $level;x86"
fi
if [ -d $adir/arch-x86_64 ] ; then
level_arch="$level_arch $level;x86_64"
fi
fi
level=`expr $level + 1`
done
# 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
|