Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BUILDER / makefile / private / cpp / cpp.mk
diff --git a/WCudaMSE/BUILDER/makefile/private/cpp/cpp.mk b/WCudaMSE/BUILDER/makefile/private/cpp/cpp.mk
new file mode 100755 (executable)
index 0000000..0225a31
--- /dev/null
@@ -0,0 +1,701 @@
+# Version      : 0.0.7\r
+# Date         : 04.03.2014\r
+# Author       : Cedric.Bilat@he-arc.ch\r
+#\r
+# See          : OptionCompilateur.txt\r
+#\r
+# Hyp          : Application that must be in path\r
+#                              nvcc\r
+#                              make\r
+#                              g++\r
+#                              gcc\r
+\r
+##############################################\r
+#                              Temp                             #\r
+##############################################\r
+\r
+# Hyp          : Environement Variables must be set\r
+#\r
+#                              ARCHI_32_64     : 32 or 64\r
+\r
+ifndef __CPP_MK__\r
+__CPP_MK__=true\r
+\r
+##############################################\r
+#                       Variables                               #\r
+##############################################\r
+\r
+#OS:=$(shell uname)\r
+#MACHINE:=${shell uname -m}\r
+\r
+########\r
+#32/64 #\r
+########\r
+\r
+ifneq ($(ARCH),arm)\r
+   TARGET_NAME:=${TARGET_NAME}_$(ARCHI_32_64)\r
+else\r
+   TARGET_NAME:=$(TARGET_NAME)_ARM\r
+endif\r
+\r
+########\r
+#setfile #\r
+########\r
+\r
+OBJ_FILES_CPP:= $(SRC_CPP_FILES:.cpp=.$(EXTENSION_OBJ))\r
+OBJ_FILES_C:= $(SRC_C_FILES:.c=.$(EXTENSION_OBJ))\r
+\r
+OBJ_FILES:= ${OBJ_FILES_CPP} ${OBJ_FILES_C}\r
+\r
+##########\r
+# TARGET #\r
+##########\r
+\r
+TARGET_NAME_EXE:=$(TARGET_NAME).${EXTENSION_EXE}\r
+TARGET_NAME_DLL:=${LIB_PREFIXE}$(TARGET_NAME).$(EXTENSION_DLL)\r
+TARGET_NAME_LIB:=${LIB_PREFIXE}$(TARGET_NAME).${EXTENSION_LIB}\r
+\r
+TARGET_EXE:=${TARGET_BIN_PATH}/$(TARGET_NAME_EXE)\r
+TARGET_DLL:=${TARGET_BIN_PATH}/$(TARGET_NAME_DLL)\r
+TARGET_LIB:=${TARGET_BIN_PATH}/$(TARGET_NAME_LIB)\r
+TARGET_OBJ:=$(addprefix $(TARGET_OBJ_PATH)/,$(notdir $(OBJ_FILES)))\r
+\r
+#Selection de la target en fonction TARGET_MODE\r
+ifeq ($(TARGET_MODE),EXE)\r
+       TARGET:=${TARGET_EXE}\r
+       TARGET_DEPLOY:=$(TARGET_DEPLOY_PATH_BIN)/$(TARGET_NAME_EXE)\r
+endif\r
+\r
+ifeq ($(TARGET_MODE),SHARED_LIB)\r
+       TARGET:=${TARGET_DLL}\r
+       TARGET_DEPLOY:=$(TARGET_DEPLOY_PATH_BIN)/$(TARGET_NAME_DLL)\r
+       override LDFLAGS += $(LINK_FLAG_DLL)\r
+endif\r
+\r
+ifeq ($(TARGET_MODE),STATIC_LIB)\r
+       TARGET:=${TARGET_LIB}\r
+       TARGET_DEPLOY:=$(TARGET_DEPLOY_PATH_BIN)/$(TARGET_NAME_LIB)\r
+endif\r
+\r
+##########\r
+# RESSOURCES #\r
+##########\r
+\r
+ifeq (,$(findstring $(RESOURCES_PATH),$(wildcard $(RESOURCES_PATH) )))\r
+       nbFileRessources:=0\r
+else\r
+       nbFileRessources:=$(shell ls $(RESOURCES_PATH) | wc -l )\r
+endif\r
+\r
+##########\r
+# securite #\r
+##########\r
+\r
+VPATH := $(SRC_PATH_ALL) \r
+\r
+\r
+##########\r
+# runtime #\r
+##########\r
+\r
+space:= #ne suufit pas ajoutre espaca, mais += le fait!\r
+space+=#\r
+\r
+ifeq (${OS},Win)\r
+       separateurPath:=;#      \r
+else\r
+       separateurPath:=:#\r
+endif\r
+\r
+API_BIN_FORMATTER:=$(subst ${space},${separateurPath},${API_BIN})\r
+\r
+ifeq (${OS},Win)       \r
+       override PATH:=${PATH}${separateurPath}${API_BIN_FORMATTER}#\r
+       export ${PATH}#\r
+else\r
+       override LD_LIBRARY_PATH:=${LD_LIBRARY_PATH}${separateurPath}${API_BIN_FORMATTER}#\r
+       export ${LD_LIBRARY_PATH}#fixme semble pas marcher\r
+endif\r
+\r
+\r
+\r
+########\r
+#optimisation #\r
+########\r
+\r
+include ${ROOT_MAKEFILE_PRIVATE_CPP}/optimisation.mk\r
+\r
+########\r
+#arm #\r
+########\r
+\r
+include ${ROOT_MAKEFILE_PRIVATE_CPP}/gcc_arm.mk\r
+\r
+##########\r
+# exclude #\r
+##########\r
+\r
+override CXXFLAGS:=$(filter-out $(CXXFLAGS_EXCLUDE),$(CXXFLAGS))\r
+#https://www.gnu.org/software/make/manual/make.html#Functions\r
+\r
+##########\r
+# unicitye #\r
+##########\r
+\r
+UNICITY=true\r
+\r
+ifdef UNICITY\r
+\r
+       override CXXFLAGS:=$(call uniq,${CXXFLAGS})\r
+       override CXXLDFLAGS:=$(call uniq,${CXXLDFLAGS})\r
+       override ARFLAGS:=$(call uniq,${ARFLAGS})\r
+       #override AR_OUT_FLAG:=$(call uniq,${AR_OUT_FLAG})#met espace apres /out, pas pour visual/intel\r
+\r
+#debug\r
+#${info "CXXFLAGS= "${CXXFLAGS}}#print immediately\r
+#${info "CXXLDFLAGS"= ${CXXLDFLAGS}}#print immediatel\r
+#${info "ARFLAGS= "${ARFLAGS}}#print immediatel\r
+#${info "AR_OUT_FLAG= "${AR_OUT_FLAG}}#print immediatel\r
+\r
+endif#UNICITY\r
+\r
+##########\r
+# remove space #\r
+##########\r
+\r
+#let a minimum of one space\r
+REMOVE_SPACE=true\r
+\r
+ifdef REMOVE_SPACE\r
+\r
+       override CXXFLAGS:=$(strip ${CXXFLAGS})\r
+       override CXXLDFLAGS:=$(strip ${CXXLDFLAGS})\r
+       override ARFLAGS:=$(strip ${ARFLAGS})\r
+       #override AR_OUT_FLAG:=$(strip ${AR_OUT_FLAG}) #pas pour mingw car enleve espace apres -r\r
+\r
+       #override CXXFLAGS:=$(subst $(space),,$(CXXFLAGS))\r
+\r
+endif#REMOVE_SPACE\r
+\r
+\r
+##########\r
+# chrono #\r
+##########\r
+\r
+override TIME_START:=$(shell date +%T)\r
+TIME_CURRENT=$(shell date +%T)\r
+#TIME_DELTA:=$(shell echo $(TIME_CURRENT) - $(TIME_START) | bc) #marche pas\r
+\r
+##############################################\r
+#                                Rules                                      #\r
+##############################################\r
+\r
+# tabulation obligatoire before @\r
+\r
+TITLE:=$(TARGET_NAME)\r
+\r
+################\r
+#   .o->.exe   #\r
+################\r
+\r
+${TARGET_EXE}:$(TARGET_OBJ)\r
+#@echo "$(CXX) $(OUT_FILE_LINK)${TARGET_EXE} $^ $(LDFLAGS)"\r
+       @echo ""\r
+       @echo "[CBI] -> Linking to   : "$(TARGET)\r
+       @echo ""\r
+       @echo "[CBI] -> Library Link :"\r
+ifeq (${OS},Win)\r
+ifeq (${COMPILATEUR},VISUAL)\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,.${EXTENSION_LIB},$(LDFLAGS))) \r
+endif\r
+ifeq (${COMPILATEUR},INTEL)\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,.${EXTENSION_LIB},$(LDFLAGS)))\r
+endif\r
+ifeq (${COMPILATEUR},MINGW)\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,-${LIB_FLAG_SEPARATOR},$(LDFLAGS))) \r
+endif\r
+else\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,-l,$(LDFLAGS))) \r
+endif\r
+       @$(CXX) $(OUT_FILE_LINK)${TARGET_EXE} $^ $(LDFLAGS)\r
+       @echo ""\r
+       @echo "=================================================================================="\r
+       @echo "[CBI] -> Target Name  : "$(TARGET_NAME)\r
+       @echo "[CBI] -> Location     : "$(TARGET)\r
+       @echo "[CBI] -> Deploy    : "$(TARGET_DEPLOY_PATH_BIN)\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Type              : "$(TARGET_MODE)\r
+       @echo "[CBI] -> Arch              : "$(ARCHI_32_64)\r
+       @echo "[CBI] -> OS                        : "$(OS)\r
+       @echo "[CBI] -> User              : "$(USER)\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Compilateur  : ${COMPILATEUR} (${CXX})"    \r
+       @echo "[CBI] -> Task          : End Compiling-Linking !" \r
+       @echo "[CBI] -> Time              : "${TIME_CURRENT} \r
+       @echo "=================================================================================="\r
+       @echo ""\r
+       \r
+################\r
+#   .o->.dll   #\r
+################\r
+\r
+${TARGET_DLL}:$(TARGET_OBJ)\r
+#@echo "$(CXX) $(OUT_FILE_LINK)${TARGET_DLL} $^ $(LDFLAGS)"\r
+       @echo ""\r
+       @echo "[$(TITLE)] -> Linking to   : "$(TARGET)\r
+       @echo ""\r
+       @echo "[$(TITLE)] -> Library Link :"\r
+       @echo ""\r
+#@echo ${LDFLAGS}\r
+ifeq (${OS},Win)\r
+ifeq (${COMPILATEUR},VISUAL)\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,.${EXTENSION_LIB},$(LDFLAGS)))\r
+endif\r
+ifeq (${COMPILATEUR},INTEL)\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,.${EXTENSION_LIB},$(LDFLAGS))) \r
+endif\r
+ifeq (${COMPILATEUR},MINGW)\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,-${LIB_FLAG_SEPARATOR},$(LDFLAGS)))\r
+endif\r
+else\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,-l,$(LDFLAGS))) \r
+endif\r
+       @echo ""\r
+       @$(CXX) $(OUT_FILE_LINK)${TARGET_DLL} $^ $(LDFLAGS)\r
+       @echo ""\r
+       @echo "=================================================================================="\r
+       @echo "[CBI] -> Target Name  : "$(TARGET_NAME)\r
+       @echo "[CBI] -> Location     : "$(TARGET)\r
+       @echo "[CBI] -> Deploy    : "$(TARGET_DEPLOY_PATH_BIN)\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Type              : "$(TARGET_MODE)\r
+       @echo "[CBI] -> Arch              : "$(ARCHI_32_64)\r
+       @echo "[CBI] -> OS                        : "$(OS)\r
+       @echo "[CBI] -> User              : "$(USER)\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Compilateur  : ${COMPILATEUR} (${CXX})"     \r
+       @echo "[CBI] -> Task          : End Compiling-Linking !" \r
+       @echo "[CBI] -> Time              : "${TIME_CURRENT} \r
+       @echo "=================================================================================="\r
+       @echo ""\r
+       \r
+################\r
+#  .o->.lib    #\r
+################\r
+\r
+${TARGET_LIB}:$(TARGET_OBJ)\r
+#@echo "${AR} ${AR_OUT_FLAG}${TARGET_LIB} ${ARFLAGS} $^"\r
+       @echo ""\r
+       @${AR} ${AR_OUT_FLAG}${TARGET_LIB} ${ARFLAGS} $^\r
+       @echo ""\r
+       @echo "=================================================================================="\r
+       @echo "[CBI] -> Target Name  : "$(TARGET_NAME)\r
+       @echo "[CBI] -> Location     : "$(TARGET)\r
+       @echo "[CBI] -> Deploy    : "$(TARGET_DEPLOY_PATH_BIN)\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Type              : "$(TARGET_MODE)\r
+       @echo "[CBI] -> Arch              : "$(ARCHI_32_64)\r
+       @echo "[CBI] -> OS                        : "$(OS)\r
+       @echo "[CBI] -> User              : "$(USER)\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Compilateur  : ${COMPILATEUR} (${CXX})" \r
+       @echo "[CBI] -> Task          : End Compiling-Archive !" \r
+       @echo "[CBI] -> Time              : "${TIME_CURRENT} \r
+       @echo "=================================================================================="\r
+       @echo ""\r
+       \r
+################\r
+#   .cpp->.o   #\r
+################\r
+\r
+$(TARGET_OBJ_PATH)/%.$(EXTENSION_OBJ):%.cpp  \r
+#@echo "$(CXX) $(CXXFLAGS) $(OUT_FILE_COMPILE)$@ -c  $<" \r
+#intelWin et visual affiche deja file\r
+ifeq (${COMPILATEUR},MINGW)\r
+       @echo "[$(TITLE)] -> ${CXX} compiling .cpp : "$<\r
+endif\r
+ifeq (${COMPILATEUR},g++)\r
+       @echo "[$(TITLE)] -> ${CXX} compiling .cpp : "$<\r
+endif\r
+ifeq (${COMPILATEUR},INTEL)\r
+ifeq (${OS},Linux)\r
+       @echo "[$(TITLE)] -> ${CXX} compiling .cpp : "$<\r
+endif\r
+endif\r
+       @$(CXX) $(CXXFLAGS) $(OUT_FILE_COMPILE)$@ -c  $< \r
+       \r
+# -c = compilation\r
+\r
+################\r
+#   .c->.o   #\r
+################\r
+\r
+$(TARGET_OBJ_PATH)/%.$(EXTENSION_OBJ):%.c  \r
+#@echo "" $(CXX) $(CXXFLAGS) $(OUT_FILE_COMPILE)$@ -c  $< \r
+#intelWin et visual affiche deja file\r
+ifeq (${COMPILATEUR},MINGW)\r
+       @echo "[$(TITLE)] -> ${CXX} compiling .c   : "$<\r
+endif\r
+ifeq (${COMPILATEUR},g++)\r
+       @echo "[$(TITLE)] -> ${CXX} compiling .c   : "$<\r
+endif\r
+ifeq (${COMPILATEUR},INTEL)\r
+ifeq (${OS},Linux)\r
+       @echo "[$(TITLE)] -> ${CXX} compiling .cpp : "$<\r
+endif\r
+endif\r
+       @$(CXX) $(CXXFLAGS) $(OUT_FILE_COMPILE)$@ -c  $< \r
+       \r
+# -c = compilation\r
+\r
+##############################################\r
+#                                TARGET                                     #\r
+##############################################\r
+\r
+all: echoing init $(TARGET) deploy\r
+       @echo ""\r
+       @echo "[CBI] -> "$(TITLE)" : End ALL!"\r
+       \r
+version:\r
+       @echo ""\r
+       @$(VERSION_CXX)\r
+       @echo ""\r
+\r
+help:\r
+       @echo ""\r
+       @$(CXX_HELP)\r
+       @echo ""\r
+\r
+##########\r
+# init   #\r
+##########\r
+\r
+init:\r
+#create folder heirerarchy TARGET_BIN_PATH iff don't exist\r
+ifeq (,$(findstring $(TARGET_BIN_PATH),$(wildcard $(TARGET_BIN_PATH) )))\r
+       @$(shell mkdir -p $(TARGET_BIN_PATH))\r
+       @echo "[CBI] -> Create folder : "$(TARGET_BIN_PATH)\r
+endif\r
+#create folder heirerarchy TARGET_OBJ_PATH iff don't exist\r
+ifeq (,$(findstring $(TARGET_OBJ_PATH),$(wildcard $(TARGET_OBJ_PATH) )))\r
+       @$(shell mkdir -p $(TARGET_OBJ_PATH))\r
+       @echo "[CBI] -> Create folder : "$(TARGET_OBJ_PATH)\r
+endif\r
+ifeq (,$(findstring $(TARGET_DEPLOY_PATH_BIN),$(wildcard $(TARGET_DEPLOY_PATH_BIN) )))\r
+       @$(shell mkdir -p $(TARGET_DEPLOY_PATH_BIN))\r
+       @echo "[CBI] -> Create folder : "$(TARGET_DEPLOY_PATH_BIN)\r
+endif\r
+       @echo ""\r
+\r
+# -p permet de cr�er l�arborescence complete si existe pas\r
+\r
+##########\r
+# run    #\r
+##########\r
+\r
+.PHONY: run\r
+run: printRuntimeInfo\r
+       @echo ""\r
+       @echo "[CBI] -> Running      : "$(TARGET)  $(ARGS)\r
+       @echo ""\r
+       @echo "------------------------------------------------------------------------"\r
+       @echo ""\r
+       @echo ""\r
+       @$(TARGET) $(ARGS)\r
+#$(MAKECMDGOALS) donne liste des para de make, et ainsi les args du code en c si il y en a\r
+\r
+.PHONY: runDeploy      \r
+runDeploy: printRuntimeInfo \r
+       @echo ""\r
+       @echo "[CBI] -> Running      : "$(TARGET_DEPLOY)  $(ARGS)\r
+       @echo ""\r
+       @echo "------------------------------------------------------------------------"\r
+       @echo ""\r
+       @echo ""\r
+       @$(TARGET_DEPLOY) $(ARGS)\r
+\r
+.PHONY: runGl\r
+runGl: printRuntimeInfo\r
+#gl is a wrapper of virtualgl\r
+#gl is necessary to run opengl remotely with turbovnc\r
+#OS : linux only\r
+       @echo ""\r
+       @echo "[CBI] -> Running remote-gl : "$(TARGET)  $(ARGS)\r
+       @echo ""\r
+       @echo ""\r
+       @gl $(TARGET) $(ARGS)\r
+\r
+.PHONY: runGlDeploy\r
+runGlDeploy: printRuntimeInfo\r
+#gl is a wrapper of virtualgl\r
+#gl is necessary to run opengl remotely with turbovnc\r
+#OS : linux only!\r
+       @echo ""\r
+       @echo "[CBI] -> Running remote-gl : "$(TARGET_DEPLOY)  $(ARGS)\r
+       @echo ""\r
+       @echo ""\r
+       @gl $(TARGET_DEPLOY) $(ARGS)\r
+\r
+\r
+.PHONY: printRuntimeInfo       \r
+printRuntimeInfo:\r
+       @echo "[CBI] -> API BIN      :"\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh ${sort ${API_BIN}}     \r
+       @echo ""\r
+       @echo "[CBI] -> ARGS         :"\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh ${sort ${ARGS}}        \r
+\r
+\r
+##########\r
+# kill   #\r
+##########\r
+\r
+.PHONY: killLinux              \r
+killLinux:\r
+       @echo "[CBI] -> killing : "${TARGET_NAME_EXE}\r
+       @killall ${TARGET_NAME_EXE}\r
+       @echo "[CBI] -> ..."\r
+       @echo "[CBI] -> done!"\r
+\r
+.PHONY: killWin\r
+killWin:\r
+       @echo "[CBI] -> killing : "${TARGET_NAME_EXE}\r
+       @powershell stop-process -processname ${TARGET_NAME}\r
+       @echo "[CBI] -> ..."\r
+       @echo "[CBI] -> done"!\r
+\r
+##########\r
+# depends #\r
+##########\r
+       \r
+.PHONY: dependenciesLinux\r
+dependenciesLinux: printRuntimeInfo\r
+       @echo ""\r
+ifeq (${TARGET_MODE},STATIC_LIB)       \r
+       @echo "[${TARGET_NAME}.${EXTENSION_LIB}] depends from :"\r
+       @echo ""\r
+       @ar -t ${TARGET_DEPLOY}\r
+else ifeq (${TARGET_MODE},SHARED_LIB)\r
+       @echo "[${TARGET_NAME}.${EXTENSION_DLL}] depends from :"\r
+       @echo ""\r
+       @ldd -v ${TARGET_DEPLOY}\r
+else\r
+       @echo "[${TARGET_NAME}.run] depends from :"\r
+       @echo ""\r
+       @ldd -v ${TARGET_DEPLOY}\r
+endif  \r
+       @echo ""\r
+\r
+.PHONY: dependenciesWin\r
+dependenciesWin:       printRuntimeInfo\r
+       @echo ""\r
+       @echo "[CBI] -> Dependencies .dll : "${TARGET_NAME_EXE}\r
+       @${DEPENDS_EXE} ${TARGET_DEPLOY}\r
+\r
+\r
+##########\r
+# contents #\r
+##########\r
+\r
+.PHONY: contentsLinux\r
+contentsLinux:\r
+       @echo ""\r
+ifeq (${TARGET_MODE},STATIC_LIB)       \r
+       @echo "[${TARGET_NAME}.${EXTENSION_LIB}] export :"\r
+       @echo ""\r
+       @ar -t ${TARGET_DEPLOY}\r
+else ifeq (${TARGET_MODE},SHARED_LIB)\r
+       @echo "[${TARGET_NAME}.${EXTENSION_DLL}] export:"\r
+       @echo ""\r
+       @echo "[CBI] -> nm"\r
+       @echo ""\r
+       @nm -D --defined-only --extern--only ${TARGET_DEPLOY}\r
+       @echo ""\r
+       @echo "[CBI] -> readelf"\r
+       @echo ""\r
+       @readelf -s ${TARGET_DEPLOY}\r
+endif  \r
+       @echo ""\r
+\r
+.PHONY: contententsWin\r
+contententsWin:        printRuntimeInfo\r
+       @echo ""\r
+       @echo "[CBI] -> Dependencies .dll : "${TARGET_NAME_EXE}\r
+       @${DEPENDS_EXE} ${TARGET_DEPLOY}\r
+\r
+##########\r
+# deploy #\r
+##########\r
+\r
+.PHONY: deploy\r
+deploy:\r
+ifdef IS_DEPLOY\r
+       @$(shell cp $(TARGET) $(TARGET_DEPLOY)) \r
+       @echo ""\r
+       @echo "[CBI] -> Deploying    : "$(TARGET_DEPLOY)\r
+ifneq ($(nbFileRessources),0)\r
+       @echo "[CBI] -> Copying      : "$(RESOURCES_PATH)" -> "${TARGET_DEPLOY_PATH_BIN}\r
+       @cp -f -r $(RESOURCES_PATH)/* $(TARGET_DEPLOY_PATH_BIN)\r
+endif\r
+endif\r
+\r
+##########\r
+# doc    #\r
+##########\r
+\r
+include ${ROOT_MAKEFILE_PRIVATE_DOC}/doxyCPP.mk\r
+\r
+##########\r
+# clean #\r
+##########\r
+\r
+.PHONY: clean  \r
+clean:\r
+       @rm -f $(TARGET_OBJ_PATH)/*.o\r
+       @rm -f $(TARGET_OBJ_PATH)/*.obj\r
+       @rm -f $(TARGET_BIN_PATH)/*.exp\r
+       @rm -f $(TARGET_BIN_PATH)/*.html\r
+       @rm -f $(TARGET_BIN_PATH)/*.lib\r
+       @rm -f $(TARGET_BIN_PATH)/*.a\r
+       @rm -f $(TARGET_BIN_PATH)/*.def\r
+       @rm -f $(TARGET_BIN_PATH)/*.map\r
+       @rm -f $(TARGET)\r
+       @rm -f $(TARGET_DEPLOY)\r
+       @rm -f $(TARGET_DOC_DEPLOY_FILE)\r
+       @rm -f -r $(TARGET_DOC_PATH)\r
+       @echo ""\r
+       @echo "=================================================================================="\r
+       @echo "[CBI] -> Target            : "$(TARGET_NAME)\r
+       @echo "[CBI] -> Task                       : DELETE"\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Delete .obj       : "$(TARGET_OBJ_PATH)\r
+       @echo "[CBI] -> Delete .bin       : "$(TARGET_BIN_PATH)\r
+       @echo "[CBI] -> Delete doc        : "$(TARGET_DOC_PATH)\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Delete deploy     : "$(TARGET_DEPLOY)\r
+       @echo "[CBI] -> Delete deploy doc : "$(TARGET_DOC_DEPLOY_FILE)\r
+       @echo "=================================================================================="\r
+       @echo ""\r
+\r
+# -v verbose\r
+# -r recursif\r
+# -f pas d'erreur si file existe pas\r
+#rm -rf #serait recursif (dangereux!!)\r
+\r
+.PHONY: cleanDeploy\r
+cleanDeploy:\r
+       @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.lib\r
+       @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.so\r
+       @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.dll\r
+       @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.run\r
+       @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.exe\r
+       @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.a\r
+       @rm -f ${TARGET_DEPLOY_PATH_DOC}/*.gz\r
+       \r
+\r
+.PHONY: cleanTemp\r
+cleanTemp:\r
+       @rm -f -r ${TARGET_PATH_ROOT}\r
+       \r
+.PHONY: cleanAll       \r
+cleanAll: cleanTitleStart cleanDeploy cleanTemp cleanTitleEnd\r
+\r
+.PHONY: cleanTitleStart\r
+cleanTitleStart:\r
+       @echo "=================================================================================="\r
+       @echo "[CBI] -> Delete            : "${TARGET_DEPLOY_PATH_BIN}"/*"\r
+       @echo "[CBI] -> Delete            : "${TARGET_DEPLOY_PATH_DOC}"/*"\r
+       @echo "[CBI] -> Delete            : "${TARGET_PATH_ROOT}\r
+       @echo "=================================================================================="\r
+       @echo ""\r
+       @echo "[CBI] -> Please wait ..."\r
+       @echo "[CBI] -> Deleting    ..."\r
+       @echo ""\r
+\r
+.PHONY: cleanTitleEnd\r
+cleanTitleEnd:\r
+       @echo "=================================================================================="\r
+       @echo "[CBI] -> Delete            : finished!"\r
+       @echo "=================================================================================="\r
+       \r
+##########\r
+# echo   #\r
+##########\r
+\r
+.PHONY: echoing\r
+echoing:\r
+       @echo "=================================================================================="\r
+       @echo "[CBI] -> Target Name  : "$(TARGET_NAME)\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Build             : "$(TARGET)\r
+       @echo "[CBI] -> Deploy       : "$(TARGET_DEPLOY_PATH_BIN)\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Type              : "$(TARGET_MODE)\r
+       @echo "[CBI] -> Arch              : "$(ARCHI_32_64)\r
+       @echo "[CBI] -> OS                        : "$(OS)\r
+       @echo "[CBI] -> User              : "$(USER)\r
+       @echo "[CBI] ->"\r
+       @echo "[CBI] -> Task              : Compiling-Linking" \r
+#@echo "[CBI]->Time                     : "${TIME_CURRENT} \r
+       @echo "=================================================================================="\r
+       @echo ""\r
+       @echo "[CBI] -> SRC AUX (Recursif) :"\r
+       @echo "[CBI] ->"  \r
+#@echo $(SRC_AUX)  \r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh  $(sort $(SRC_AUX))\r
+       @echo "" \r
+       @echo "[CBI] -> CXXFLAGS (Partial) :"\r
+       @echo "[CBI] ->"   \r
+#@echo $(CXXFLAGS)\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,${OPTION_SEPARATOR}$(HEADER_OPTION),$(CXXFLAGS))) \r
+       @echo "" \r
+ifneq (${TARGET_MODE},STATIC_LIB)\r
+       @echo "[CBI] -> LDFLAGS (Partial) :"\r
+       @echo "[CBI] ->"  \r
+#@echo $(LDFLAGS)\r
+ifeq (${OS},Win)\r
+ifeq (${COMPILATEUR},VISUAL)\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,${LIB_PATH_SEPARATOR},$(call not-containing,.${EXTENSION_LIB},$(LDFLAGS)))) \r
+endif\r
+ifeq (${COMPILATEUR},INTEL)\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,${LIB_PATH_SEPARATOR},$(call not-containing,.${EXTENSION_LIB},$(LDFLAGS))))\r
+endif\r
+ifeq (${COMPILATEUR},MINGW)\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,-${LIB_FLAG_SEPARATOR},$(call not-containing,-${LIB_PATH_SEPARATOR},$(LDFLAGS)))) \r
+endif\r
+else\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,-${LIB_FLAG_SEPARATOR},$(call not-containing,-${LIB_PATH_SEPARATOR},$(LDFLAGS)))) \r
+endif\r
+endif\r
+       @echo "" \r
+       @echo "[CBI] -> INC_PATH (auto detect):"\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh  $(sort $(INC_PATH))\r
+       @echo "" \r
+       @echo "" \r
+       @echo "[CBI] -> LIB_PATH (auto detect):"\r
+       @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh  $(sort $(LIB_PATH))\r
+       @echo "" \r
+       \r
+\r
+##############################################\r
+#                               HELP                                #\r
+##############################################\r
+\r
+# target : dependencies\r
+#\r
+# $@ = name of the target\r
+# $^ = all dependencie of a target\r
+# $< =first (unique dependency of a target) (rm, compilation,linking)\r
+#\r
+# @ = diminue verbosite commande\r
+#\r
+# Attention : tabulation obligatoire avant commande dans rule!!\r
+#\r
+# http://www.gnu.org/software/make/manual/\r
+\r
+#############################################\r
+#                               END                                #\r
+#############################################\r
+\r
+endif#__CPP_MK__\r
+\r