- Main函数在哪里? 对Makfile文件不是特别熟悉了解, 代码发布者把makefile文件写得很有层次感, 很嵌套,让人找起来很费时, 刚开始看到复杂的Makefile文件一脸懵逼. 觉得随便找找看可能更方便, 然而linpack中的HPL中生成的可执行文件为xphl, 别说同名的就类似的.c文件都没有, 作为一个习惯了在上层高级语言编程,习惯了使用IDE的老一代C#码农来说, linux下的C开发缺少类似的项目管理工具, 很不适应.
返回头来, 从Makefile 文件中,发现hpl目录下有两个makefile文件,一个是Make.top, 另一个是Make.test, 即我们之前编辑的arch架构为test的对应文件. 其中在前者中
include了后者, 所以后者中定义的变量, 在前者也是可见的.
而在Makefile中通过make –f 的方式,指定make指令执行的哪一个makefile文件。
你看,你看,这里用的是Make.top
总体看就是make时,Makefile->Make.top->Make.test
这套的,你只能感觉:嗯……逻辑层次很强,
Makefile.test文件中定义了一些后面会用到的变量: 如目标架构名称:
HPL相关的各种路径 :
MPI的相关路径 :
数学库BLAS的路径:
编译器的路径:
2. Make的 command是:make arch=test
这里的arch=test实际上是给变量arch赋值为test,会作用到Makefile中,因为Makefile文件中有用到这个arch变量。
这里的install依赖 startup refresh build 三项。
而startup由之后的命令生成。Make –f命令后指定了执行的是Make.top文件中的
Startup_dir 项,并且参数项
将arch的值传递到Make.top中的arch中那么我们现在转到Make.top中的
项,如下:
意为在创建相关的文件夹路径,包括在include下创建test目录,创建lib目录并在lib目录下创建test目录,创建bin目录,并在bin目录下创建test目录。
接下来是
刚开始不明白leaf是什么意思,以为是make相关命令还是什么,楞查也没查到,在Make.top文件后面发现