将文件参数传递给子make

时间:2016-06-07 03:56:06

标签: makefile

条件:

  • 将makefile传递给make:make -f ../makefile hi
  • hi目标也会调用make

我需要一种方法将值从-f传播到在hi内运行的sub-make命令。

bye: 
    echo 'whatever'

hi:
    ${MAKE} bye

2 个答案:

答案 0 :(得分:0)

我唯一知道的可能是使用MAKEFILE_LIST变量:

CURR_MAKEFILE:=$(lastword $(MAKEFILE_LIST))

bye: 
    echo 'whatever'

hi:
    +$(MAKE) -f $(CURR_MAKEFILE) bye

但请注意,正如官方文档中所写,该变量记录了所有已解析的makefile,包括include ed文件。在任何包含之前,在makefile的最顶部查询时,变量的值才可靠。

答案 1 :(得分:0)

假设当前目录中没有默认的makefile (大概是你通过-f ../makefile)的原因 如果您调用,示例../makefile将按原样运行 make喜欢:

$ make MAKEFILES=../makefile hi
make bye
make[1]: Entering directory '/home/imk/develop/scrap'
echo 'whatever'
whatever
make[1]: Leaving directory '/home/imk/develop/scrap'

请参阅3.4 The Variable MAKEFILES

如果 是当前目录中的默认makefile,那么这个 方法将导致make读取默认的makefile 阅读../makefile,结果不尽如人意。在这种情况下,请更喜欢@ Dummy00001的答案。