2011-07-04 44 views
7

Tôi chỉ muốn hỏi nội dung cần được ghi trong tệp Android.mk để gọi các tệp mk trong các thư mục con của thư mục hiện tại.

Ví dụ:
/packages/Android.mk
/package/groupA/Android.mk
/packages/groupA/AppA/Android.mk
/packages/groupA/AppB/Android.mk
Đọc các tệp Android.mk trong thư mục con đệ quy

Tôi biết rằng bằng cách sử dụng include $(call all-subdir-makefiles), tệp Android.mk trong thư mục con ngay lập tức sẽ được đọc (ví dụ: /package/groupA/Android.mk). Tuy nhiên, /packages/groupA/AppA/Android.mk và /packages/groupA/AppB/Android.mk sẽ không được đọc.

Tôi tự hỏi nếu có macro khác thực hiện việc đọc đệ quy của Android.mk cho tất cả các thư mục con.

Cảm ơn,
artsylar

Trả lời

9

Các giải pháp thuận tiện nhất là đưa include $(call all-subdir-makefiles) lệnh cũng bên /package/groupA/Android.mk tập tin.

Tuy nhiên, nếu bạn muốn chỉ file mk cấp ba thì bạn có thể sử dụng lệnh sau:

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

Và đây là một giải pháp hoàn toàn đệ quy, nhưng nó dựa trên find lệnh từ vỏ:

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

cảm ơn câu trả lời của bạn. trên thực tế, tôi đã làm việc đó mà không cần phải viết 'include $ (gọi all-subdir-makefiles)' trong tệp mk. Có vẻ như đã xảy ra sự cố trong tập lệnh đọc tất cả tệp mk. Tôi sẽ cố gắng trả lời của bạn đôi khi. Tôi biết nó sẽ hữu ích cho người khác. – artsylar

Các vấn đề liên quan