0

我有一组 *.x 类型的文件,处理会产生一组相应的文件 *.xy(其中每个 *.x 文件产生一个相应的 *.xy 文件)。到目前为止很简单。

我遇到的两个问题是:

  1. *.x 文件集不断变化,因此我不想将它们的名称用作规则的依赖部分中的静态列表。
  2. 我只想处理那些大小大于 0 的 *.x 文件。

目前我使用:

for a in $(find . -iname '*.x' -size +0); do make $a.y; done

它有效,但我更喜欢更清洁,更make-y的解决方案。

在 OS X 10.7.5 上使用 GNU make 3.81。

4

1 回答 1

1

您可以使用函数计算源文件列表shell

SRCFILES := $(shell find . -iname '*.x' -size +0)

OUTFILES := $(SRCFILES:%=%.y)

all: $(OUTFILES)

%.x.y : %.x
        $(CONVERT) -to $@ $<
于 2013-08-15T15:18:44.233 回答