gnu make put包含路径到make文件中

时间:2012-10-22 06:58:09

标签: makefile gnu-make

我的包含文件使用以下内容引用了许多其他make文件:

  

include Enablers/MSRP/Android.mk

问题是引用所有其他makefile的make文件在子文件夹中很深,或者换句话说,正确的路径类似于:

  

include ../../../../../Enablers/MSRP/Android.mk

为了让我构建我的makefile,我必须添加../../../../ ..来制作搜索路径:

  

ndk-build -I../../../../.. -j8 other params...

(ndk-build是android buildystem上gnu make的包装器,它相当于make build-local.mk其他参数)

那么,我该怎么做才能避免添加../../../../..来制作搜索路径?我可以去makefile并更新所有makefile include语句,但我正在寻找在makefile顶部添加额外include路径的方法。类似的东西:

makeincludepaht += include Enablers/MSRP/Android.mk
include Enablers/MSRP/Android.mk
...

2 个答案:

答案 0 :(得分:3)

将新的包含路径附加到标准搜索路径:

.INCLUDE_DIRS += ../../..

Look at the end of the Special Variables section for the .INCLUDE_DIRS special variable.

答案 1 :(得分:0)

我不熟悉ndk-build,但我有类似的设置。我只是在make中设置一个包含此路径的变量,然后在我的所有包含中使用该变量 makefile:
INCLUDE_TOP=../../../../..
include $(INCLUDE_TOP)/someDir/includes.mk

然后,您还可以在includes.mk中使用INCLUDE_TOP来处理所有路径。通过在那里有条件地设置,通常最好使其默认为某个值 includes.mk:
# will only set if not already set
INCLUDE_TOP ?= ./
HEADERS=$(INCLUDE_TOP)/headers