在我的makefile中,我想做这样的事情:
all: foo bar python
python:
if /usr/bin/someprogram
do some stuff
else
echo "not doing some stuff, coz someprogram ain't there"
endif
实现这一目标的最简单方法是什么?
答案 0 :(得分:5)
一种简单的方法是使用test
:
python:
@test -s /usr/bin/someprogram && echo "someprogram exists" || echo "someprogram does not exist"
@test -s /bin/ls && echo "ls exists" || echo "ls does not exist"
正如@MadScientist所说,如果你想做多件事,你可能需要一个if语句:
python:
if [ -s /bin/ls ]; then \
echo "ls exists"; \
fi;
答案 1 :(得分:2)
您可以使用'if'和'shell'make函数:
all: foo bar python
CMD=/some/missing/command
foo:
echo "foo"
bar:
echo "bar"
python:
$(if $(shell $(CMD) 2>/dev/null), \
echo "yes", \
echo "no")
这回声'不'。如果将CMD更改为/ bin / ls,则回显“是”。