【发布时间】:2018-12-09 16:18:33
【问题描述】:
我想用 make 做以下“东西”:
- 将文件夹中的 .pdf 文件转换为 .txt 文件,但重命名其扩展名
从 .txt 到
.textfile。 - 删除其页码并将其另存为
.nopage文件。 - 将所有 .nopage 文件保存到存档中。档案名称应为
archive.tgz。
我的目标是:textfile、nopage 和 archive。 all 应该和 archive 做同样的事情。
这是我的代码:
SRC=$(wildcard *.pdf)
OBJ=$(SRC:.pdf=.converted)
.PHONY: all archive trimmed converted search-% help clean
.SECONDARY:
help:
@echo "$$helptext"
textfile: $(OBJ)
%.textfile: %.pdf
pdftotext $< $@
nopage: textfile
%.nopage: %.textfile
@cat $< | sed 's/Page [0-9]*//g' > $@
archive: nopage
archive.tgz: %nopage
tar -c --gzip $@ $<
all: archive
使用变量SRC 和OBJ,我收集了所有的.pdf 文件名,以便textfile 可以从“第一个操作”开始,以下目标都依赖于此。
但是,我的 Makefile 在执行textfile 后停止。因此,如果我调用“make nopage”,它只会创建 .textfile 文件并停在那里。后面的目标也一样。
关于如何解决这个问题的任何想法?
【问题讨论】:
标签: makefile dependencies chain targets