首页 > 解决方案 > 如何在makefile中阻止“make”命令

问题描述

我写了makefile,它的结构如下

#... Configure basic flags for compiler

.PHONY: mk_mingw
mk_mingw:
# build with mingw(windows)

.PHONY: mk_gcc_linux
mk_gcc_linux:
# build in gcc(linux)

#... some auxiliary unit such as clear, test ...

使用 mingw(windows) 构建时使用以下命令

#command 1
$ make mk_mingw

使用 gcc(Linux) 构建时使用以下命令

#command 2
$ make mk_gcc_linux

我希望以上两个命令在我的项目中是合法的。

mk_gcc_linux 和 mk_mingw 是编译器的环境(我指定)

但以下命令不是:

#command 3
$ make

因为它没有在make命令之后指定编译器的环境。

我想在这种情况(命令 3)发生时报告错误并停止。

如何在我的 makefile 中执行?

标签: makefile

解决方案


默认情况下,make尝试构建第一个目标。所以你可以简单地将它放在你的 Makefile 之上:

.PHONY: first
first:
    @echo Environment not specified!
    @false
# the rest of file is following...

但对我来说,它看起来不太正确。可能,设置一个变量而不是一个专用目标会更好。


推荐阅读