我有目录
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 .....'
SRCS = $(wildcard functions/*.zwc)
TARGETS = $(SRCS:.zwc=)
all: ${TARGETS}
@echo "DONE"
functions/%: functions/%.zwc
@echo $(notdir $@)