我想做一个 Makefile 文件,可以在 GNU Make 或 Makepp 中运行,并打包给定目录下的所有文件:
问题在于依赖项中没有“%/*”这样的东西。我需要目标(X.npk)依赖于目录X中的每个文件,但是当我编写Makefile时,我不知道这些文件是什么,因为它们稍后生成。
例如:
DIRS:=$(shell find . -mindepth 2 -maxdepth 2 -not -name mp3 -not -name ".*" -type d)
PACKAGES = $(DIRS:%=%.npk)
all: packages
packages: $(PACKAGES)
%.npk: %/*
npack c $@ @^
.PHONY: all packages
问题在于依赖项中没有“%/*”这样的东西。我需要目标(X.npk)依赖于目录X中的每个文件,但是当我编写Makefile时,我不知道这些文件是什么,因为它们稍后生成。
例如:
./dirA/x
./dirA/y
./dirB/e
./dirB/f
我想创建./dirA.npk(取决于x,y),./dirB.npk(e,f)。 除了第一行中使用的find查找所有目录之外,我事先不知道目录或文件的任何信息。