1. 程式人生 > >Android之makefile

Android之makefile

在Android的原始碼中,隨處可見Makefile,那麼Makefile到底是用來幹嘛的呢?其實Makefile和Maven、ANT、Gradle一樣,屬於構建工具,當專案比較龐大的時候,就可以使用makefile來構建專案了

makefile簡介

一個工程中的原始檔不計其數,其按型別、功能、模組分別放在若干個目錄中,Makefile定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要後編譯,哪些檔案需要重新編譯,甚至於進行更復雜的功能操作,因為Makefile就像一個Shell指令碼一樣,其中也可以執行作業系統的命令

之前做C語言筆記的時候就寫過關於Makefile的基本語法,這裡就不再羅嗦了
連結:

C語言之makefile

makefile在Android中的運用

在編譯Android系統的時候,一個make就可以生成,那為何會生成呢?
其實仔細看,Android系統原始碼中,Makefile無處不在,其實整個過程就是Makefile在構建
Makefile在構建時候,make會檢查檔案時候是否被修改,修改參與編譯,沒修改的話就不會編譯

Makefile有一些系統定義的變數和函式

Android常用的指定:

名稱 作用
LOCAL_PATH := $(call my-dir) 呼叫my-dir函式,返回Android.mk檔案所在的目錄,放在第一行,地址當前所在目錄
include file Makefile 可以引入其他的Makefile檔案
include $(CLEAR_VARS) 編譯模組時,清空LOCAL_MODULE等引數
LOCAL_MODULE 模組名稱
LOCAL_SRC_FILES 編譯需要的原始檔
LOCAL_C_INCLUDES 需要的標頭檔案
LOCAL_SHARED_LIBRARIES 編譯需要的動態庫
LOCAL_LDLIBS
連結庫

具體更深入關於Makefile可以參考:《跟我一起寫 Makefile》
無意間發現一篇不錯的部落格,連結:Makefile 使用總結