Unix Makefile-从图片生成缩略图

Unix Makefile-从图片生成缩略图,unix,makefile,gnu,Unix,Makefile,Gnu,我正在尝试制作一个Makefile。我有一个文件夹叫图片和一个文件夹叫拇指。在图片中有称为pic1.jpg、pic2.jpg、pic3.jpg等的图片。我想从这些图片制作缩略图,并将它们放在thumbs文件夹中。这就是我尝试过的: infiles = $(wildcard pictures/*.jpg) outfiles = $(subst pictures,thumbs, $(infiles)) all : $(outfiles) convert -thumbnail 100

我正在尝试制作一个Makefile。我有一个文件夹叫图片和一个文件夹叫拇指。在图片中有称为pic1.jpg、pic2.jpg、pic3.jpg等的图片。我想从这些图片制作缩略图,并将它们放在thumbs文件夹中。这就是我尝试过的:

infiles = $(wildcard pictures/*.jpg) 
outfiles = $(subst pictures,thumbs, $(infiles))
all : $(outfiles)
       convert -thumbnail 100 pictures/*.jpg thumbs/*.jpg
有人知道我做错了什么吗?

你的makefile说“这里是如何装箱
all
;当所有
outfile
都是最新的时,就可以制作了”,但你没有说如何创建这些文件

一种更惯用的方法是为每个单独的文件指定一个依赖项,然后Make可以从中获取它。换句话说,假设
all
与您所做的一样依赖于
outfiles
,然后分别指定每个
outfile
如何依赖于其各自的
infle

infiles = $(wildcard pictures/*.jpg) 
outfiles = $(subst pictures,thumbs, $(infiles))

.PHONY: all
all : $(outfiles)

thumbs/%.jpg: pictures/%.jpg
    mkdir -p thumbs
    # Guesswork here; probably update the command
    convert -thumbnail 100 $< $@
infiles=$(通配符图片/*.jpg)
输出文件=$(子图片、拇指、$(填充))
冒牌货:全部
全部:$(外部文件)
拇指/%.jpg:pictures/%.jpg
mkdir-p拇指
#这里的猜测;可能会更新命令
转换-缩略图100$<$@

.PHONY
声明将
all
标记为一个目标名称,而不是一个仅在其不存在或早于其依赖项时才需要生成的文件。

它是如何工作的?目标目录是否存在?它是否已经包含部分或全部这些文件?