-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild64.sh
81 lines (73 loc) · 2.15 KB
/
build64.sh
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
export TMPDIR=`dirname $0`/tmpdir
NDK=/home/krisez/android-ndk-r21b
API=21
# arm aarch64 i686 x86_64
ARCH=aarch64
# armv7a aarch64 i686 x86_64
PLATFORM=aarch64
PLATFORMDIR=$NDK/platforms/android-21/arch-arm64
TARGET=$PLATFORM-linux-android
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
PREFIX=`dirname $0`/Android/$PLATFORM
CFLAG="-D__ANDROID_API__=$API -U_FILE_OFFSET_BITS -DBIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD -Os -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -Wall -O2 -U_FORTIFY_SOURCE -fstack-protector-all"
mkdir -p $TMPDIR
build_one()
{
./configure \
--prefix=$PREFIX \
--cc=$TOOLCHAIN/$TARGET$API-clang \
--cxx=$TOOLCHAIN/$TARGET$API-clang++ \
--ld=$TOOLCHAIN/$TARGET$API-clang \
--target-os=android \
--enable-jni \
--arch=$ARCH \
--cpu=armv8-a \
--cross-prefix=$TOOLCHAIN/$ARCH-linux-android- \
--enable-cross-compile \
--disable-shared \
--enable-static \
--enable-avfilter \
--enable-runtime-cpudetect \
--disable-doc \
--disable-htmlpages \
--disable-manpages \
--disable-podpages \
--disable-txtpages \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-doc \
--disable-symver \
--enable-small \
--disable-gpl --disable-nonfree --enable-neon --disable-hwaccels \
--disable-avdevice \
--disable-postproc \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic -march=armv8-a -Wall -O2 -U_FORTIFY_SOURCE -fstack-protector-all" \
--extra-ldflags=""
}
builda(){
echo "开始编译ffmpeg so"
$TOOLCHAIN/arm-linux-androideabi-ld \
--rpath-link=$PLATFORMDIR/usr/lib \
-L $PLATFORMDIR/usr/lib \
-L $PREFIX \
-soname libiovffmpeg.so -shared -nostdlib -Bsymbolic --whole-archive --no-undefined \
-o $PREFIX/libiovffmpeg.so \
$PREFIX/lib/libavcodec.a \
$PREFIX/lib/libavfilter.a \
$PREFIX/lib/libswresample.a \
$PREFIX/lib/libavformat.a \
$PREFIX/lib/libavutil.a \
$PREFIX/lib/libswscale.a \
-lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker \
$TOOLCHAIN/../lib/gcc/aarch64-linux-android/4.9.x/libgcc_real.a
#$TOOLCHAIN/arm-linux-androideabi-strip $PREFIX/libffmpeg.so
echo "编译ffmpeg so over "
}
build_one
make clean
make -j4
make install
builda