Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 6th, 2012  |  syntax: None  |  size: 2.93 KB  |  hits: 27  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. makefile for C  /CUDA project
  2. SRC_DIR   = src
  3. OBJ_DIR   = obj
  4.  
  5. CPP_FILES = $(wildcard $(SRC_DIR)/*.cpp)
  6. CU_FILES  = $(wildcard $(SRC_DIR)/*.cu)
  7.  
  8. H_FILES   = $(wildcard $(SRC_DIR)/*.h)
  9. CUH_FILES = $(wildcard $(SRC_DIR)/*.cuh)
  10.  
  11. OBJ_FILES = $(addprefix $(OBJ_DIR)/,$(notdir $(CPP_FILES:.cpp=.o)))
  12. CUO_FILES = $(addprefix $(OBJ_DIR)/,$(notdir $(CU_FILES:.cu=.cu.o)))
  13.  
  14. $(TARGET) : $(OBJ_FILES) $(CUO_FILES)
  15.     $(LD) $(LDFLAGS) $(LIB_CUDA) -o $@ $?
  16.  
  17. $(CUO_FILES) : $(CU_FILES) $(CUH_FILES)
  18.     $(NVCC) $(NVCCFLAGS) $(INCLUDES) -c -o $@ $<
  19.  
  20. $(OBJ_DIR)/%.o : $(SRC_DIR)/%.cpp $(H_FILES)
  21.     $(NVCC) $(NVCCFLAGS) $(INCLUDES) -c -o $@ $<
  22.        
  23. <... previous part stays the same ...>
  24. OBJS =  $(patsubst %.cpp,$(OBJ_DIR)/%.o,$(notdir $(CPP_FILES)))
  25. OBJS += $(patsubst %.cu,$(OBJ_DIR)/%.cu.o,$(notdir $(CU_FILES)))
  26.  
  27. $(TARGET) : $(OBJS)
  28.     $(LD) $(LDFLAGS) $(LIB_CUDA) -o $@ $?
  29.  
  30. $(OBJ_DIR)/%.cu.o : $(SRC_DIR)/%.cu $(CUH_FILES)
  31.     $(NVCC) $(NVCCFLAGS) $(INCLUDES) -c -o $@ $<
  32.  
  33. $(OBJ_DIR)/%.o : $(SRC_DIR)/%.cpp $(H_FILES)
  34.     $(NVCC) $(NVCCFLAGS) $(INCLUDES) -c -o $@ $<
  35.        
  36. /usr/local/cuda/bin/nvcc  -I/usr/local/cuda/include -c -o obj/main.o src/main.cpp
  37. /usr/local/cuda/bin/nvcc  -I/usr/local/cuda/include -c -o obj/util.o src/util.cpp
  38. make: *** No rule to make target `obj/thrust.cu.o', needed by `DCG'.  Stop.
  39.        
  40. TARGET    = nothing
  41. SRC_DIR   = src
  42. OBJ_DIR   = obj
  43.  
  44. CPP_FILES = $(wildcard $(SRC_DIR)/*.cpp)
  45. CU_FILES  = $(wildcard $(SRC_DIR)/*.cu)
  46.  
  47. H_FILES   = $(wildcard $(SRC_DIR)/*.h)
  48. CUH_FILES = $(wildcard $(SRC_DIR)/*.cuh)
  49.  
  50. OBJ_FILES = $(addprefix $(OBJ_DIR)/,$(notdir $(CPP_FILES:.cpp=.o)))
  51. CUO_FILES = $(addprefix $(OBJ_DIR)/,$(notdir $(CU_FILES:.cu=.
  52.  
  53. OBJS =  $(patsubst %.cpp,$(OBJ_DIR)/%.o,$(notdir $(CPP_FILES)))
  54. OBJS += $(patsubst %.cu,$(OBJ_DIR)/%.cu.o,$(notdir $(CU_FILES)))
  55.  
  56. $(TARGET) : $(OBJS)
  57.     echo "linking rule : " -o $@ $?
  58.  
  59. $(OBJ_DIR)/%.cu.o : $(SRC_DIR)/%.cu $(CUH_FILES)
  60.     echo ".cu.o rule : " $@ $<
  61.     touch $@
  62.  
  63. $(OBJ_DIR)/%.o : $(SRC_DIR)/%.cpp $(H_FILES)
  64.     echo ".o rule : " $@ $<
  65.     touch $@
  66.        
  67. $ mkdir src
  68. $ mkdir obj
  69. $ touch  src/main.cpp
  70. $ touch  src/cuda-utils.cuh
  71. $ touch  src/thrust.cu
  72. $ touch  src/cuda-utils.cu
  73. $ touch  src/util.cpp
  74. $ touch  src/main.cpp
  75.  
  76. $ ls
  77. Makefile    obj     src
  78.  
  79. $ ls src
  80. cuda-utils.cu   cuda-utils.cuh  main.cpp    thrust.cu   util.cpp
  81.  
  82. $ ls obj
  83.        
  84. $ make
  85. echo ".o rule : " obj/main.o src/main.cpp
  86. .o rule :  obj/main.o src/main.cpp
  87. touch obj/main.o
  88. echo ".o rule : " obj/util.o src/util.cpp
  89. .o rule :  obj/util.o src/util.cpp
  90. touch obj/util.o
  91. echo ".cu.o rule : " obj/cuda-utils.cu.o src/cuda-utils.cu
  92. .cu.o rule :  obj/cuda-utils.cu.o src/cuda-utils.cu
  93. touch obj/cuda-utils.cu.o
  94. echo ".cu.o rule : " obj/thrust.cu.o src/thrust.cu
  95. .cu.o rule :  obj/thrust.cu.o src/thrust.cu
  96. touch obj/thrust.cu.o
  97. echo "linking rule : " -o nothing obj/main.o obj/util.o obj/cuda-utils.cu.o obj/thrust.cu.o
  98. linking rule :  -o nothing obj/main.o obj/util.o obj/cuda-utils.cu.o obj/thrust.cu.o
  99.  
  100. $ ls obj
  101. cuda-utils.cu.o main.o      thrust.cu.o util.o