2012-11-14 37 views
1

什么是GNU-Make测试系统是Unix还是Windows,可以在Unix和Windows上运行?Unix与Windows的GNU-Make测试

例如,如果shell命令foo总是在窗口等于bizz在UNIX和buzz,我能得到与我的makefile以下这种效果:

IS_UNIX := $(shell foo) 

ifeq "$(IS_UNIX)" "bizz" 
BUILD_ARCH := UNIX 
else 
BULID_ARCH := WINNT 
endif 

可以为foo充当什么命令?

+2

您是否尝试过[UNAME(http://en.wikipedia.org/wiki/Uname)? – Beta

+0

对于Win-XP中的我,未定义uname:''uname'不被识别为内部或外部命令,可操作的程序或批处理文件。'# – WilliamKF

+0

它看起来像在Windows上,你可以使用ver而不是' uname'。是否有测试来查看是否定义了可从Windows移植到Unix的命令? – WilliamKF

回答

1

这对我的作品(foo == ver):

IS_WINNT := $(shell ver) 

ifeq "$(IS_WINNT)" "" 
BUILD_ARCH := UNIX 
else 
BULID_ARCH := WINNT 
endif