android-ndkx264

When I build x264 with android-ndk it not done


When I build x264 with android-ndk it not done.

enter image description here

Unknown option file/x264/android/armeabi, ignored
Unknown option --target-os=android, ignored
Unknown option --enable-cross-compile, ignored
Unknown option --arch=arm, ignored
Unknown option --cpu=armv5te, ignored
Unknown option --enable-armv5te, ignored
Unknown option --disable-stripping, ignored
No working C compiler found.
Makefile:3: config.mak: No such file or directory
./configure
platform:      X86_64
byte order:    little-endian
system:        LINUX
cli:           yes
libx264:       internal
shared:        no
static:        no
asm:           yes
interlaced:    yes
avs:           avxsynth
lavf:          no
ffms:          no
mp4:           no
gpl:           yes
thread:        posix
opencl:        yes
filters:       crop select_every
lto:           no
debug:         no
gprof:         no
strip:         no 
PIC:           no
bit depth:     all
chroma format: all

My build file

#!/bin/bash

TOOLCHAIN=/home/s/my_toolchains/arm
CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
rm -f $(pwd)/compat/strtod.o
function build_one
{
./configure --prefix=$PREFIX --enable-static  --enable-pic   --target-os=android --enable-cross- compile --cross-prefix=$CROSS_PREFIX --extra-cflags="-Os -fpic $ADDI_CFLAGS" --extra-ldflags="$ADDI_LDFLAGS" --sysroot=$TOOLCHAIN/sysroot $ADDITIONAL_CONFIG_FLAG
make clean
make 
make install
}

CPU=armeabi
mkdir -p $(pwd)/android/$CPU
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-marm -march=armv5te -mtune=arm9tdmi -msoft-float"
ADDI_LDFLAGS=""
ADDITIONAL_CONFIG_FLAG="--arch=arm --cpu=armv5te --enable-armv5te --disable-asm --disable-stripping"
build_one

How can I solve this?

why this is not done? I made the build file properly but this is not done?

I use ubuntu os to build this file.

It comes Unknown option --target-os=android, ignored.


Solution

  • I assume you use a deprecated version of x264, because i succeed compiled the latest version form here https://www.videolan.org/developers/x264.html using the following scripts:

    armeabi-v7a

    #!/bin/bash
    export NDK=F:/Android/Sdk/ndk-bundle # your android ndk folder
    export HOST_TAG=windows-x86_64 # adjust to your building host
    export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_TAG
    
    export CC=$TOOLCHAIN/bin/armv7a-linux-androideabi18-clang # c compiler path
    export CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi18-clang++ # c++ compiler path
    
    function build_armeabi-v7a
    {
      ./configure \
      --prefix=./android/armeabi-v7a \
      --enable-static \
      --enable-pic \
      --disable-asm \
      --disable-opencl \
      --disable-cli \
      --host=arm-linux \
      --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
      --sysroot=$TOOLCHAIN/sysroot \
    
      make clean
      make
      make install
    }
    
    build_armeabi-v7a
    echo build_armeabi-v7a finished
    

    arm64-v8a

    #!/bin/bash
    export NDK=F:/Android/Sdk/ndk-bundle
    export HOST_TAG=windows-x86_64 # adjust to your building host
    export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_TAG
    
    export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang
    export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++
    
    function build_arm64-v8a
    {
      ./configure \
      --prefix=./android/arm64-v8a \
      --enable-static \
      --enable-pic \
      --disable-asm \
      --disable-opencl \
      --disable-cli \
      --host=aarch64-linux \
      --cross-prefix=$TOOLCHAIN/bin/aarch64-linux-android- \
      --sysroot=$TOOLCHAIN/sysroot \
    
      make clean
      make
      make install
    }
    
    build_arm64-v8a
    echo build_arm64-v8a finished
    

    x86

    #!/bin/bash
    export NDK=F:/Android/Sdk/ndk-bundle
    export HOST_TAG=windows-x86_64 # adjust to your building host
    export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_TAG
    
    export CC=$TOOLCHAIN/bin/i686-linux-android18-clang
    export CXX=$TOOLCHAIN/bin/i686-linux-android18-clang++
    
    function build_x86
    {
      ./configure \
      --prefix=./android/x86 \
      --enable-static \
      --enable-pic \
      --disable-asm \
      --disable-opencl \
      --disable-cli \
      --host=i686-linux \
      --cross-prefix=$TOOLCHAIN/bin/i686-linux-android- \
      --sysroot=$TOOLCHAIN/sysroot \
    
      make clean
      make
      make install
    }
    
    build_x86
    echo build_x86 finished
    

    x86_64

    #!/bin/bash
    export NDK=F:/Android/Sdk/ndk-bundle
    export HOST_TAG=windows-x86_64 # adjust to your building host
    export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_TAG
    
    export CC=$TOOLCHAIN/bin/x86_64-linux-android21-clang
    export CXX=$TOOLCHAIN/bin/x86_64-linux-android21-clang++
    
    function build_x86_64
    {
      ./configure \
      --prefix=./android/x86_64 \
      --enable-static \
      --enable-pic \
      --disable-asm \
      --disable-opencl \
      --disable-cli \
      --host=x86_64-linux \
      --cross-prefix=$TOOLCHAIN/bin/x86_64-linux-android- \
      --sysroot=$TOOLCHAIN/sysroot \
    
      make clean
      make
      make install
    }
    
    build_x86_64
    echo build_x86_64 finished
    

    And don't forget to change export variables that i described in armeabi-v7a script.