mirror of
https://github.com/aria2/aria2.git
synced 2024-11-23 01:53:35 +08:00
Update android build dependencies
Update android build dependencies. Use android NDK r20 and build aarch64 binary.
This commit is contained in:
parent
7f6578aa7d
commit
9f5758570a
@ -42,11 +42,11 @@ aria2c executable was generated using android-ndk-r14b.
|
||||
|
||||
The following libraries were statically linked.
|
||||
|
||||
* openssl 1.0.2o
|
||||
* expat 2.2.5
|
||||
* openssl 1.1.1c
|
||||
* expat 2.2.7
|
||||
* zlib 1.2.11
|
||||
* c-ares 1.14.0
|
||||
* libssh2 1.8.0
|
||||
* c-ares 1.15.0
|
||||
* libssh2 1.9.0
|
||||
|
||||
Since Android does not have ``/etc/resolv.conf``, c-ares (asynchronous
|
||||
DNS resolver) is disabled by default. But name resolution is sometimes
|
||||
|
34
README.rst
34
README.rst
@ -359,7 +359,7 @@ Cross-compiling Android binary
|
||||
In this section, we describe how to build Android binary using Android
|
||||
NDK cross-compiler on Debian Linux.
|
||||
|
||||
At the time of this writing, android-ndk-r14b should compile aria2
|
||||
At the time of this writing, Android NDK r20 should compile aria2
|
||||
without errors.
|
||||
|
||||
``android-config`` script is a configure script wrapper for Android
|
||||
@ -376,33 +376,17 @@ When building the above libraries, make sure that disable shared
|
||||
library and enable only static library. We are going to link those
|
||||
libraries statically.
|
||||
|
||||
We use zlib which comes with Android NDK, so we don't have to build it
|
||||
by ourselves.
|
||||
``android-config`` assumes that ``$ANDROID_HOME`` and ``$NDK``
|
||||
environment variables are defined.
|
||||
|
||||
``android-config`` assumes the existence of ``$ANDROID_HOME``
|
||||
environment variable which must fulfill the following conditions:
|
||||
We currently use Android NDK r20. ``$NDK`` should point to the
|
||||
directory to Anroid NDK. The build tools will be found under
|
||||
``$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/``.
|
||||
|
||||
* Android NDK toolchain is installed under
|
||||
``$ANDROID_HOME/toolchain``. Refer to `Standalone Toolchain
|
||||
<https://developer.android.com/ndk/guides/standalone_toolchain.html>`_
|
||||
for more details, but it is a bit out of date.
|
||||
All the dependent libraries must be installed under
|
||||
``$ANDROID_HOME/usr/local``.
|
||||
|
||||
To install toolchain under ``$ANDROID_HOME/toolchain``, do this:
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
$NDK/build/tools/make_standalone_toolchain.py \
|
||||
--arch arm --api 16 --stl=gnustl \
|
||||
--install-dir $ANDROID_HOME/toolchain
|
||||
|
||||
* The dependent libraries must be installed under
|
||||
``$ANDROID_HOME/usr/local``.
|
||||
|
||||
Before running ``android-config`` and ``android-make``,
|
||||
``$ANDROID_HOME`` environment variable must be set to point to the
|
||||
correct path.
|
||||
|
||||
After ``android-config``, run ``android-make`` to compile sources.
|
||||
After ``android-config``, run ``make`` to compile sources.
|
||||
|
||||
Building documentation
|
||||
----------------------
|
||||
|
@ -35,12 +35,15 @@ if [ -z "$ANDROID_HOME" ]; then
|
||||
echo 'No $ANDROID_HOME specified.'
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$NDK" ]; then
|
||||
echo 'No $NDK specified.'
|
||||
exit 1
|
||||
fi
|
||||
PREFIX=$ANDROID_HOME/usr/local
|
||||
TOOLCHAIN=$ANDROID_HOME/toolchain
|
||||
PATH=$TOOLCHAIN/bin:$PATH
|
||||
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
|
||||
|
||||
./configure \
|
||||
--host=arm-linux-androideabi \
|
||||
--host=aarch64-linux-android \
|
||||
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` \
|
||||
--disable-nls \
|
||||
--without-gnutls \
|
||||
@ -51,10 +54,15 @@ PATH=$TOOLCHAIN/bin:$PATH
|
||||
--with-libcares \
|
||||
--with-libz \
|
||||
--with-libssh2 \
|
||||
CC="$TOOLCHAIN"/bin/arm-linux-androideabi-clang \
|
||||
CXX="$TOOLCHAIN"/bin/arm-linux-androideabi-clang++ \
|
||||
AR=$TOOLCHAIN/bin/aarch64-linux-android-ar \
|
||||
AS=$TOOLCHAIN/bin/aarch64-linux-android-as \
|
||||
CC=$TOOLCHAIN/bin/aarch64-linux-android29-clang \
|
||||
CXX=$TOOLCHAIN/bin/aarch64-linux-android29-clang++ \
|
||||
LD=$TOOLCHAIN/bin/aarch64-linux-android-ld \
|
||||
RANLIB=$TOOLCHAIN/bin/aarch64-linux-android-ranlib \
|
||||
STRIP=$TOOLCHAIN/bin/aarch64-linux-android-strip \
|
||||
CXXFLAGS="-Os -g" \
|
||||
CFLAGS="-Os -g" \
|
||||
CPPFLAGS="-fPIE" \
|
||||
LDFLAGS="-fPIE -pie -L$PREFIX/lib" \
|
||||
LDFLAGS="-fPIE -pie -L$PREFIX/lib -static-libstdc++" \
|
||||
PKG_CONFIG_LIBDIR="$PREFIX/lib/pkgconfig"
|
||||
|
41
android-make
41
android-make
@ -1,41 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# aria2 - The high speed download utility
|
||||
#
|
||||
# Copyright (C) 2012 Tatsuhiro Tsujikawa
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# In addition, as a special exception, the copyright holders give
|
||||
# permission to link the code of portions of this program with the
|
||||
# OpenSSL library under certain conditions as described in each
|
||||
# individual source file, and distribute linked combinations
|
||||
# including the two.
|
||||
# You must obey the GNU General Public License in all respects
|
||||
# for all of the code used other than OpenSSL. If you modify
|
||||
# file(s) with this exception, you may extend this exception to your
|
||||
# version of the file(s), but you are not obligated to do so. If you
|
||||
# do not wish to do so, delete this exception statement from your
|
||||
# version. If you delete this exception statement from all source
|
||||
# files in the program, then also delete it here.
|
||||
|
||||
if [ -z "$ANDROID_HOME" ]; then
|
||||
echo 'No $ANDROID_HOME specified.'
|
||||
exit 1
|
||||
fi
|
||||
TOOLCHAIN=$ANDROID_HOME/toolchain
|
||||
PATH=$TOOLCHAIN/bin:$PATH
|
||||
|
||||
make "$@"
|
@ -31,11 +31,12 @@
|
||||
# version. If you delete this exception statement from all source
|
||||
# files in the program, then also delete it here.
|
||||
|
||||
if [ -z "$ANDROID_HOME" ]; then
|
||||
echo 'No $ANDROID_HOME specified.'
|
||||
if [ -z "$NDK" ]; then
|
||||
echo 'No $NDK specified.'
|
||||
exit 1
|
||||
fi
|
||||
TOOLCHAIN=$ANDROID_HOME/toolchain
|
||||
|
||||
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
|
||||
PATH=$TOOLCHAIN/bin:$PATH
|
||||
|
||||
# cd to the directory where this script exists.
|
||||
@ -49,8 +50,8 @@ if [ -z "$VERSION" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DIST_DIR=aria2-$VERSION-android-arm-build1
|
||||
arm-linux-androideabi-strip src/aria2c
|
||||
DIST_DIR=aria2-$VERSION-aarch64-linux-android-build1
|
||||
aarch64-linux-android-strip src/aria2c
|
||||
mkdir $DIST_DIR
|
||||
cp AUTHORS COPYING ChangeLog LICENSE.OpenSSL NEWS README.html README.android \
|
||||
src/aria2c $DIST_DIR
|
||||
|
@ -4,6 +4,10 @@ if [ -z "$ANDROID_HOME" ]; then
|
||||
echo 'No $ANDROID_HOME specified.'
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$NDK" ]; then
|
||||
echo 'No $NDK specified.'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VERSION=$1
|
||||
PREV_VERSION=$2
|
||||
|
@ -147,7 +147,7 @@
|
||||
// # define a2fseek(fp, offset, origin): No fseek64 and not used in aria2
|
||||
# define a2fstat(fd, buf) fstat64(fd, buf)
|
||||
// # define a2ftell(fd): No ftell64 and not used in aria2
|
||||
# define a2_struct_stat struct stat
|
||||
# define a2_struct_stat struct stat64
|
||||
# define a2stat(path, buf) stat64(path, buf)
|
||||
# define a2mkdir(path, openMode) mkdir(path, openMode)
|
||||
# define a2utimbuf utimbuf
|
||||
|
Loading…
Reference in New Issue
Block a user