如何编写一个 Makefile 来区分 Intel OS X 和 Linux?
如何将条件写入 GNU make
Makefile,它可以识别体系结构(在本例中为 Intel OS X 与 Linux),以便我可以适当地设置标志,而不需要最终用户指定运行 make -f
时的 Makefile?
编辑
我应该指定,如果此条件放置在目标之外,则从包含 shell 命令的 ifeq
语句中收到 makefile 错误:
'commands begin before第一个目标。停止。'
How do I write a conditional into a GNU make
Makefile, which discerns the architecture (Intel OS X vs Linux, in this case) so that I can set flags appropriately, without requiring the end user to specify the Makefile when running make -f
?
EDIT
I should specify that I get a makefile error from an ifeq
statement that contains a shell command, if this conditional is placed outside a target:
'commands commence before first target. Stop.'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该能够检查
uname
变体之一的输出,然后根据该结果使用makefile
选择不同的操作。运行
man uname
了解详细信息。就如何在 GNU make 中使用它而言,您可以从
shell
函数将信息获取到变量中,然后对该变量使用ifeq
:You should be able to check the output of one of the
uname
variants, and then choose different actions withing themakefile
depending on that.Run
man uname
for details.In terms of how you use it from GNU make, you can get the information into a variable from the
shell
function and then useifeq
on that variable:uname
是你的朋友。uname
is your friend.