Voici quelques notes pour compiler android sous gentoo.

Prérequis : installer les paquets nécessaires

cf. les prérequis de la documentation officielle android : il suffit de trouver les paquets équivalents pour gentoo :

# emerge git gnupg
# emerge flex bison gpef libsdl esound wxGTK
# emerge zip unzip curl sys-libs/zlib sys-libs/readline
# emerge valgrind
# emerge "=dev-java/sun-jdk-1.5.0.18"

Choisir la version du Java Development Kit (JDK) 1.5

La version la plus récente de sun-jdk est la 1.6 sous gentoo or celle-ci n'est pas supportée pour compiler android : il faut une version sun-jdk 1.5. Rq : si on essaie de compiler les sources avec sun-jdk-1.6, vous aurez une erreur du type (cf. Issue 985) :

[...]
make: *** No rule to make target `run-java-tool', needed by
`out/target/common/docs/framework-timestamp'. Stop. 

On peut choisir entre 2 méthodes pour indiquer lors de la compilation d'android d'utiliser sun-jdk-1.5

1ère méthode : utiliser la commande : "eselect java-vm"

Sous ubuntu, pour choisir la version de sa jvm, on peut utiliser la commande suivante :

 # update-java-alternatives --set java-1.5.0-sun

La commande équivalente sous gentoo est :

  • pour affecter uniquement l'utilisateur en cours :
$ eselect java-vm set user sun-jdk-1.5
  • ou pour modifier globalement pour tout le système :
# eselect java-vm set system sun-jdk-1.5

Il faut ensuite mettre à jour le fichier /etc/profile grâce à la commande :

$ sudo env-update

... puis se relogger pour prendre en compte les nouveaux paramètres, ou charger manuellement les nouvelles variables d'environnement en tapant en console :

 $ source /etc/profile

Pour vérifier que toutes les liens symboliques et variables d'environnement sont correctement initialisés, voici le résultat sur ma gentoo :

 $ echo $JAVA_HOME
/home/thus0/.gentoo/java-config-2/current-user-vm
 $ echo $JAVAC
/home/thus0/.gentoo/java-config-2/current-user-vm/bin/javac
 $ ls -l /home/thus0/.gentoo/java-config-2/current-user-vm
[...] -> /usr/lib/jvm//sun-jdk-1.5
 $ ls -l /usr/lib/jvm/sun-jdk-1.5
[...] ->  /opt/sun-jdk-1.5.0.18/

Pour rebasculer en sun-jdk-1.6, il faut refaire ces manipulations... ce qui n'est pas pratique ! J'ai utilisé une 2ème méthode : ie. modifier directement les variables d'environnement $JAVA_HOME et $JAVAC et le $PATH ; ce qui est plus rapide à mon avis : les variables d'environnement ne sont modifiées que pour la session en cours...

2ème méthode : modifier directement les variables d'environnement : JAVA_HOME, JAVAC et PATH

Il suffit de créer un script de 3 lignes, par exemple : ~/myandroid/setenv.sh__

export JAVA_HOME=/opt/sun-jdk-1.5.0.18
export PATH=$JAVA_HOME/bin:$PATH
export JAVAC=$JAVA_HOME/bin/javac
# export ANDROID_JAVA_HOME=$JAVA_HOME

Puis avant de lancer la compilation android, appeler ce script via la commande source

 $ cd ~/myandroid
 $ source setenv.sh
 $ make

et voilà, après quelques heures de compilation, vos devriez avoir un android fraichement compilé depuis les sources !

[...]
Generated: (out/target/product/generic/android-info.txt)
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img
Installed file list: out/target/product/generic/installed-files.txt

Logo Android

Documentation

Liens connexes