如何将条件写入GNU make
Makefile,它可以识别架构(在这种情况下是Intel OS X vs Linux),这样我就可以适当地设置标志,而无需最终用户指定运行make -f
时的Makefile?
修改
如果此条件位于目标之外,我应该指定从包含shell命令的ifeq
语句中获取makefile错误:
'commands commence before first target. Stop.'
答案 0 :(得分:10)
您应该能够检查其中一个uname
变体的输出,然后根据具体情况选择makefile
的不同操作。
运行man uname
了解详情。
就如何在GNU make中使用它而言,您可以将信息从shell
函数转换为变量,然后对该变量使用ifeq
:
platform=$(shell uname -o)
ifeq ($(platform),Cygwin)
defrule:
echo I am running in Cygwin.
else
defrule:
echo I am running elsewhere.
endif
答案 1 :(得分:1)
uname
是你的朋友。
$ uname -o
GNU/Linux