我如何检查是否存在某个目录然后在makefile中执行

时间:2015-07-02 05:26:35

标签: linux makefile

我的 Makefile




  venv:
 virtualenv / var / www / env&& source / var / www / env / bin / activate
  




但我只想这样做 / var / www / env 不存在





我该怎么做




1 个答案:

答案 0 :(得分:0)

不幸的是,make规则不支持负面条件。

常见的解决方法是使用虚拟文件来标记条件;在这种情况下,您可能会有类似

的内容
var-www-env-does-not-exist:
    if [ -d /var/www/env ]; then touch $@; else rm -f $@; exit 1; fi

venv: var-www-env-does-not-exist /var/www/env/bin/activate
    virtualenv /var/www/env && source /var/www/env/bin/activate

另一个想法是编写并调用调用virtualenv的脚本,但也正确处理现有/var/www/env的情况。