Makefile 940 Bytes
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 16
### 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
17 18 19 20 21 22 23 24 25 26 27 28
CC=mpic++

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
29
	$(CUDA_CC) -O3 $(OPT)  -g -c -isystem=/home/i-bird/MPI/include --std=c++11 -o $@ $< $(INCLUDE_PATH_NVCC)
incardon's avatar
incardon committed
30 31

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

sph_dlb: $(OBJ)
incardon's avatar
incardon committed
35
	$(CUDA_CC_LINK) -o $@ $^ $(CFLAGS) $(LIBS_PATH) $(LIBS)
incardon's avatar
incardon committed
36 37 38 39 40 41 42 43 44 45 46

all: sph_dlb

run: sph_dlb_test
	mpirun -np 2 ./sph_dlb

.PHONY: clean all run

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