X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;f=WCudaMSE%2FBUILDER%2Fmakefile%2Fprivate%2Fcuda%2FmakeCudaVisual.mk;fp=WCudaMSE%2FBUILDER%2Fmakefile%2Fprivate%2Fcuda%2FmakeCudaVisual.mk;h=d2127eebed476a7de0215159055285f516826d3f;hb=8d08c12b29c2a14684f35c023ee39e694bb80d25;hp=0000000000000000000000000000000000000000;hpb=226de81f7e1f1fbf4ac79d0d089e8a05ec7159a0;p=GPU.git diff --git a/WCudaMSE/BUILDER/makefile/private/cuda/makeCudaVisual.mk b/WCudaMSE/BUILDER/makefile/private/cuda/makeCudaVisual.mk new file mode 100755 index 0000000..d2127ee --- /dev/null +++ b/WCudaMSE/BUILDER/makefile/private/cuda/makeCudaVisual.mk @@ -0,0 +1,676 @@ +# Version : 0.0.8 +# Date : 01.08.2014 +# Author : Cedric.Bilat@he-arc.ch +# +# See : OptionCompilateur.txt +# +# Hyp : Application that must be in path +# nvcc +# mingw32-make +# cl +# +# : Environement Variables must be set +# +# ARCHI_32_64 : 32 or 64 + +ifndef __MAKE_VISUAL_CUDA_MK__ +__MAKE_VISUAL_CUDA_MK__=true + + +############################################## +# Variables # +############################################## + +######## +# Path # +######## + +SRC_ROOT :=src +TARGET_OBJ:=${TARGET_PATH}/obj +TARGET_BIN:= ${TARGET_PATH}/bin +TARGET_CUBIN:=${TARGET_PATH}/cubin + +#synonime ameliorer +TARGET_BIN_PATH:=${TARGET_BIN} +TARGET_OBJ_PATH:=${TARGET_OBJ} + +#TARGET_DEPLOY_PATH_BIN=${TARGET_DEPLOY_PATH}/bin +TARGET_DEPLOY_PATH_DOC=${TARGET_DEPLOY_PATH}/doc + +######## +# cpp # +######## + +CXX=cl + +######## +# Cuda # +######## + +NVCC := nvcc +PTXAS_FLAGS := -fastimul +OBJ_EXTENSION:=obj +OPTION_SEPARATOR:=-#attention, end without space +LINK_FLAG_DLL:=-shared#attention,end without space + +######## +#32/64 # +######## + +#plus necessaire +#ifeq ($(ARCHI_32_64),64) + # override NVCCFLAGS+= -m64#default -m64 #dans public + #override CXXLDFLAGS+= /MACHINE:X64 #Deprecated! #En plus posait probl�me de guillement (� la d�finition de CXXLDFLAGS) +#endif + +TARGET_NAME:=$(TARGET_NAME)_$(ARCHI_32_64) + + +############# +# Extension # +############# + +EXTENSION_OBJ:=obj# +EXTENSION_LIB:=lib# +EXTENSION_DLL:=dll# +EXTENSION_EXE:=exe# +# Note enstension sans le . + +########## +# TARGET # +########## + +LIB_PREFIXE:=#rien + +TARGET_NAME_EXE:=$(TARGET_NAME).${EXTENSION_EXE} +TARGET_NAME_DLL:=${LIB_PREFIXE}$(TARGET_NAME).$(EXTENSION_DLL) +TARGET_NAME_LIB:=${LIB_PREFIXE}$(TARGET_NAME).${EXTENSION_LIB} + +TARGET_EXE:=${TARGET_BIN_PATH}/$(TARGET_NAME_EXE) +TARGET_DLL:=${TARGET_BIN_PATH}/$(TARGET_NAME_DLL) +TARGET_LIB:=${TARGET_BIN_PATH}/$(TARGET_NAME_LIB) +#TARGET_OBJ:=$(addprefix $(TARGET_OBJ_PATH)/,$(notdir $(OBJ_FILES))) + +#Selection de la target en fonction TARGET_MODE +ifeq ($(TARGET_MODE),EXE) + TARGET:=${TARGET_EXE} + TARGET_DEPLOY:=$(TARGET_DEPLOY_PATH_BIN)/$(TARGET_NAME_EXE) +endif + +ifeq ($(TARGET_MODE),SHARED_LIB) + TARGET:=${TARGET_DLL} + TARGET_DEPLOY:=$(TARGET_DEPLOY_PATH_BIN)/$(TARGET_NAME_DLL) + + override NVCCLDFLAGS += $(LINK_FLAG_DLL) +endif + +ifeq ($(TARGET_MODE),STATIC_LIB) + TARGET:=${TARGET_LIB} + TARGET_DEPLOY:=$(TARGET_DEPLOY_PATH_BIN)/$(TARGET_NAME_LIB) +endif + +########### +#Extension# +########### + +#ifeq ($(TARGET_MODE),SHARED_LIB) +# override NVCCLDFLAGS+= $(LINK_FLAG_DLL) +# TARGET_NAME_FULL=$(TARGET_NAME).dll +#endif + +#ifeq ($(TARGET_MODE),EXE) +# TARGET_NAME_FULL=$(TARGET_NAME).exe +#endif + +#TARGET:=$(TARGET_BIN)/$(TARGET_NAME_FULL) +#TARGET_DEPLOY:=$(TARGET_DEPLOY_PATH_BIN)/$(TARGET_NAME_FULL) + +########## +#ARCHIVEUR# +########### + +AR:=lib +ARFLAGS=# pas= car valeur vaut rv avant sous windows ??? +AR_OUT_FLAG:=/OUT:#Sans espace + +############ +# Params # +############ + +#ameliorer deja avant mais sans . +EXTENSION_LIB:=.lib +EXTENSION_DLL:=.dll +#LIB_PREFIX:=#pas de prefixe + +############ +#Set files # +############ + +#Hyp : Shell sh +SRC_PATH:=$(shell find $(SRC_ROOT) -type d) +ifdef SRC_AUX + SRC_PATH_AUX:=$(shell find $(SRC_AUX) -type d) +else + SRC_PATH_AUX:= +endif + +SRC_PATH_ALL:=$(SRC_PATH) $(SRC_PATH_AUX) + +SRC_CPP_FILES := $(foreach dir,$(SRC_PATH_ALL),$(wildcard $(dir)/*.cpp)) +SRC_C_FILES := $(foreach dir,$(SRC_PATH_ALL),$(wildcard $(dir)/*.c)) +SRC_CU_FILES := $(foreach dir,$(SRC_PATH_ALL),$(wildcard $(dir)/*.cu)) +SRC_LIB_FILES := $(foreach dir,$(SRC_PATH_ALL),$(wildcard $(dir)/*.lib)) $(ADD_LIBRARY_FILES) + +################# +# PREPARE FLAGS # +################# + +#ifneq (, $(findstring openmp,$(CXXFLAGS)))#findstring return vide si openmp pas trouver! +# ADD_LIBRARY_FILES+=libiomp5md.lib + +#Delete extension .lib +SRC_LIB_FILES:= $(SRC_LIB_FILES:$(EXTENSION_LIB)=) + +SRC_LIB_FILES_l:= $(addprefix $(OPTION_SEPARATOR)l,$(notdir $(SRC_LIB_FILES))) +#ALL_LIB_FILES_l:= $(CUDA_LIB_FILES_l) $(CULA_LIB_FILES_l) $(SRC_LIB_FILES_l) +ALL_LIB_FILES_l:= $(SRC_LIB_FILES_l) + +LIB_PATH:=$(foreach dir,$(SRC_PATH_ALL),$(dir $(wildcard $(dir)/*.lib)))#dir extract directory of file, $(wildcard $(dir)/*.h)=> take file.h if exist +override LIB_PATH:=$(call uniq,${LIB_PATH}) +#SRC_LIB_L:=$(addprefix $(OPTION_SEPARATOR)L,$(SRC_PATH_ALL))#old +SRC_LIB_L:=$(addprefix $(OPTION_SEPARATOR)L,$(LIB_PATH)) + +#ALL_LIB_L:=$(SRC_LIB_L) $(CUDA_LIB_L) $(CULA_LIB_L) +ALL_LIB_L:=$(SRC_LIB_L) + + +override INC_PATH:=${INC_PATH} $(foreach dir,$(SRC_PATH_ALL),$(dir $(wildcard $(dir)/*.h)))#dir extract directory of file, $(wildcard $(dir)/*.h)=> take file.h if exist +override INC_PATH:=$(call uniq,${INC_PATH}) +#${info "INC_PATH= "${INC_PATH}}#print immediately +#SRC_HEADER_I := $(addprefix $(OPTION_SEPARATOR)I,$(SRC_PATH_ALL))#old +SRC_HEADER_I := $(addprefix $(OPTION_SEPARATOR)I,$(INC_PATH)) +#ALL_HEADERS_I:= $(SRC_HEADER_I)#old + +OBJ_FILES_CPP:= $(SRC_CPP_FILES:.cpp=.$(OBJ_EXTENSION)) +OBJ_FILES_C:= $(SRC_C_FILES:.c=.$(OBJ_EXTENSION)) +OBJ_FILES:= ${OBJ_FILES_CPP} ${OBJ_FILES_C} +OBJ_FILES:= $(addprefix $(TARGET_OBJ)/,$(notdir $(OBJ_FILES))) + +CU_FILES := $(SRC_CU_FILES:.cu=.$(OBJ_EXTENSION)) +CU_FILES := $(addprefix $(TARGET_OBJ)/,$(notdir $(CU_FILES))) + +OBJ_CU_FILES:=$(OBJ_FILES) $(CU_FILES) + +#Injection variable in .cpp code (VAR1 VAR2 -> -DVAR1 -DVAR2) +CODE_DEFINE_VARIABLES_D:= $(addprefix -D,$(CODE_DEFINE_VARIABLES)) + +#override NVCCFLAGS += $(ALL_HEADERS_I)#old +override NVCCFLAGS += $(SRC_HEADER_I) +override NVCCLDFLAGS += $(ALL_LIB_L) $(ALL_LIB_FILES_l) +override CXXFLAGS += $(CODE_DEFINE_VARIABLES_D) + +ifneq (, $(findstring /MD,$(CXXFLAGS)))#findstring return vide si /MD pas trouver! + override CXXLDFLAGS+= /NODEFAULTLIB:LIBCMT +endif + +#Adding " " around CXXFLAGS and CXXLDFLAGS, otherwise we can't specifie more than one options ! +#override CXXFLAGS:=" $(CXXFLAGS) " +#override CXXLDFLAGS:=" $(CXXLDFLAGS) " +#plus tard apres optimisation + +########## +# securite # +########## + +#Directory search path(use implicit in rules) +VPATH := $(SRC_PATH_ALL) + +######## +#Optimisation # +######## + +include ${ROOT_MAKEFILE_PRIVATE_CUDA}/optimisation.mk + +########## +# exclude # +########## + +override NVCCFLAGS:=$(filter-out $(NVCCFLAGS_EXCLUDE),$(NVCCFLAGS)) +override CXXFLAGS:=$(filter-out $(CXXFLAGS_EXCLUDE),$(CXXFLAGS)) + +#https://www.gnu.org/software/make/manual/make.html#Functions + +########## +# runtime # +########## + +space:= #ne suufit pas ajoutre espaca, mais += le fait! +space+=# + +ifeq (${OS},Win) + separateurPath:=;# +else + separateurPath:=:# +endif + +API_BIN_FORMATTER:=$(subst ${space},${separateurPath},${API_BIN}) + +ifeq (${OS},Win) + override PATH:=${PATH}${separateurPath}${API_BIN_FORMATTER}# + export ${PATH}# +else + override LD_LIBRARY_PATH:=${LD_LIBRARY_PATH}${separateurPath}${API_BIN_FORMATTER}# + export ${LD_LIBRARY_PATH}#fixme semble pas marcher +endif + +########## +# unicitye # +########## + +UNICITY=true + +ifdef UNICITY + + override CXXFLAGS:=$(call uniq,${CXXFLAGS}) + override CXXLDFLAGS:=$(call uniq,${CXXLDFLAGS}) + #override NVCCFLAGS:=$(call uniq,${NVCCFLAGS}) pas possible car enleve -gencode + override NVCCLDFLAGS:=$(call uniq,${NVCCLDFLAGS}) + override ARFLAGS:=$(call uniq,${ARFLAGS}) + #override AR_OUT_FLAG:=$(call uniq,${AR_OUT_FLAG})#met espace apres /out, pas pour visual/intel + +#debug +#${info "CXXFLAGS= "${CXXFLAGS}}#print immediately +#${info "CXXLDFLAGS"= ${CXXLDFLAGS}}#print immediatel +#${info "NVCCFLAGS= "${NVCCFLAGS}}#print immediatel +#${info "NVCCLDFLAGS= "${NVCCLDFLAGS}}#print immediatel +#${info "ARFLAGS= "${ARFLAGS}}#print immediatel +#${info "AR_OUT_FLAG= "${AR_OUT_FLAG}}#print immediatel + +endif#UNICITY + +########## +# remove space # +########## + +#let a minimum of one space +REMOVE_SPACE=true + +ifdef REMOVE_SPACE + + override CXXFLAGS:=$(strip ${CXXFLAGS}) + override CXXLDFLAGS:=$(strip ${CXXLDFLAGS}) + override NVCCLDFLAGS:=$(strip ${NVCCLDFLAGS}) + override NVCCFLAGS:=$(strip ${NVCCFLAGS}) + override ARFLAGS:=$(strip ${ARFLAGS}) + #override AR_OUT_FLAG:=$(strip ${AR_OUT_FLAG}) #pas pour mingw car enleve espace apres -r + + #override CXXFLAGS:=$(subst $(space),,$(CXXFLAGS)) + +endif#REMOVE_SPACE + +########## +# bug # +########## + +#Adding " " around CXXFLAGS and CXXLDFLAGS, otherwise we can't specifie more than one options ! +override CXXFLAGS:=" $(CXXFLAGS) " +override CXXLDFLAGS:=" $(CXXLDFLAGS) " + +########### +# chrono # +########### + +override TIME_START:=$(shell date +%T) +TIME_CURRENT=$(shell date +%T) +#TIME_DELTA:=$(shell echo $(TIME_CURRENT) - $(TIME_START) | bc) #marche pas + +###################### +# Rules # +###################### + +TITLE:=$(TARGET_NAME) + +################ +#.o->.exe,.dll # +################ + +$(TARGET) : $(OBJ_CU_FILES) +#@echo "$(NVCC) $(NVCCLDFLAGS) -Xlinker $(CXXLDFLAGS) $^ -o $(TARGET)" + @echo "" + @echo "[CBI] -> Linking to : "$(TARGET) + @echo "" + @echo "[CBI] -> Library Link :" + @echo "[CBI] ->" + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,-l,$(NVCCLDFLAGS))) + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,-l,$(CXXLDFLAGS))) + @echo "" + @$(NVCC) $(NVCCLDFLAGS) -Xlinker $(CXXLDFLAGS) $^ -o $(TARGET) + @echo "" + @echo "==================================================================================" + @echo "[CBI] -> Target Name : "$(TARGET_NAME) + @echo "[CBI] -> Location : "$(TARGET) + @echo "[CBI] -> Deploy : "$(TARGET_DEPLOY_PATH_BIN) + @echo "[CBI] ->" + @echo "[CBI] -> Type : "$(TARGET_MODE) + @echo "[CBI] -> Arch : "$(ARCHI_32_64) + @echo "[CBI] -> OS : "$(OS) + @echo "[CBI] -> User : "$(USER) + @echo "[CBI] ->" + @echo "[CBI] -> Compilateur : VISUAL (${CXX}) && NVIDIA (${NVCC})" + @echo "[CBI] -> Task : End Compiling-Linking !" + @echo "[CBI] -> Time : "${TIME_CURRENT} + @echo "==================================================================================" + @echo "" + +# -o =outfile +# tabulation obligatoire before @ + +################ +# .o->.lib # +################ + +${TARGET_LIB}:$(OBJ_CU_FILES) +#@echo "${AR} ${AR_OUT_FLAG}${TARGET_LIB} ${ARFLAGS} $^" + @echo "" + @${AR} ${AR_OUT_FLAG}${TARGET_LIB} ${ARFLAGS} $^ + @echo "" + @echo "==================================================================================" + @echo "[CBI] -> Target Name : "$(TARGET_NAME) + @echo "[CBI] -> Location : "$(TARGET) + @echo "[CBI] -> Deploy : "$(TARGET_DEPLOY_PATH_BIN) + @echo "[CBI] ->" + @echo "[CBI] -> Type : "$(TARGET_MODE) + @echo "[CBI] -> Arch : "$(ARCHI_32_64) + @echo "[CBI] -> OS : "$(OS) + @echo "[CBI] -> User : "$(USER) + @echo "[CBI] ->" + @echo "[CBI] -> Compilateur : VISUAL (${CXX}) && NVIDIA (${NVCC})" + @echo "[CBI] -> Task : End Compiling-Archive !" + @echo "[CBI] -> Time : "${TIME_CURRENT} + @echo "==================================================================================" + @echo "" + +################ +# .cpp->.o # +################ + +$(TARGET_OBJ)/%.$(OBJ_EXTENSION) :%.cpp +#@echo "$(NVCC) $(NVCCFLAGS) -odir $(TARGET_OBJ) -Xcompiler $(CXXFLAGS) -c $< -o $@" +#@echo "[${TITLE}] -> ${CXX} compiling .cpp : "$< + @$(NVCC) $(NVCCFLAGS) -odir $(TARGET_OBJ) -Xcompiler $(CXXFLAGS) $@ -c $< + +# -c = compilation +# -o =outfile + +################ +# .c->.o # +################ + +$(TARGET_OBJ)/%.$(OBJ_EXTENSION) :%.c +#@echo "$(NVCC) $(NVCCFLAGS) -odir $(TARGET_OBJ) -Xcompiler $(CXXFLAGS) -c $< -o $@" +#@echo "[${TITLE}] -> ${CXX} compiling .c : "$< + @$(NVCC) $(NVCCFLAGS) -odir $(TARGET_OBJ) -Xcompiler $(CXXFLAGS) $@ -c $< + +# -c = compilation +# -o =outfile + +################ +# .cu->.o # +################ + +$(TARGET_OBJ)/%.$(OBJ_EXTENSION) :%.cu +#@echo "$(NVCC) $(NVCCFLAGS) -odir $(TARGET_OBJ) -Xcompiler ""$(filter-out -std=c++0x,$(CXXFLAGS))"" -c $< -o $@" +#@echo "[${TITLE}] -> ${NVCC} compiling .cu : "$< + @$(NVCC) $(NVCCFLAGS) -odir $(TARGET_OBJ) -Xcompiler ""$(filter-out -std=c++0x,$(CXXFLAGS))"" -c $< -o $@ +#cuda6: Il ne faut pas utiliser le flag �std=c++0x lorsque l�on compile un fichier .cu ! +#cuda6.5: devrait etre ok +##Adding "" "" around final CXXFLAGS, to keep one " " around final CXXFLAGS , in order to can specifie more than one options ! +#$(filter-out pas necesaire with visual&intel windows + +# -c = compilation +# -o =outfile + +############################################## +# TARGET # +############################################## + +#all: version help +#all: echoing $(TARGET) deploy +all: echoing init $(TARGET) deploy cleanTempCudaFile + @echo "" + @echo "[CBI] -> "$(TITLE)" : End ALL!" + +.PHONY: version +version: + @echo "" + @nvcc --version + @echo "" + @cl + +.PHONY: help +help: + @echo "" + @nvcc --help + +########## +# deploy # +########## + +.PHONY: deploy +deploy: +ifdef TARGET_DEPLOY_PATH + @$(shell cp $(TARGET) $(TARGET_DEPLOY)) + @echo "" + @echo "[CBI] -> Deploying : "$(TARGET_DEPLOY) +endif + +########## +# run # +########## + +.PHONY: run +run: printRuntimeInfo + @echo "" + @echo "[CBI] -> Running : "$(TARGET) $(ARGS) + @echo "" + @echo "------------------------------------------------------------------------" + @echo "" + @echo "" + @$(TARGET) $(ARGS) + +.PHONY: runDeploy +runDeploy: printRuntimeInfo + @echo "" + @echo "[CBI] -> Running : "$(TARGET_DEPLOY) $(ARGS) + @echo "" + @echo "------------------------------------------------------------------------" + @echo "" + @echo "" + @$(TARGET_DEPLOY) $(ARGS) + + +.PHONY: printRuntimeInfo +printRuntimeInfo: + @echo "" + @echo "[CBI] -> API BIN :" + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh ${sort ${API_BIN}} + @echo "" + @echo "[CBI] -> ARGS :" + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh ${sort ${ARGS}} + +########## +# depends # +########## + +.PHONY: dependenciesWin +dependenciesWin: printRuntimeInfo + @echo "" + @echo "[CBI] -> Dependencies .dll : "${TARGET} + @${DEPENDS_EXE} ${TARGET_DEPLOY} + +########## +# contents # +########## + +.PHONY: contententsWin +contententsWin: printRuntimeInfo + @echo "" + @echo "[CBI] -> Dependencies .dll : "${TARGET_NAME_EXE} + @${DEPENDS_EXE} ${TARGET_DEPLOY} + +########## +# init # +########## + +.PHONY: init +init: +#create folder heirerarchy TARGET_BIN_PATH iff don't exist +ifeq (,$(findstring $(TARGET_BIN),$(wildcard $(TARGET_BIN) ))) + @$(shell mkdir -p $(TARGET_BIN)) + @echo "[CBI] -> Create folder : "$(TARGET_BIN) +endif +#create folder heirerarchy TARGET_BIN_PATH iff don't exist +ifeq (,$(findstring $(TARGET_OBJ),$(wildcard $(TARGET_OBJ) ))) + @$(shell mkdir -p $(TARGET_OBJ)) + @echo "[CBI] -> Create folder : "$(TARGET_OBJ) +endif +#create folder heirerarchy TARGET_BIN_PATH iff don't exist +ifeq (,$(findstring $(TARGET_CUBIN),$(wildcard $(TARGET_CUBIN) ))) + @$(shell mkdir -p $(TARGET_CUBIN)) + @echo "[CBI] -> Create folder : "$(TARGET_CUBIN) +endif +ifeq (,$(findstring $(TARGET_DEPLOY_PATH_BIN),$(wildcard $(TARGET_DEPLOY_PATH_BIN) ))) + @$(shell mkdir -p $(TARGET_DEPLOY_PATH_BIN)) + @echo "[CBI] -> Create folder : "$(TARGET_DEPLOY_PATH_BIN) + @echo "" +endif + @echo "" + +########## +# doc # +########## + +include ${ROOT_MAKEFILE_PRIVATE_DOC}/doxyCPP.mk + + +########## +# clean # +########## + +.PHONY: clean +clean: + @rm -f $(TARGET_OBJ)/*.o + @rm -f $(TARGET_OBJ)/*.obj + @rm -f $(TARGET_BIN)/*.exp + @rm -f $(TARGET_BIN)/*.lib + @rm -f $(TARGET) + @rm -f $(TARGET_DEPLOY) + @rm -f $(TARGET_CUBIN)/* + @rm -f $(TARGET_DOC_DEPLOY_FILE) + @rm -f -r $(TARGET_DOC_PATH) + @echo "" + @echo "==================================================================================" + @echo "[CBI] -> Target : "$(TARGET_NAME) + @echo "[CBI] -> Task : DELETE" + @echo "[CBI]" + @echo "[CBI] -> Delete .obj : "$(TARGET_OBJ) + @echo "[CBI] -> Delete .bin : "$(TARGET_BIN) + @echo "[CBI] -> Delete .cubin : "$(TARGET_CUBIN) + @echo "[CBI] -> Delete doc : "$(TARGET_DOC_PATH) + @echo "[CBI]" + @echo "[CBI] -> Delete deploy : "$(TARGET_DEPLOY) + @echo "[CBI] -> Delete deploy doc : "$(TARGET_DOC_DEPLOY_FILE) + @echo "==================================================================================" + @echo "" + +.PHONY: cleanTempCudaFile +cleanTempCudaFile: + @rm -f ${TARGET_CUBIN}/*.c + @rm -f ${TARGET_CUBIN}/*.cpp + @rm -f ${TARGET_CUBIN}/*.gpu + @rm -f ${TARGET_CUBIN}/*.i + @rm -f ${TARGET_CUBIN}/*.ii + @rm -f ${TARGET_CUBIN}/*.hash + @rm -f ${TARGET_CUBIN}/*.ptx +#@echo "[CBI] -> Cleaning : Cuda temp files, excepted .cubin for JCuda" +#@echo "" + +#rm -r #serait recursif (dangereux!!) +#rm -f #pas d'erreur si file existe pas! + +########## +# echo # +########## + +.PHONY: echoing +echoing: + @echo "" + @echo "==================================================================================" + @echo "[CBI] -> Target Name : "$(TARGET_NAME) + @echo "[CBI] ->" + @echo "[CBI] -> Build : "$(TARGET) + @echo "[CBI] -> Deploy : "$(TARGET_DEPLOY_PATH_BIN) + @echo "[CBI] ->" + @echo "[CBI] -> Type : "$(TARGET_MODE) + @echo "[CBI] -> Arch : "$(ARCHI_32_64) + @echo "[CBI] -> OS : "$(OS) + @echo "[CBI] -> User : "$(USER) + @echo "[CBI] ->" + @echo "[CBI] -> Task : Compiling-Linking !" +#@echo "[CBI]->Time : "${TIME_CURRENT} + @echo "==================================================================================" + @echo "" + @echo "[CBI] -> SRC AUX (Recursif) :" + @echo "[CBI] ->" +#@echo $(SRC_AUX) + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(SRC_AUX) + @echo "" + @echo "[CBI] -> CXXFLAGS (Partial) :" + @echo "[CBI] ->" +#@echo $(CXXFLAGS) + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(call not-containing,-I,$(CXXFLAGS)) #sort kp, why + @echo "" + @echo "[CBI] -> CXXLDFLAGS (Partial) :" + @echo "[CBI] ->" +#@echo $(CXXLDFLAGS) + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(call not-containing,-L, $(call not-containing,-l,$(CXXLDFLAGS))) #sort ko why? + @echo "" + @echo "[CBI] -> NVCCFLAGS (Partial) :" + @echo "[CBI] ->" +#@echo $(NVCCFLAGS) + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,-I,$(NVCCFLAGS))) + @echo "" + @echo "[CBI] -> NVCCLDFLAGS (Partial) :" + @echo "[CBI] ->" +#@echo $(NVCCLDFLAGS) + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,-L, $(call not-containing,-l,$(NVCCLDFLAGS)))) + @echo "" + @echo "[CBI] -> INC_PATH (auto detect):" + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(INC_PATH)) + @echo "" + @echo "" + @echo "[CBI] -> LIB_PATH (auto detect):" + @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(LIB_PATH)) + @echo "" + +############################################## +# HELP # +############################################## + +# target : dependencies +# +# $@ = name of the target +# $^ = all dependencie of a target +# $< =first (unique dependency of a target) (rm, compilation,linking) +# +# @ = diminue verbosit� commande +# +# Attention : tabulation obligatoire avant commande dans rule!! +# +# http://www.gnu.org/software/make/manual/ + +############################################# +# END # +############################################# + +endif#__MAKE_VISUAL_CUDA_MK__