Es posible que haya encontrado algo con lo que está contento ahora, pero he compilado un binario de unísono que funciona en Android (es posible utilizando las instrucciones de agitación manual de las que está hablando). Las utilicé para compilar de forma cruzada la fuente de Linux en ubuntu 12.10 usando el NDK de Android y con algunas modificaciones al código, ahora está funcionando. Siga las instrucciones en https://sites.google.com/site/keigoattic/ocaml-on-android y luego deberá hacer algunas cosas. Hay un archivo llamado pty.c en la fuente al unísono; busque la siguiente sección:
// openpty
#if defined(__linux)
#include <pty.h>
/*#define HAS_OPENPTY 1*/
#endif
y comentar define HAS_OPENPTY 1
como se muestra. También necesita abrir ubase / util.ml y editar:
let homeDir () =
System.fspathFromString "/Your path here"
Comenta desde aquí:
(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 *))
...¡Hacia aqui!
Entonces también tendrás que editar 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
Y comente # CLIBS+=-cclib -lutil
como se muestra.
Y hasta donde puedo recordar, todo funcionó. El otro paso una vez compilado es montar la partición de su sistema Android como editable y copiar al unísono a la carpeta / system donde se encuentran todos los demás comandos de shell.
Espero que sea útil para alguien ... Perdí mucho sueño compilándolo.