build - 从 make 文件中禁用 make 内置规则和变量

我想通过 -r and -R options 禁用内置规则和变量从 make 文件内部到 GNU make。也欢迎其他允许我隐式和透明地执行此操作的解决方案。

我找到了several references使用 MAKEFLAGS ,并且有类似的问题。

最佳答案

禁用内置规则由 writing an empty rule for .SUFFIXES 完成:

.SUFFIXES:

删除内置规则后,我不确定删除内置变量对您的帮助远不止记住自己设置或不使用它们,但您可以使用类似

$(foreach V,
    $(shell make -p -f/dev/null 2>/dev/null | sed -n '/^[^:#= ]* *=/s/ .*//p'),
    $(if $(findstring default,$(origin $V)),$(eval $V=)))

...这无疑是相当疯狂的。如果有一种方法可以从 make 中获取已定义变量的列表(而不是使用另一个 make),那将是可行的。事实上,它并没有比它好多少

CC=
CXX=
# etc, for each likely built-in variable

https://stackoverflow.com/questions/4122831/

相关文章:

c++ - Visual Studio 2013 错误 MS8020 Build tools v14

gcc - 在 CMake 中使用 -isystem 而不是 -I

xcode - 向 Xcode 添加了运行脚本阶段,但没有任何反应

build - 如何将 Autotools 项目转换为 CMake 项目?

java - Maven多模块项目的构建顺序?

visual-studio-2012 - VS 2012 构建 Hello World : "The

xcode - 用于使用最新 sdk 的 xcodebuild 参数。

android - 错误 :Execution failed for task ':android:

eclipse - 什么是最好的 Scala 构建系统?

ios - 使用没有代码设计的 xcodebuild 构建 iOS 应用程序