GNU-make : 生成"Circular ....... dependency dropped"消息



(请原谅我的英语(

我正在使用GNU-make来编译打字稿代码。GNU-make 比其他类似的工具更简单、更方便。我的原始Makefile在下面,效果很好。

all: test.js request.js server.js
test.js: test.ts
compiler test.ts
request.js: request.ts
compiler request.ts
server.js: server.ts
compiler server.ts
clean :
del test.js request.js server.js

随着要编译的文件增加,我修改了 Makefile,如下所示。

TARGETS=test.js request.js server.js
all: $(TARGETS)
.SECONDEXPANSION:
%: $$(basename $$@).ts
compiler $(basename $@).ts
clean :
del $(TARGETS)

修改后的生成文件也可以很好地工作,但会生成这些消息。

make: Circular test.ts <- test.ts dependency dropped.
make: Circular request.ts <- request.ts dependency dropped.
make: Circular server.ts <- server.ts dependency dropped.
make: Nothing to be done for 'all'.

如何删除"通告...依赖关系丢弃"消息?

为什么要使用二次扩展? 这似乎是标准模式规则的微不足道的用法,不需要复杂的功能:

%.js: %.ts
compiler $<

最新更新