@@ -105,10 +105,10 @@ for INDEX in "${ARCH_KEYS_INDEX[@]}"; do
105105 ARM_COMPILER_TRIPLE=$( echo " $RAW_JSON " | jq -M -r -c ' ."llvm_triple"' )
106106 ARM_TOOL_TRIPLE=$( echo " $ARM_NAME_TRIPLE$SDK_VERSION " | sed s/$ARCH /$ARCH_VERSION /)
107107
108- export SYM_LINK_PATH=sysroot_sym -$ARCH_VERSION
108+ export SYM_LINK_PATH=sym -$ARCH_VERSION
109109
110110 export HOST_ROOT=" $BASE_PATH /toolchains/llvm/prebuilt/linux-x86_64"
111- export SYS_ROOT=" ${HOST_ROOT} /$SYM_LINK_PATH "
111+ export SYS_ROOT=" ${HOST_ROOT} /$SYM_LINK_PATH /sysroot "
112112 export BIN_DIR=" $HOST_ROOT /bin"
113113 export PATH=" $BIN_DIR :$PATH "
114114
@@ -177,47 +177,41 @@ for INDEX in "${ARCH_KEYS_INDEX[@]}"; do
177177
178178 cd " $BUILD_DIR_MPG123 "
179179
180- wget -q " https://www.mpg123.de/download/mpg123-1.32.6.tar.bz2"
180+ if [ ! -e " mpg123-1.32.6.tar.bz2" ]; then
181+ wget -q " https://www.mpg123.de/download/mpg123-1.32.6.tar.bz2"
182+ fi
181183
182- tar -xf " mpg123-1.32.6.tar.bz2"
184+ if [ ! -d " mpg123-1.32.6" ]; then
185+ tar -xf " mpg123-1.32.6.tar.bz2"
186+ fi
183187
184188 cd " mpg123-1.32.6"
185189
186- BUILDYSTEM=" cmake"
187-
188- if [ $BUILDYSTEM = " autotools" ]; then
189-
190- ./configure --prefix=" $SYS_ROOT /usr" --oldincludedir=" $SYS_ROOT /usr/include" --host=" $ARM_NAME_TRIPLE " --with-sysroot=" $SYS_ROOT " --with-audio=" dummy"
191-
192- make
193-
194- make install
190+ cd ports/cmake/
195191
196- else
197-
198- cd ports/cmake/
199-
200- BUILD_DIR_MPG123=" build-mpg123"
192+ BUILD_DIR_MPG123=" build-mpg123"
201193
202- mkdir -p " $BUILD_DIR_MPG123 "
194+ mkdir -p " $BUILD_DIR_MPG123 "
203195
204- cd " $BUILD_DIR_MPG123 "
196+ cd " $BUILD_DIR_MPG123 "
205197
206- if [ " $ARCH_VERSION " = " i686" ]; then
207- # cmake .. -DCMAKE_TOOLCHAIN_FILE=linux_i686.toolchain.cmake --install-prefix "$SYS_ROOT/usr" "-DCMAKE_SYSROOT=$SYS_ROOT" -DOUTPUT_MODULES=dummy -DCMAKE_POSITION_INDEPENDENT_CODE=ON
208- # cmake --build .
198+ export MPG123_ANDROID_SSE_ENABLED=" ON"
209199
210- # cmake --install .
211- : # nop, for bash syntax
200+ if [ " $ARCH_VERSION " = " i686" ]; then
201+ MPG123_ANDROID_SSE_ENABLED=" OFF"
202+ fi
212203
213- else
214- cmake .. --install-prefix " $SYS_ROOT /usr" " -DCMAKE_SYSROOT=$SYS_ROOT " -DOUTPUT_MODULES=dummy -DCMAKE_POSITION_INDEPENDENT_CODE=ON
215- cmake --build .
204+ cmake .. --install-prefix " $SYS_ROOT /usr" " -DCMAKE_SYSROOT=$SYS_ROOT " -DOUTPUT_MODULES=dummy -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
205+ " -DCMAKE_SYSTEM_NAME=Android" \
206+ " -DCMAKE_SYSTEM_VERSION=$SDK_VERSION " \
207+ " -DCMAKE_ANDROID_ARCH_ABI=$KEY " \
208+ " -DCMAKE_ANDROID_NDK=$ANDROID_NDK " \
209+ " -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang" \
210+ " -DWITH_SSE=$MPG123_ANDROID_SSE_ENABLED "
216211
217- cmake --install .
218- fi
212+ cmake --build .
219213
220- fi
214+ cmake --install .
221215
222216 touch " $BUILD_MPG123_FILE "
223217
@@ -241,17 +235,39 @@ for INDEX in "${ARCH_KEYS_INDEX[@]}"; do
241235
242236 cd " $BUILD_DIR_OPENSSL "
243237
244- wget -q " https://github.com/openssl/openssl/releases/download/openssl-3.3.0/openssl-3.3.0.tar.gz"
238+ if [ ! -e " openssl-3.3.0.tar.gz" ]; then
239+ wget -q " https://github.com/openssl/openssl/releases/download/openssl-3.3.0/openssl-3.3.0.tar.gz"
240+ fi
245241
246- tar -xzf " openssl-3.3.0.tar.gz"
242+ if [ ! -d " openssl-3.3.0" ]; then
243+ tar -xzf " openssl-3.3.0.tar.gz"
244+ fi
247245
248246 cd " openssl-3.3.0"
249247
250248 OPENSSL_TARGET_ARCH=" android-$ARCH "
251249
252250 export ANDROID_NDK_ROOT=" $ANDROID_NDK_HOME "
253251
254- ./Configure --prefix=" $SYS_ROOT /usr" no-tests no-shared " $OPENSSL_TARGET_ARCH " " -D__ANDROID_API__=$SDK_VERSION "
252+ if [ " $ARCH_VERSION " = " armv7a" ]; then
253+
254+ ./Configure --prefix=" $SYS_ROOT /usr" no-asm no-tests no-shared " $OPENSSL_TARGET_ARCH " " -D__ANDROID_API__=$SDK_VERSION "
255+ else
256+ ./Configure --prefix=" $SYS_ROOT /usr" no-tests no-shared " $OPENSSL_TARGET_ARCH " " -D__ANDROID_API__=$SDK_VERSION "
257+ fi
258+
259+ make clean
260+
261+ if [ " $ARCH_VERSION " = " armv7-a" ]; then
262+
263+ # fix an compile time error since openssl 3.1.0 >
264+ # see https://github.com/android/ndk/issues/1992
265+ # Apply patch that fixes the armcap instruction
266+
267+ # sed -e '/[.]hidden.*OPENSSL_armcap_P/d; /[.]extern.*OPENSSL_armcap_P/ {p; s/extern/hidden/ }' -i -- crypto/*arm*pl crypto/*/asm/*arm*pl
268+ sed -E -i ' ' -e ' /[.]hidden.*OPENSSL_armcap_P/d' -e ' /[.]extern.*OPENSSL_armcap_P/ {p; s/extern/hidden/; }' crypto/* arm* pl crypto/* /asm/* arm* pl
269+
270+ fi
255271
256272 make -j build_sw
257273
0 commit comments