【问题标题】:Convert MakeFile to command line input or bazel将 MakeFile 转换为命令行输入或 bazel
【发布时间】:2019-05-14 15:55:32
【问题描述】:

我目前正在处理一个项目,该项目特别要求我不要使用 Makefile 来构建所有依赖项,因为他们的整个 repo 使用 bazel 来构建文件。我对 MakeFile 的了解为零。我想知道如何将以下 Makefile 转换为命令行参数,然后我可以将其放入简单的 Python 脚本中。先感谢您!非常感谢您的解决方案!

# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line.
SPHINXOPTS    =
SPHINXBUILD   = sphinx-build
SOURCEDIR     = .
BUILDDIR      = _build

# Put it first so that "make" without argument is like "make help".
help:
    @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
    @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

【问题讨论】:

    标签: python-3.x makefile terminal python-sphinx bazel


    【解决方案1】:

    删除@,然后将为您打印出所有的make命令(@抑制了make对它使用的命令的回显):

    help:
        $(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
    
    %: Makefile
        $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
    

    然后运行 ​​makemake help 并查看 make 使用的确切行...复制/粘贴到脚本中...或显式回显它们:

    help:
        echo $(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
    
    %: Makefile
        echo $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
    

    那么实际上什么都不应该运行,但是它会运行的命令将被打印出来......

    【讨论】:

      【解决方案2】:

      如果执行“make”或“make help”,就会执行:

      sphinx-build -M help . _build
      

      如果您使用任何其他目标调用 Make,例如“make foo”,并且该目标不存在(或者它存在但比Makefile 旧)它将执行:

      sphinx-build -M foo . _build
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-04
        • 1970-01-01
        • 1970-01-01
        • 2015-07-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多