Vous avez peut-être trouvé quelque chose qui vous convient maintenant mais j'ai compilé un binaire d'unison qui fonctionne sur Android - c'est possible en utilisant les instructions que vous mentionnez - je les ai utilisées pour faire une compilation croisée des sources linux dans ubuntu 12.10 en utilisant le NDK Android et avec quelques modifications du code cela fonctionne maintenant. Suivez les instructions à l'adresse https://sites.google.com/site/keigoattic/ocaml-on-Android et ensuite vous devrez faire quelques petites choses. Il y a un fichier appelé pty.c dans le source d'unison - trouvez la section suivante :
// openpty
#if defined(__linux)
#include <pty.h>
/*#define HAS_OPENPTY 1*/
#endif
et commentez define HAS_OPENPTY 1
comme indiqué. Vous devez également ouvrir ubase/util.ml et le modifier :
let homeDir () =
System.fspathFromString "/Your path here"
Faites des commentaires à partir d'ici :
(if (osType = `Unix) || isCygwin then
safeGetenv "HOME"
else if osType = `Win32 then
(*We don't want the behavior of Unison to depends on whether it is run
from a Cygwin shell (where HOME is set) or in any other way (where
HOME is usually not set)
try System.getenv "HOME" (* Windows 9x with Cygwin HOME set *)
with Not_found ->
*)
try System.getenv "USERPROFILE" (* Windows NT/2K standard *)
with Not_found ->
try System.getenv "UNISON" (* Use UNISON dir if it is set *)
with Not_found ->
"c:/" (* Default *)
else
assert false (* osType can't be anything else *))
...jusqu'ici !
Ensuite, vous devrez également éditer Makefile.Ocaml
CWD=$(shell pwd)
EXEC_EXT=
WINOBJS=
SYSTEM=generic
# openpty is in the libutil library
ifneq ($(OSARCH),solaris)
ifneq ($(OSARCH),osx)
# CLIBS+=-cclib -lutil
endif
endif
buildexecutable::
@echo Building for Unix
endif
endif
Et commentez # CLIBS+=-cclib -lutil
comme indiqué.
Et pour autant que je m'en souvienne, ça a marché. L'autre étape une fois compilée est de monter votre partition système Android en écriture et de copier unison dans le dossier /system où se trouve le reste des commandes shell.
J'espère que cela aidera quelqu'un... J'ai perdu beaucoup de sommeil à le compiler.