Quindi ho un enorme progetto C esistente che ho inserito nella directory $PROJECT/jni
. Normalmente questo progetto viene eseguito eseguendo uno script configure che crea i Makefile che consente quindi la compilazione del progetto tramite make
.Come incorporare il file make esistente con Android NDK
Questo progetto è piuttosto grande e contiene molte directory contenenti file di origine e file di intestazione.
Suppongo che mi manca una comprensione fondamentale qui di come si suppone che Android.mk
funzioni. Dovrebbe sostituire il configure e il makefile attualmente utilizzato per compilare il progetto? O dovrei incorporare il makefile generato dal mio script di configurazione nello Android.mk
? Gli esempi forniti sono piuttosto banali con solo pochi file sorgente. Il mio elenco jni
sembra più:
jni/
folder1/subfolder1
folder1/subfolder2
folder1/source
folder2/source
.....
foldern/source
configure/
configure/configure.sh
Makefile
Android.mk
I makefile generati sono abbastanza ampia (buona quantità di configurazione e c'è uno in ogni directory) quindi sono poco perso su come avvicinarsi a questo.
EDIT:
Il problema principale è che gli esempi forniti con l'NDK sono esempi banali. Hanno 3-5 file sorgente nella directory jni di livello superiore. Il mio problema è che questo è un progetto enorme con una configurazione complessa con 4 cartelle di primo livello ciascuna con molte sottodirectory. Non posso semplicemente spostare il sorgente nella cartella jni ed eseguire il compilatore ndk.
Sono completamente d'accordo con la tua osservazione. La generazione di 'config.h' da' config.h.in' è impossibile in un ambiente cross-compile. Tuttavia, eseguire la configurazione in modo nativo 'potrebbe possibilmente' funzionare, ma è tutta un'altra bestia :). – Samveen