Конвертировать MakeFile в командную строку или базу

В настоящее время я работаю над проектом, который конкретно просит меня не использовать Makefile для построения всех зависимостей, потому что вместо этого весь репозиторий использует 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)

Всего 2 ответа


Если вы выполните «make» или «make help», он выполнит:

sphinx-build -M help . _build

Если вы вызываете Make с любой другой целью, например, «make foo», и эта цель не существует (или существует, но старше, чем Makefile ), она выполнит:

sphinx-build -M foo . _build

удалите @ и тогда все команды make будут распечатаны для вас ( @ подавляет команду make, повторяя команды, которые она использует):

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

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

Затем запустите make или make help и просмотрите точные строки, которые использует make ... скопируйте / past в скрипт ... или явным образом отобразите их вместо:

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

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

Тогда на самом деле ничего не должно запускаться, но команды, которые он запускает, будут напечатаны ...


Есть идеи?

10000