В моем Makefile я хочу выполнить несколько шагов как часть одной цели.Эти шаги должны выполняться последовательно, потому что они зависят друг от друга.Это упрощенный случай:
target:
git archive --remote=some-remote master --format zip -o ./zipfile.zip
echo "$(VARIABLE_IN_MAKE):$(shell unzip -z ./zipfilezip | tail -1)" > ./textfile
$(shell cat ./textfile)
Проблема здесь в том, что команда оболочки - $(shell unzip -z ./zipfilezip | tail -1)
выполняется, как только правило «загружено», т.е. даже до того, как zip-файл существует.Это возвращает ошибки.Команда cat
также раскрывается слишком рано.
Каков правильный способ выполнить подоболочку не раньше, а только после того, как все вышеуказанные шаги завершены?Должен ли я обернуть все команды в вызове bash -c
?Или связать их через &&
?