#Makefile for liblammpscuda.a #No need to modify anything here! The CUDA path is inserted into Makefile.common .DEFAULT: lib COMPILELIB := 1 SHELL = /bin/sh CUDA_SRC_DIR = ../cuda CUDA_TEMP = $(CUDA_SRC_DIR)/.lastmake CUDA_TEMP_DUMMY := $(shell touch $(CUDA_TEMP) ) include $(CUDA_TEMP) CUDA_CU = $(wildcard $(CUDA_SRC_DIR)/*_kernel.cu) CUDA_CUO = $(CUDA_CU:_kernel.cu=_cu.o) CUDA_OBJ = $(subst $(CUDA_SRC_DIR)/,,$(CUDA_CUO)) CUDA_DEP = $(CUDA_OBJ:.o=.d) NVCC_FLAGS := VPATH = $(CUDA_SRC_DIR) #rewriting default settings if new ones are specified ifdef precision tmp := $(shell sed -i 's|precision ?= [0-9]|precision ?= '${precision}'|g' Makefile.defaults) endif ifdef arch tmp := $(shell sed -i 's|arch ?= [0-9][0-9]|arch ?= '${arch}'|g' Makefile.defaults) endif ifdef cufft tmp := $(shell sed -i 's|cufft ?= [0-9]|cufft ?= '${cufft}'|g' Makefile.defaults) endif ifdef dbg tmp := $(shell sed -i 's|dbg ?= [0-9]|dbg ?= '${dbg}'|g' Makefile.defaults) endif ifdef prec_timer tmp := $(shell sed -i 's|prec_timer ?= [0-9]|prec_timer ?= '${prec_timer}'|g' Makefile.defaults) endif include Makefile.common tmp := $(shell sed -i '2 d' Makefile.lammps) tmp := $(shell sed -i '2 d' Makefile.lammps) tmp := $(shell sed -i '1a CUDA_FLAGS := ${CUDA_FLAGS}' Makefile.lammps) tmp := $(shell sed -i '2a CUDA_USRLIB_CONDITIONAL := ${CUDA_USRLIB_CONDITIONAL}' Makefile.lammps) # verbose nvcc output during compilation ifeq ($(verbose), 1) VERBOSE := NVCC_FLAGS += --ptxas-options=-v else VERBOSE := @ endif # keep temporary compilation files of nvcc ifeq ($(keep), 1) NVCC_FLAGS += -keep -Xptxas="--verbose" endif NVCC := $(CUDA_INSTALL_PATH)/bin/nvcc CUDA_INCLUDES = -I./ -I$(CUDA_INSTALL_PATH)/include -I../../src/USER-CUDA CUDA_USRLIB = # Link target lib: $(CUDA_OBJ) $(NVCC) -lib $(CUDA_OBJ) $(CUDA_FLAGS) $(CUDA_USRLIB_CONDITIONAL) -o liblammpscuda.a clean: rm $(CUDA_SRC_DIR)/*.o rm liblammpscuda.a # Library target # Cuda compilation rules %_cu.o: %.cu %_kernel.cu %_cu.h cuda_shared.h $(VERBOSE)$(NVCC) $(NVCC_FLAGS) $(CUDA_FLAGS) $(CUDA_INCLUDES) $(CUDA_USRLIB) $(SMVERSIONFLAGS) -o $@ -c $<