【发布时间】:2011-03-08 18:37:06
【问题描述】:
我需要 makefile 中的一个变量,它可以在子目录 makefile 之间共享(递归构建策略),最后将它用于一些决策。我之前认为导出是一种方法,但我没有得到想要的结果。
以下是我的生成文件:-
Target.mk(Makefile.mk 和 Subdir.mk 的共同包含) 生成文件.mk 子目录.mk文件:Target.mk
导出 TARGET_PROPERTIES :=
文件:Makefile.mk
-包括目标.mk .PHONY:全部 全部 : $(MAKE) -C $(PWD) -f Subdir.mk all @echo "#--------------------------------------------- --------------#" @echo "目标构建属性" @echo $(TARGET_PROPERTIES) @echo "#--------------------------------------------- --------------#"文件:子目录.mk
-包括目标.mk TARGET_PROPERTIES+=alpha TARGET_PROPERTIES+=测试版 $(警告 $(TARGET_PROPERTIES)) 全部: @echo "Subdir.mk ......[OK]"问题:- 我想要 TARGET_PROPERTIES,从 Subdir.mk 更新并使用 Makefile.mk 中的结果
以下是我的输出
$ make -f Makefile.mk make -C /cygdrive/c/make_pf -f Subdir.mk all make[1]: 进入目录`/cygdrive/c/make_pf' Subdir.mk:8: alpha beta 子目录.mk......[确定] make[1]: 离开目录`/cygdrive/c/make_pf' #------------------------------------------------ ------------# 目标构建属性 #------------------------------------------------ ------------#在 Subdir.mk TARGET_PROPERTIE 更新中,直到这里。
Subdir.mk:8: alpha beta在从“Subdir.mk - 所有目标”返回后的 Makefile.mk 中,它重置为 NULL。 不知道我做错了什么
附:我使用的是cygwin环境。
【问题讨论】: