shell Makefile:zcompile所有.zwc文件的规则

nr7wwzry  于 2023-03-19  发布在  Shell
关注(0)|答案(1)|浏览(110)

我有functions目录,其中包含zsh函数定义以及每个函数的编译版本:

ls functions/*
functions/foo functions/foo.zwc functions/bar functions/bar.zwc

现在我需要一个make规则,如果文件foo改变,重新编译foo.zwc
我知道如何为每个文件单独指定规则”

functions/foo.zwc: functions/foo
    zsh -c 'zcompile functions/foo.zwc functions/foo'

但是我该如何推广它呢?如果目录中的任何*.zwc文件发生了变化,我将重新编译它。我有一个工作不完全的东西,但是它总是回显所有zwc文件,不管相应的文件是否发生了变化:

file := $(wildcard functions/*.zwc)

$(file): %.zwc: %
    @echo file = $(file)

另外,我如何在zsh命令中使用文件名变量?

zsh -c 'zcompile .....'
ujv3wf0j

ujv3wf0j1#

SRCS = $(wildcard  functions/*.zwc)
TARGETS = $(SRCS:.zwc=)

all: ${TARGETS}
    @echo "DONE"

functions/%: functions/%.zwc
    @echo $(notdir $@)

相关问题