Android.mk超全詳細用法


Android.mkはAndroidが提供するmakefileファイルで、コンパイル生成soライブラリ名、実行可能binファイル、jarパッケージ、apkなどの指定に使用されます.
 
最も簡単なAndroid.mk
 
 
LOCAL_PATH := $(call my-dir) #             include $(CLEAR_VARS)#         LOCAL_MODULE:= test1 #          LOCAL_SRC_FILES := test1.c #            include $(BUILD_EXECUTABLE) #            

 
 

いくつかの一般的な使い方を紹介します
 
 
1.1、マルチソースコーディング
方法1:複数を直接参照する.cファイル
 
LOCAL_SRC_FILES := test1.c\
                   test2.c\
                   test3.c\

方法2:システムが提供する関数処理を使用する
 
1.2、複数のターゲットファイルのコンパイル
 
 
LOCAL_PATH := $(call my-dir) #             include $(CLEAR_VARS)#         LOCAL_MODULE:= test1 #          LOCAL_SRC_FILES := test1.c #            include $(BUILD_EXECUTABLE) #            
include $(CLEAR_VARS)#        

LOCAL_MODULE:= test2    #         

LOCAL_SRC_FILES := test2.c    #           

include $(BUILD_EXECUTABLE) #            

 
 

 
 
 
1.3、動的ライブラリ、静的ライブラリのコンパイル
 
      :
	        BUILD_SHARED_LIBRARY
     :
	        BUILD_STATIC_LIBRARY

 
1.4.jarパッケージのコンパイル、APK
コンパイルapk
  LOCAL_PATH := $(call my-dir)
  include $(CLEAR_VARS)
  LOCAL_SRC_FILES := $(call all-subdir-java-files)
  LOCAL_PACKAGE_NAME := LocalPackage
  include $(BUILD_PACKAGE)

 
jarパッケージのコンパイル
 
  LOCAL_PATH := $(call my-dir)
  include $(CLEAR_VARS)
  LOCAL_SRC_FILES := $(call all-subdir-java-files)
  LOCAL_MODULE := com.test.myjar
  include $(BUILD_STATIC_JAVA_LIBRARY):     jar 
  include $(BUILD_JAVA_LIBRARY):      jar 


1.5、Android.mkにおける判断文
 
ifeq($(VALUE), x)	#ifneq
  do_yes
else
  do_no
endif

ifeq/ifneq: