my-dir

my-dir 返回当前makefile所在目录,这个宏返回最后包括的 makefile 的路径,通常是当前 Android.mk 的目录。

my-dir 可用于在 Android.mk 文件开头定义 LOCAL_PATH。例如:

LOCAL_PATH := $(call my-dir)

由于 GNU Make 的工作方式,这个宏实际返回的是构建系统解析构建脚本时包含的最后一个 makefile 的路径。因此,包括其他文件后就不应调用 my-dir

例如:

LOCAL_PATH := (call my-dir)

# ... declare one module

include(LOCAL_PATH)/foo/Android.mk

LOCAL_PATH := $(call my-dir)

# ... declare another module

这里的问题在于,对 my-dir 的第二次调用将 LOCAL_PATH 定义为 $PATH/foo,而不是 $PATH,因为这是其最近的 include 所指向的位置。

Android.mk 文件中的任何其他内容后指定额外的 include 可避免此问题。例如:

LOCAL_PATH := (call my-dir)

# ... declare one module

LOCAL_PATH :=(call my-dir)

# ... declare another module

# extra includes at the end of the Android.mk file
include $(LOCAL_PATH)/foo/Android.mk

如果以这种方式构造文件不可行,请将第一个 my-dir 调用的值保存到另一个变量中。例如:

MY_LOCAL_PATH := (call my-dir)

LOCAL_PATH :=(MY_LOCAL_PATH)

# ... declare one module

include (LOCAL_PATH)/foo/Android.mk

LOCAL_PATH :=(MY_LOCAL_PATH)

# ... declare another module

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Android.mk之函数宏