]> AND Private Git Repository - snake_gpu.git/blob - makefile
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
test tex
[snake_gpu.git] / makefile
1 # chemin des librairies
2
3
4 PATH_GCC = $(PWD)
5
6 PATH_LIB = $(PATH_GCC)/lib/
7 PATH_SRC = $(PATH_GCC)/src/
8 PATH_EXEC = $(PATH_GCC)/exec/
9
10 # repertoires pour les headers
11 PATH_INCLUDE = $(PATH_GCC)/src/
12
13 # compilateur
14 CC = gcc
15 NVCC = nvcc #/usr/local/cuda/bin/nvcc
16 CXX = g++
17
18 # options de compilation
19 # -Wall : Warning all
20 # -g : debug (ex : gdb sas)
21 # -pg : profile memoire et cpu pour chaque fonctions (ex : gprof name | less)
22 # -O3 : optimisation code -O0 (rien) ~ -O3 (maxi)
23 # -fstrict-aliasing : aligne  la memoire sur 32 bits
24
25 # gcc
26 OPTION_CC1 = -Wall -O3 -static #-pg #-g -fprofile-arcs -ftest-coverage
27 OPTION_CC2 =  $(OPTION_CC1)  -funroll-all-loops -fstrict-aliasing 
28
29 OPTION_CC = $(OPTION_CC2) -I$(PATH_INCLUDE) -I$(PATH_SRC)
30
31 #includes NV
32 INCNV = -I/home/perrot/NVIDIA_GPU_Computing_SDK/C/common/inc/
33 # librairies pour la compilation
34 LIB_CC = -lm 
35 LIBSNV = -L/cm/shared/apps/cuda31/toolkit/3.1/lib64/ -lcuda -lcudart
36 #LIBSNV = -L/usr/local/cuda/lib64 -lcuda -lcudart
37
38 # sources utiles a la compilation des main
39 SRCS =  lib_alloc.c lib_images.c lib_math.c lib_snake_common.c lib_contour.c
40
41 SRCS_NV =  lib_test_gpu.cu lib_snake_2_gpu.cu lib_gpu.cu snake2D_gpu.cu
42
43 OBJS = $(SRCS:%.c=$(PATH_LIB)%.o) $(SRCS_NV:%.cu=$(PATH_LIB)%.o)
44
45 # dependances supplementaires
46 DEPS =  $(PATH_SRC)/constantes.h $(PATH_SRC)/structures.h $(PATH_GCC)/makefile
47 help :
48         @echo "cibles : snake2D doc clean"
49
50 all : snake2D doc
51 clean :
52         -rm -f $(PATH_LIB)*.o
53         -rm -rf $(PATH_GCC)/docs/
54
55
56 # regle pour les .o
57 # --use_fast_math
58 # --ptxas-options=-v
59 $(PATH_LIB)%_gpu.o :    $(PATH_SRC)%_gpu.cu
60                         $(NVCC) $(INCNV) -arch=sm_13 --use_fast_math -c $< -o $@        
61
62 $(PATH_LIB)%.o :        $(PATH_SRC)%.c $(DEPS)
63                         $(CC) $(OPTION_CC) -c $< -o $@
64
65 # regle pour l'exec
66
67 $(PATH_EXEC)SNAKE2D :   $(PATH_SRC)snake2D_gpu.cu $(OBJS) $(DEPS)
68                         $(CXX) $(OBJS) $(LIBSNV) \
69                         -o $(PATH_EXEC)SNAKE2D
70
71 # compilation main
72
73 snake2D :       $(PATH_EXEC)SNAKE2D
74                 @echo ""
75                 @echo "***** fin compil snake2D *****"
76                 @echo ""
77
78 # generation des doc
79
80 doc :           
81                 doxygen doxygen.conf
82                 @echo ""
83                 @echo "***** fin compil doc *****"
84                 @echo ""