Makefile 1.03 KB
Newer Older
incardon's avatar
incardon committed
1 2
include ../../example.mk

incardon's avatar
incardon committed
3 4 5 6 7 8 9 10 11 12 13 14 15
### This is a trick to avoid "Command not found if you no not have NVCC compiler". In practice the normal C++ compiler is used
### internally the example disable with the preprocessor its code if not compiled with nvcc 
CUDA_CC=
CUDA_CC_LINK=
ifeq (, $(shell which nvcc))
        CUDA_CC=mpic++ -x c++ $(INCLUDE_PATH)
        INCLUDE_PATH_NVCC=
        CUDA_CC_LINK=mpic++
else
        CUDA_CC=nvcc
        CUDA_CC_LINK=nvcc
endif

incardon's avatar
incardon committed
16 17 18 19 20 21
ifeq ($(PROFILE),ON)
	CUDA_CC=scorep --nocompiler  --cuda --mpp=mpi nvcc
	CUDA_CC_LINK=nvcc
else
	CUDA_CC_LINK=nvcc
endif
incardon's avatar
incardon committed
22 23 24 25 26 27 28 29 30 31 32

LDIR =
OPT=

OBJ = main.o

sph_dlb:
sph_dlb_test: OPT += -DTEST_RUN
sph_dlb_test: sph_dlb

%.o: %.cu
incardon's avatar
incardon committed
33
	$(CUDA_CC) -O3 $(OPT)  -g -c -isystem=/home/i-bird/MPI/include --std=c++11 -o $@ $< $(INCLUDE_PATH_NVCC)
incardon's avatar
incardon committed
34 35

%.o: %.cpp
incardon's avatar
incardon committed
36
	$(CC) -O3 $(OPT) -g -c --std=c++11 -o $@ $< $(INCLUDE_PATH)
incardon's avatar
incardon committed
37 38

sph_dlb: $(OBJ)
incardon's avatar
incardon committed
39
	$(CUDA_CC_LINK) -o $@ $^ $(CFLAGS) $(LIBS_PATH) $(LIBS)
incardon's avatar
incardon committed
40 41 42 43 44 45 46 47 48 49 50

all: sph_dlb

run: sph_dlb_test
	mpirun -np 2 ./sph_dlb

.PHONY: clean all run

clean:
	rm -f *.o *~ core sph_dlb