#choice compiler and compiling flags ?。?!#表示注釋 export comp := pgfortran !?。omp 為自定義變量,pgfortran是所選擇的編譯器,“:=”是賦值符,且覆蓋之前的值 ?。。xport的作用是將變量傳遞給下面的了Makefile,詳情查看《makefile export變量》 ifeq ($(origin oflags), undefined) !?。?GNU的條件語句ifeq 函數(shù)$(origin, ***),查詢變量***的狀態(tài) 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/ ?。?!用一個(gè)變量來記錄LIB的路徑 libnames := MiniUtilities RandGenerators CudaRanGeneratorC2F LBFGS MATH_LBFGSB MATH90A !??!libnames記錄所有的子文件夾 export LIBDIR0 := $(WORKSPACE)/LIB/ export LIBDIRD := $(LIBDIR0)$(ConfigName)/ ?。?!worspace 里的LIB是用來存放編譯生成生的中間文件.o文件或者.mod文件 all: ?。。。文繕?biāo),其功能是編譯所有的目標(biāo) #the math libs: ?。?!MSMPSCUSOR代表分子動(dòng)力學(xué)程序包解壓后的文件夾名,如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 ?。?!嵌套執(zhí)行的Make,《跟我一起Makefile》P28頁 ############################################ .PHONY: clean !?。?PHONY偽目標(biāo) 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 |
|