Sun Studio 12:Fortran 编程指南

3.1.5 make 中的后缀规则

为使 makefile 更易编写,make 将根据目标文件的后缀,使用自身的缺省规则。

缺省规则在文件 /usr/share/lib/make/make.rules 中。在识别缺省的后缀规则时,make 会将 FFLAGS 宏指定的任何标志、-c 标志以及要编译的源文件名都作为参数进行传递。此外,make.rules 文件还使用 FC 宏赋予的名称作为要使用的 Fortran 编译器的名称。

以下示例两次说明了这一规则:


FC = f95
OBJ = pattern.o computepts.o startupcore.o
FFLAGS=–u
pattern: $(OBJ)
      f95 $(OBJ) -lcore95 -lcore -lsunwindow \
      -lpixrect -o pattern
pattern.o: pattern.f commonblock
      f95 $(FFLAGS) -c pattern.f
computepts.o: computepts.f commonblock
startupcore.o: startupcore.f

make 使用缺省规则编译 computepts.fstartupcore.f

.f90 文件存在缺省的后缀规则,这些规则将会调用 f95 编译器。

然而,除非将 FC 宏定义为 f95,否则 .f.F 文件的缺省后缀规则会调用 f77 而非 f95

而且,当前没有为 .f95.F95 文件定义后缀规则,.mod Fortran 95 模块文件将会调用 Modula 编译器。要对此进行补救,需要在调用 make 的目录下为 make.rules 文件创建您自己的本地副本,同时对该文件进行修改,添加 .f95.F95 后缀规则,删除 .mod 的后缀规则。有关详细信息,请参见 make(1S) 手册页。