Я использую Makefiles.
Однако есть команда (zsh сценарий), я хочу выполненный, прежде чем любые цели будут выполнены. Как я делаю это?
Спасибо!
Существует несколько методов для выполнения кода до того, как созданы цели. Какой из них вы должны выбрать немного, зависит от именно то, что вы хотите сделать, и почему вы хотите это сделать. (Что делает сценарий ZSH? Почему вы должны его выполнить?)
Вы можете понравиться, как @john предлагает; Размещение скрипта ZSH в качестве первой зависимости. Затем вы должны отметить цель ZSH
ZSH , как .phony
, если он фактически не генерирует файл с именем ZSH
.
Другое решение (в GNU, как минимум) состоит в том, чтобы вызвать функцию $ (Shell ...)
$ (Shell ...)
как часть назначения переменного:
ZSH_RESULT:=$(shell zsh myscript.zsh)
Это выполнит скрипт, как только Makefile анализируется, а до выполняется любой цели. Он также выполнит скрипт, если вы вызываете Makefile рекурсивно.
Просто сделайте, что зависимость одной из других целей
foo.obj : zsh foo.c
rule for compileing foo.c
zsh:
rule for running zsh script.
или, альтернативно, сделайте вашу первую целевую целевую цену, зависящее от него
goal: zsh foo.exe