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

问题描述 投票:0回答:1

我有目录

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 .....'
shell makefile zsh
1个回答
0
投票
SRCS = $(wildcard  functions/*.zwc)
TARGETS = $(SRCS:.zwc=)

all: ${TARGETS}
    @echo "DONE"

functions/%: functions/%.zwc
    @echo $(notdir $@)
© www.soinside.com 2019 - 2024. All rights reserved.