如何编写一个可以说明英特尔OS X和Linux之间差异的Makefile?

如何在GNU make Makefile中编写一个条件语句(在这里是Intel OS X vs Linux),以便我可以正确设置标志,而不需要最终用户在运行make -f时指定Makefile?

编辑

我应该指定从包含shell命令的ifeq语句中得到makefile错误,如果这个条件放在目标之外的话:

'commands commence before first target. Stop.'

您应该能够检查其中一个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 

uname是你的朋友。

 $ uname -o GNU/Linux