Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vouillon/ocaml-android

Ocaml cross-compiler for Android
https://github.com/vouillon/ocaml-android

Last synced: 4 months ago
JSON representation

Ocaml cross-compiler for Android

Awesome Lists containing this project

README

        

ocaml-android
=============

Ocaml cross-compiler for Android.

On a 64bit Debian or Ubuntu installation, you need to install package
`gcc-multilib`: we have to build 32 bit OCaml binaries when targeting
32 bit architectures.

Follow the following steps to compile:
- download the Android NDK and the OCaml source code;
- edit `Makefile.config`;
- run `make`.

For convenience, binaries (`ocamlc`, `ocamlopt`, ...) are put both in
`$ANDROID_BINDIR`
prefixed by `arm-linux-androideabi-`, and in
`$ANDROID_BINDIR/arm-linux-androideabi`
unprefixed.
The Android OCaml runtime `ocamlrun` is in directory
`$ANDROID_PREFIX/bin/`.

There are a few pitfalls regarding bytecode programs. First, if you
link them without the `-custom` directive, you will need to use
`ocamlrun` explicitly to run them. Second, the `ocamlmklib` command
produces shared libraries `dll*.so` which are not usable. Thus, you
need to use the `-custom` directive to successfully link bytecode
programs that uses libraries with mixed C / OCaml code. Shared
libraries should eventually be disabled, but at the moment, the
`ocamlbuild` plugin of `oasis` requires them to be created.

Many thanks to Keigo Imai for his OCaml 3.12 cross-compiler patches.