#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 |
|
来自: Library_MJ > 《makefile》