1. 程式人生 > >Android.mk 檔案語法大全

Android.mk 檔案語法大全


講解如下:
LOCAL_PATH := $(call my-dir) 
每個Android.mk檔案必須以定義LOCAL_PATH為開始。它用於在開發tree中查詢原始檔。
巨集my-dir 則由Build System提供。返回包含Android.mk的目錄路徑。

include $(CLEAR_VARS)
CLEAR_VARS 變數由Build System提供。並指向一個指定的GNU Makefile,由它負責清理很多LOCAL_xxx.
例如:LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES等等。但不清理LOCAL_PATH. 這個清理動作是必須的,因為所有的編譯控制檔案由同一個GNU Make解析和執行,其變數是全域性的。所以清理後才能避免相互影響。


LOCAL_MODULE    := hello-jni 
LOCAL_MODULE模組必須定義,以表示Android.mk中的每一個模組。名字必須唯一且不包含空格。Build System會自動新增適當的字首和字尾。例如,foo,要產生動態庫,則生成libfoo.so.
但請注意:如果模組名被定為:libfoo.則生成libfoo.so. 不再加字首。

LOCAL_SRC_FILES := hello-jni.c 
LOCAL_SRC_FILES變數必須包含將要打包如模組的C/C++ 原始碼。不必列出標頭檔案,build System 會自動幫我們找出依賴檔案。
預設的C++原始碼的副檔名為.cpp. 也可以修改,通過
LOCAL_CPP_EXTENSION。


include $(BUILD_SHARED_LIBRARY) 
BUILD_SHARED_LIBRARY:是Build System提供的一個變數,指向一個GNU Makefile Script。它負責收集自從上次呼叫 include $(CLEAR_VARS)後的所有LOCAL_XXX資訊。並決定編譯為什麼。