如何根据平台(Linux 与 OS X)修改 GNU makefile 目标的依赖关系和规则?
我有一个 (GNU) makefile,其所有目标如下所示:
.PHONY: all
all: $(unittest++_tests_exe) $(cmockery_tests_exe)
@echo Running UnitTest++ tests...
@./$(unittest++_tests_exe)
@echo Running Cmockery tests...
@./$(cmockery_tests_exe)
UnitTest++ 测试在 Linux 和 Mac OS X 上运行,而 Cmockery 测试仅在 Linux 上运行。
如何修改依赖项和规则,以便 make all
仅在 Mac OS X 上构建和运行 $(unittest++_tests_exe)
?
I have a (GNU) makefile with an all target that looks like this:
.PHONY: all
all: $(unittest++_tests_exe) $(cmockery_tests_exe)
@echo Running UnitTest++ tests...
@./$(unittest++_tests_exe)
@echo Running Cmockery tests...
@./$(cmockery_tests_exe)
The UnitTest++ tests run on both Linux and Mac OS X, and the Cmockery tests run only on Linux.
How do I modify the dependencies and rules so that make all
only builds and runs $(unittest++_tests_exe)
on Mac OS X?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
TED 的 答案促使我想出以下内容:
它似乎有效,但我欢迎您的建议。
T.E.D.'s answer triggered me to come up with the following:
It seems to work, but I welcome your suggestions.
我相信做到这一点的正确方法是使用像 autoconf 这样的东西。
如果你想破解它,请尝试调用 uname 并将结果放入符号中。然后就可以解析出相关部分
I believe the Right Way to do this is to use something like autoconf.
If you want to hack it, try calling uname and putting the result in a symbol. You can then parse out the relevant parts