GNU-make: генерирует сообщения "Circular .......

(Прошу прощения за мой английский)

Я использую 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)

Модифицированный Makefile также хорошо работает, но генерирует эти сообщения.

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

Как я могу удалить сообщения "Circular .......

1 ответ

Почему вы используете вторичное расширение? Это похоже на тривиальное использование стандартных шаблонных правил, нет необходимости в сложных функциях:

%.js: %.ts
        compiler $<
Другие вопросы по тегам