Skip to content

Fails to build from source: buildsystem/compile.sh fails

Description

Trying to build vlc-android from source on a Linux system with current versions of pretty much everything (OpenMandriva Cooker) fails during the buildsystem/compile.sh -l -a arm64-v8a. There are several things that look wrong in compile.sh output:

Building tools
You are ready to build VLC and its contribs
make: *** No rule to make target '.gas'.  Stop.

It then proceeds to download/build gas-preprocessor anyway, so chances are this one is harmless.

Creating makefile...
Bootstrap completed.
make: aarch64-linux-android-gcc: No such file or directory
/bin/sh: line 1: aarch64-linux-android-gcc: command not found
Run "make" to start compilation.

aarch64-linux-android-gcc no longer exists in the NDK. Of course a system wide aarch64-linux-android toolchain can be built, but that is not listed as a dependency for vlc-android anywhere. If I modify my NDK a little by doing cd ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/bin ; ln -s aarch64-linux-android30-clang aarch64-linux-android-gcc, the error message goes away

configure: error: Library libebml >= 1.3.6 libmatroska needed for matroska was not found

This one is odd because the libebml build seemed to succeed earlier, and related files do exist:

$ find . -name libebml*
./vlc/contrib/aarch64-linux-android/lib64/pkgconfig/libebml.pc
./vlc/contrib/aarch64-linux-android/lib64/libebml.a
./vlc/contrib/aarch64-linux-android/include/ebml/c/libebml_t.h
./vlc/contrib/contrib-android-aarch64-linux-android/ebml/libebml.a
./vlc/contrib/contrib-android-aarch64-linux-android/ebml/libebml.pc
./vlc/contrib/contrib-android-aarch64-linux-android/ebml/libebml.proj
./vlc/contrib/contrib-android-aarch64-linux-android/ebml/libebml.pc.in
./vlc/contrib/contrib-android-aarch64-linux-android/ebml/ebml/c/libebml_t.h
./vlc/contrib/tarballs/libebml-1.4.2.tar.xz

I haven't had the time to investigate this yet; probably PKG_CONFIG_PATH isn't being set up correctly to detect the libraries the script built earlier?

Expected behavior

Build succeeds, produces vlc APK

Actual behavior

Build fails

Steps to reproduce

export ANDROID_SDK="/path/to/my/android/sdk/installation"
export ANDROID_NDK=$ANDROID_SDK/ndk/21.4.7075529
buildsystem/compile.sh -l -a arm64-v8a

Context

App version

Tried both master and 3.4.x branches

Android version

11.0

Device model

any

App mode

any

Edited by Bernhard Rosenkraenzer
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information