【问题标题】:Makefile: Run multiple targetsMakefile:运行多个目标
【发布时间】:2019-01-14 22:46:12
【问题描述】:

我想使用 makefile 运行两个目标,但不知道如何从命令行指定目标。

这是我的makefile。

.PHONY: all clean test
PYTHON=python
PYTESTS=pytest

all:
    $(PYTHON) setup.py build_ext --inplace

clean:
    find . -name "*.so" -o -name "*.pyc" -o -name "*.md5" -o -name "*.pyd" | xargs rm -f
    find . -name "*.pyx" -exec ./tools/rm_pyx_c_file.sh {} \;

benchmark_coverage:
    $(PYTESTS) benchmarks --cov=skimage

coverage: test_coverage

test_coverage:
    $(PYTESTS) -o python_functions=test_* skimage --cov=skimage

所以,我主要对coveragebenchmark_coveragetest_coverage 感兴趣。

当我运行命令make coverage 时,它会运行
$(PYTESTS) -o python_functions=test_* skimage --cov=skimage

当我运行 make bench_coverage 时,它运行
$(PYTESTS) benchmarks --cov=skimage

现在,我想同时运行这两个,我该怎么做?

有人建议我make coverage bench_coverage,但它只运行第一个命令。

请帮忙。

谢谢

【问题讨论】:

  • 绝对可以,我做到了。我只是想知道是否有办法做到这一点。

标签: linux makefile


【解决方案1】:

我尝试创建以下 Makefile:

a:
   echo a

b:
   echo b

如果我运行make a b,它会同时运行,因此实际上允许运行多个目标。

【讨论】:

  • 哦,我的错。谢谢@Bitwise。第一个命令导致错误。这就是为什么它没有运行第二个。我改变了顺序,他们两个都跑了。如果一个命令失败,我可以做些什么吗?我想让其他人跑。
  • @AbhishekArya 看这里:stackoverflow.com/questions/2670130/…
  • 使用--keep-going标志
猜你喜欢
  • 1970-01-01
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 2023-01-13
相关资源
最近更新 更多