我正在尝试使用make来跨平台管理我的开发机器。我想检查机器上是否安装了ipython
,如果没有安装它。 ipython
安装的路径在OSX和Linux之间是不同的。
我尝试设置如下变量,但似乎忽略变量(可能超出范围?)。
ifeq ($(UNAME_S),Linux)
IPYTHON_BIN=/usr/bin/ipython
endif
ifeq ($(UNAME_S),Darwin)
IPYTHON_BIN=/usr/local/bin/ipython
endif
ipython: $(IPYTHON_BIN) $(IPYTHON_CONFIG)
$(IPYTHON_BIN):
pip install ipython
还有另一种方法可以实现这一点,还是有另一种简单的解决办法?
答案 0 :(得分:0)
您可能已经省略了尝试指定名称的代码
您的操作系统为UNAME_S
,并且操作错误。或者你可能
我们错误地认为您的操作系统名称是自动生成的
已分配到您环境中的UNAME_S
。
无论如何,你会达到你想要的目标:
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
IPYTHON_BIN:=/usr/bin/ipython
endif
ifeq ($(UNAME_S),Darwin)
IPYTHON_BIN:=/usr/local/bin/ipython
endif
ifndef IPYTHON_BIN
$(error Unknown OS)
endif
...
....
这也会导致make
错误地输出:
*** Unknown OS. Stop
如果您的操作系统不在受支持的设置中。