daily build "X86" without mp3 ogg zlib flac suppor

Subforum for discussion and help with ScummVM's Android port

Moderator: ScummVM Team

Post Reply
moturimi
Posts: 9
Joined: Mon Oct 09, 2006 8:52 pm

daily build "X86" without mp3 ogg zlib flac suppor

Post by moturimi »

Is there a reason why the daily X86 optimized build has not been compiled with zlib, mp3 or any other sound compression support?
digitall
ScummVM Developer
Posts: 1177
Joined: Thu Aug 02, 2012 1:40 pm

Post by digitall »

Firstly, I assume you are referring to the buildbot nightly development build for android-x86:
http://buildbot.scummvm.org/snapshots/m ... latest.zip

This isn't "optimised" for x86. We use native code via the Android NDK and thus the previous Android releases would only run on ARM devices... which is most of the deployed Android devices.

I have added the MIPS and x86 builders to the buildbot only very recently as an experimental support for MIPS and x86 Android devices... thus this is very experimental i.e. Your mileage may vary. Please bear this in mind when using these builds.

As for the missing libraries, I have yet to compile the 3rd party libraries for the MIPS and x86 builders and thus they are not present. I will get to this in the next few days... hopefully.
moturimi
Posts: 9
Joined: Mon Oct 09, 2006 8:52 pm

Post by moturimi »

Thank you for the extensive explanation!
Sir^Knigget
Posts: 3
Joined: Sun Dec 09, 2012 3:59 pm

Post by Sir^Knigget »

Hi digitall, are there any updates regarding libmad \ libvorbisidec support in the x86 build?

If it's done, I would appreciate if you share the static libs that you compiled for x86 Android (libmad.a and libvorbisidec.a).

Thanks!
digitall
ScummVM Developer
Posts: 1177
Joined: Thu Aug 02, 2012 1:40 pm

Post by digitall »

There are no updates currently. I will get to fixing this when I have some time.

I do not intend to share the compiled static libraries as I don't think it is a good idea as it encourages pinning on a specific version as a binary dependency.

I will instead ensure that the Android compilation pages have sufficient instructions for compiling these libraries from source with the NDK and any extra patches needed. This will allow rebuilding with newer releases of the libraries.
digitall
ScummVM Developer
Posts: 1177
Joined: Thu Aug 02, 2012 1:40 pm

Post by digitall »

Have compiled the optional libraries for the MIPS and x86 Android builders, apart from fluidsynth, FLAC and libMPEG2.

I have used the normal libvorbis, rather than Tremor (integer fixed-point libvorbis).

This did not require anything too special. Just the normal cross compilation using the correct CC, LD, AS etc. and the right combination of parameters to the configure script of --host, --build and --target, with a bit of work on PKG_CONFIG_PATH and --prefix to get things picked up from the right location and placed into the right place.

As I can't test the resulting builds as I lack a MIPS or x86 Android device, I can't verify if the resulting builds are good, hence this remains highly experimental. Your mileage may vary.
Sir^Knigget
Posts: 3
Joined: Sun Dec 09, 2012 3:59 pm

Post by Sir^Knigget »

On what platform did you compile them?

I remember attempting to use the Android instructions on Mac OS X (a year ago), and they plainly failed to work, No matter how I tried to adjust them.
digitall
ScummVM Developer
Posts: 1177
Joined: Thu Aug 02, 2012 1:40 pm

Post by digitall »

Debian Linux. If you are having trouble using your OS, then I'd suggest doing the cross compilation in a VM using this.

The compilation instructions on the wiki are generally slightly out of date, especially with regards to building the optional library dependencies, but are better than nothing.

They should be taken as a guide covering any specific pitfalls, options needed and patches to the upstream required.

It is best to exercise some skill and judgement when following them, checking the wiki history for how old they are and exercising some judgement i.e. For SDL based ports, it is best to use the latest release of libSDL, rather than a specific version listed in the instructions... however the API has changed in v1.3 / v2.0 and has broken a number of v1.2 features, so we are pinned on the latest v1.2 API and releases for _MOST_ ports... except those where this has breakage or support for that platform was dropped... or the ones where they use v1.3 SVN releases prior to the drop of the API for newer platforms not present in v1.2, but before the point in SVN where the API was removed.
digitall
ScummVM Developer
Posts: 1177
Joined: Thu Aug 02, 2012 1:40 pm

Post by digitall »

A good example here with Android is that these instructions are intended for ARM only where the platform API targetted is version 4.

For MIPS and x86, you will need to target this to platform API 9... simply as support for MIPS and x86 does not _exist_ in earlier platforms.

So --sysroot=$ANDROID_NDK/platforms/android-4/arch-arm becomes --sysroot=$ANDROID_NDK/platforms/android-9/arch-x86 and so on...

The best references here would be for you to read the ScummVM configure, specifically the commits where I added the support for MIPS and x86 as that will show the changes necessary to GCC/binutils invocations needed to support this. The buildbot's master configuration file also shows how the toolchain environment is set up for this. Some extension is needed for the autotools/configure/Makefiles used by the various thirdparty library projects..

If you are familar with Unix shell code, makefiles and Python then reading these and sorting out the invocations for your local enivronment should be fairly easy.
Post Reply