fortran makefile,带有源文件的有序列表

时间:2014-06-14 20:53:08

标签: makefile fortran

我正在尝试创建一个makefile,它将按特定顺序编译源文件。我在.txt文件中订购了源文件名。

1 # compiler
2 FC = gfortran
3 # compile flags
4 FCFLAGS = -g -fbounds-check
5 FCFLAGS = -O2
6 # required for gfortran
7 FCFLAGS += -I/usr/include
8 # source files and objects
9 #SRCS = $(patsubst %.mod, %.o)
10 
11 # program name
12 PROGRAM = madeIt
13 
14 all: $(PROGRAM)
15 
16 $(PROGRAM): $(SRCS)
17     $(FC) $(FCFLAGS) -o $@ $^
18 
19 
20 clean: 
21     rm  *.o *.mod

我创建了一个shell脚本来按顺序编译它们,然后尝试通过makefile链接它们,但我不确定这是最好的方法。

1 #usr/bin/sh
2 
3 # initial cleanup
4 rm *.o *.mod
5 rm oCommand.txt
6 rm oFiles.txt
7 
8 for line in $(cat order.txt); do gfortran -c "$line"; done
9 
10 ls *.o > oFiles.txt
11 
12 for line in $(cat oFiles.txt); do echo -n "$line" >> oCommand.txt; echo -n "
13 
14 cat oFiles.txt | wc -l
15 
16 for i in $(cat oCommand.txt); do gfortran -o madeIt "$i"; done

有什么想法? 我很失落,所以任何帮助都会很棒。

1 个答案:

答案 0 :(得分:4)

忘记shell脚本,并使用makedepf90之类的工具生成一个指定依赖项的makefile片段,以便make知道必须编译哪些文件。

如果您使用GNU make,则可以将该片段包含在主makefile中,否则复制粘贴或类似内容。