pdh0710
pdh0710

Reputation: 427

GNU-make : generates "Circular ....... dependency dropped" messages

(Please excuse my English)

I'm using GNU-make for compiling typescript codes. GNU-make is more simple and convenient than other similar tools. My original Makefile is below, and it works well.

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

As files to compile are increased, I modified the Makefile like below.

TARGETS=test.js request.js server.js

all: $(TARGETS)

.SECONDEXPANSION:

%: $$(basename $$@).ts
    compiler $(basename $@).ts

clean :
    del $(TARGETS)

The modified Makefile also works well, but generates these messages.

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'.

How can I remove the "Circular ....... dependency dropped" messages?

Upvotes: 1

Views: 204

Answers (1)

MadScientist
MadScientist

Reputation: 100866

Why are you using secondary expansion? This seems like a trivial usage of standard pattern rules, no need for complicated features:

%.js: %.ts
        compiler $<

Upvotes: 3

Related Questions