分享

MDPSCU中的Makefile文件

 Library_MJ 2019-01-31
#choice compiler and compiling flags 
 !!!#表示注释
export   comp     := pgfortran
!!!comp 为自定义变量,pgfortran是所选择的编译器,“:=”是赋值符,且覆盖之前的值
!!!export的作用是将变量传递给下面的了Makefile,详情查看《makefile export变量
ifeq ($(origin oflags), undefined)  !!! GNU的条件语句ifeq
函数$(origin, ***),查询变量***的状态
export oflags := = -fast -tp sandybridge-64  -Mvect=sse,simd -Minline -Mconcur -Minform=warn -Minfo=accel,inline,intensity,loop,mp,opt,par,vect \
                     -Mcuda=fastmath,cuda8.0,cc2x  !!!说明使用cuda
endif

ifeq ($(origin ConfigName), undefined) 
export ConfigName := Release
endif

export LIBDIRS    := $(MSMPSCUSOR)/LIB/sor/f/  
!!!用一个变量来记录LIB的路径
libnames          := MiniUtilities RandGenerators CudaRanGeneratorC2F LBFGS MATH_LBFGSB MATH90A
!!!libnames记录所有的子文件夹

export LIBDIR0    := $(WORKSPACE)/LIB/
export LIBDIRD    := $(LIBDIR0)$(ConfigName)/
!!!worspace 里的LIB是用来存放编译生成生的中间文件.o文件或者.mod文件      
all:  !!!!伪目标,其功能是编译所有的目标
#the math libs:    !!!MSMPSCUSOR代表分子动力学程序包解压后的文件夹名,如msmpscu-CGWIN-18-11-05
$(MAKE) -f $(MSMPSCUSOR)/LIB/LBFGS.mk
$(MAKE) -f $(MSMPSCUSOR)/LIB/MATH_LBFGSB.mk
$(MAKE) -f $(MSMPSCUSOR)/LIB/MATH90A.mk
$(MAKE) -f $(MSMPSCUSOR)/LIB/MiniUtilities.mk
$(MAKE) -f $(MSMPSCUSOR)/LIB/RandGenerators.mk
$(MAKE) -f $(MSMPSCUSOR)/LIB/CudaRanGeneratorC2F.mk
!!!嵌套执行的Make,《跟我一起Makefile》P28页

############################################
.PHONY: clean   !!!.PHONY伪目标
clean:
$(MAKE) clean -f $(MSMPSCUSOR)/LIB/LBFGS.mk
$(MAKE) clean -f $(MSMPSCUSOR)/LIB/MATH_LBFGSB.mk
$(MAKE) clean -f $(MSMPSCUSOR)/LIB/MATH90A.mk
$(MAKE) clean -f $(MSMPSCUSOR)/LIB/MiniUtilities.mk
$(MAKE) clean -f $(MSMPSCUSOR)/LIB/RandGenerators.mk
$(MAKE) clean -f $(MSMPSCUSOR)/LIB/CudaRanGeneratorC2F.mk

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多