В моей Makefile
У меня есть правило для компиляции исходных файлов на Fortran, как иWildcard в шаблонное правило
.SUFFIXES:
%.o: %.[fF]
$(FC) $(FFLAGS) -c $< -o [email protected]
Это работало отлично на нескольких машинах. Когда я попробовал это на другой машине (кстати, с новее (GNU) make
, 3,82 вместо 3,81), это не сработало, и мне пришлось заменить его двумя отдельными правилами для .f
и .F
.
Подстановочный работает без %
, то есть это работает:
.SUFFIXES:
test.o: test.[fF]
$(FC) $(FFLAGS) -c $< -o [email protected]
Что происходит?
Вы уверены, что работали и не были только встроенными правилами, выполняющими то, что вы ожидали раньше? –
Да, '.SUFFIXES:' отключает их. – xebtl
.SUFFIXES отключает правила суффикса старого стиля, а не правила шаблонов. Существуют также правила шаблонов по умолчанию для этих пар, и они все равно будут активны даже с '.SUFFIXES:', как вы полагаете. –