编译环境:CentOs 7.1 Ubuntu 12.0.4 都可以
交叉编译工具:gcc -4.3.2 (博创6410平台)
问题描述:执行make menuconfig命令的时候,提示Makefile:421: *** 混和的隐含和普通规则。 停止。由于高版本make对Makefile的一些旧规则兼 容不是很好,只需要修改Makefile文件即可。
解决流程:
1. 修改
config %config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include
$(Q)$(MAKE) $(build)=scripts/kconfig $@
$(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
修改为:
config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include
$(Q)$(MAKE) $(build)=scripts/kconfig $@
$(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
%config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include
$(Q)$(MAKE) $(build)=scripts/kconfig $@
$(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
2. 修改
/ %/: prepare scripts FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
修改为:
/: prepare scripts FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
%/: prepare scripts FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
现在就可以正常编译了!