我正在尝试编写一个makefile,用于编译包含.f
和.f90
扩展名的源文件的程序。我有编译对象的规则:
%.o: %.f90
$(FC) $(FFLAGS) -c $< -o $(OBJ)/$@
如何扩展它以使用.f
文件?
答案 0 :(得分:5)
您需要有两个单独的规则:一个用于.f
个文件,另一个用于.f90
个文件。例如:
TARGET := a.out
OBJFILES := foo.f bar.f90
OBJ := ./obj
%.o: %.f90
$(FC) $(FFLAGS) -c $< -o $(OBJ)/$@
%.o: %.f
$(FC) $(FFLAGS) -c $< -o $(OBJ)/$@
%(TARGET): $(OBJFILES)
$(FC) $(FFLAGS) -o $@ $(addprefix $(OBJ)/,$(OBJFILES))
或类似的东西应该可以解决问题。