Makefile";重读「;问题

Makefile";重读「;问题,file,makefile,File,Makefile,因此,我正在构建一个与linux内核Kconfig工作非常相似的makefile系统 也就是说,用户将键入“makemenuconfig”,并创建一个菜单驱动机制来打开/关闭构建模块。很容易,我从Linux和开源软件中偷走了大部分 我唯一的问题是重新读取新创建的.config文件 因此,“make menuconfig”执行以下操作: .PHONY:menuconfig menuconfig:${SCRIPTS\u DIR}/config/mconf check\u config${TOP}/g

因此,我正在构建一个与linux内核Kconfig工作非常相似的makefile系统

也就是说,用户将键入“makemenuconfig”,并创建一个菜单驱动机制来打开/关闭构建模块。很容易,我从Linux和开源软件中偷走了大部分

我唯一的问题是重新读取新创建的.config文件

因此,“make menuconfig”执行以下操作:

.PHONY:menuconfig
menuconfig:${SCRIPTS\u DIR}/config/mconf check\u config${TOP}/gnet.kconfig
@${SCRIPTS_DIR}/config/mconf gnet.kconfig

${SCRIPTS\u DIR}/config/mconf使用gnet.kconfig作为起始配置,然后在${TOP}目录中创建一个.config文件

我想做的是重新评估.config,以便从中获取一些参数,并知道用户是否更改了任何重要的内容

我试过以下方法,但运气不太好

.config:menuconfig
cp.config默认配置/arm配置

像那样的。。但是.config是旧的,不是新的

我希望我解释得足够好

谢谢。
-stv

正如Beta所指出的,您遗漏了一些相关内容。目标
.config
menuconfig
的关系如何?这两个人甚至有关系吗?您确定第二个配方已执行吗?
运行
make menuconfig
时,目标
menuconfig
将成为make尝试更新的最终目标。由于它是一个虚假的目标,它的配方将始终被执行。在此之前,请检查其依赖项是否存在并且是最新的。正如我所说,您没有显示目标
menuconfig
.config
之间的链接,那么是什么导致执行
.config
的配方呢

在一个相关的问题上,你的规则没有说实话。显示的第一条规则创建文件
.config
,因此该文件应位于该规则的目标列表中。您的第二条规则取决于该文件的存在,因此它应该在这里的依赖项中,然后创建一个文件
default config/arm config
,因此它应该是该规则的目标

.PHONY: menuconfig menuconfig .config: ${SCRIPTS_DIR}/config/mconf check_config ${TOP}/gnet.kconfig @${SCRIPTS_DIR}/config/mconf gnet.kconfig .冒牌货:menuconfig menuconfig.config:${SCRIPTS\u DIR}/config/mconf check\u config${TOP}/gnet.kconfig @${SCRIPTS_DIR}/config/mconf gnet.kconfig 默认配置/arm配置:.config cp.config默认配置/arm配置
正如Beta所指出的,您遗漏了一些相关的内容。目标
.config
menuconfig
的关系如何?这两个人甚至有关系吗?您确定第二个配方已执行吗?
运行
make menuconfig
时,目标
menuconfig
将成为make尝试更新的最终目标。由于它是一个虚假的目标,它的配方将始终被执行。在此之前,请检查其依赖项是否存在并且是最新的。正如我所说,您没有显示目标
menuconfig
.config
之间的链接,那么是什么导致执行
.config
的配方呢

在一个相关的问题上,你的规则没有说实话。显示的第一条规则创建文件
.config
,因此该文件应位于该规则的目标列表中。您的第二条规则取决于该文件的存在,因此它应该在这里的依赖项中,然后创建一个文件
default config/arm config
,因此它应该是该规则的目标

.PHONY: menuconfig menuconfig .config: ${SCRIPTS_DIR}/config/mconf check_config ${TOP}/gnet.kconfig @${SCRIPTS_DIR}/config/mconf gnet.kconfig .冒牌货:menuconfig menuconfig.config:${SCRIPTS\u DIR}/config/mconf check\u config${TOP}/gnet.kconfig @${SCRIPTS_DIR}/config/mconf gnet.kconfig 默认配置/arm配置:.config cp.config默认配置/arm配置
这应该行得通;我怀疑你漏掉了什么。您使用的Make版本是什么,它产生了什么输出?这应该可以工作;我怀疑你漏掉了什么。您使用的Make版本是什么?它产生了什么输出?我想Steve可能正在运行
Make.config
。在这种情况下,我的回答的第二部分仍然有效(当然,除非我误解了他在做什么)。我补充回答我的问题,因为它太长了。:)好极了他们不断删除我的回复。。我猜我不够简洁或者不够好。。我会想办法的。。感谢Beta版和Eriktouse版的回复,我想Steve可能正在运行
make.config
。在这种情况下,我的回答的第二部分仍然有效(当然,除非我误解了他在做什么)。我补充回答我的问题,因为它太长了。:)好极了他们不断删除我的回复。。我猜我不够简洁或者不够好。。我会想办法的。。感谢您的回复Beta和eriktous