2011-07-04 10 views
7

Vorrei solo chiedere cosa dovrebbe essere scritto nel file Android.mk per chiamare anche i file mk nelle sottodirectory della directory corrente.

Esempio:
/packages/Android.mk
/package/groupA/Android.mk
/packages/groupA/AppA/Android.mk
/packages/groupA/AppB/Android.mk
Lettura dei file Android.mk in sub-dirs in modo ricorsivo

So che utilizzando include $(call all-subdir-makefiles), verrà letto il file Android.mk nella sottodirectory immediata (esempio: /package/groupA/Android.mk). Tuttavia, /packages/groupA/AppA/Android.mk e /packages/groupA/AppB/Android.mk non verranno letti.

Mi chiedo se c'è un'altra macro che esegue la lettura ricorsiva di Android.mk per tutte le sottodirectory.

Grazie,
artsylar

risposta

9

La soluzione più comoda è mettere include $(call all-subdir-makefiles) comando anche all'interno /package/groupA/Android.mk di file.

Tuttavia, se si desidera solo i file MK-terzo livello, è possibile utilizzare il seguente comando:

include $(wildcard $(call my-dir)/*/*/Android.mk) 

E qui è una soluzione completamente ricorsiva, ma si basa su find comando da shell:

include $(filter-out $(call my-dir)/Android.mk,$(shell find $(call my-dir)/ -type f -name Android.mk)) 
+0

grazie per la risposta. in realtà, l'ho fatto funzionare senza dover scrivere 'include $ (chiama all-subdir-makefiles)' nel file mk. Sembra che ci sia stato un problema nello script che legge tutto il file mk. Proverò la tua risposta prima o poi. So che sarà utile per gli altri. – artsylar

Problemi correlati