Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BUILDER / makefile / private / cpp / cpp.mk
1 # Version : 0.0.7
2 # Date : 04.03.2014
3 # Author : Cedric.Bilat@he-arc.ch
4 #
5 # See : OptionCompilateur.txt
6 #
7 # Hyp : Application that must be in path
8 # nvcc
9 # make
10 # g++
11 # gcc
12
13 ##############################################
14 # Temp #
15 ##############################################
16
17 # Hyp : Environement Variables must be set
18 #
19 # ARCHI_32_64 : 32 or 64
20
21 ifndef __CPP_MK__
22 __CPP_MK__=true
23
24 ##############################################
25 # Variables #
26 ##############################################
27
28 #OS:=$(shell uname)
29 #MACHINE:=${shell uname -m}
30
31 ########
32 #32/64 #
33 ########
34
35 ifneq ($(ARCH),arm)
36 TARGET_NAME:=${TARGET_NAME}_$(ARCHI_32_64)
37 else
38 TARGET_NAME:=$(TARGET_NAME)_ARM
39 endif
40
41 ########
42 #setfile #
43 ########
44
45 OBJ_FILES_CPP:= $(SRC_CPP_FILES:.cpp=.$(EXTENSION_OBJ))
46 OBJ_FILES_C:= $(SRC_C_FILES:.c=.$(EXTENSION_OBJ))
47
48 OBJ_FILES:= ${OBJ_FILES_CPP} ${OBJ_FILES_C}
49
50 ##########
51 # TARGET #
52 ##########
53
54 TARGET_NAME_EXE:=$(TARGET_NAME).${EXTENSION_EXE}
55 TARGET_NAME_DLL:=${LIB_PREFIXE}$(TARGET_NAME).$(EXTENSION_DLL)
56 TARGET_NAME_LIB:=${LIB_PREFIXE}$(TARGET_NAME).${EXTENSION_LIB}
57
58 TARGET_EXE:=${TARGET_BIN_PATH}/$(TARGET_NAME_EXE)
59 TARGET_DLL:=${TARGET_BIN_PATH}/$(TARGET_NAME_DLL)
60 TARGET_LIB:=${TARGET_BIN_PATH}/$(TARGET_NAME_LIB)
61 TARGET_OBJ:=$(addprefix $(TARGET_OBJ_PATH)/,$(notdir $(OBJ_FILES)))
62
63 #Selection de la target en fonction TARGET_MODE
64 ifeq ($(TARGET_MODE),EXE)
65 TARGET:=${TARGET_EXE}
66 TARGET_DEPLOY:=$(TARGET_DEPLOY_PATH_BIN)/$(TARGET_NAME_EXE)
67 endif
68
69 ifeq ($(TARGET_MODE),SHARED_LIB)
70 TARGET:=${TARGET_DLL}
71 TARGET_DEPLOY:=$(TARGET_DEPLOY_PATH_BIN)/$(TARGET_NAME_DLL)
72 override LDFLAGS += $(LINK_FLAG_DLL)
73 endif
74
75 ifeq ($(TARGET_MODE),STATIC_LIB)
76 TARGET:=${TARGET_LIB}
77 TARGET_DEPLOY:=$(TARGET_DEPLOY_PATH_BIN)/$(TARGET_NAME_LIB)
78 endif
79
80 ##########
81 # RESSOURCES #
82 ##########
83
84 ifeq (,$(findstring $(RESOURCES_PATH),$(wildcard $(RESOURCES_PATH) )))
85 nbFileRessources:=0
86 else
87 nbFileRessources:=$(shell ls $(RESOURCES_PATH) | wc -l )
88 endif
89
90 ##########
91 # securite #
92 ##########
93
94 VPATH := $(SRC_PATH_ALL)
95
96
97 ##########
98 # runtime #
99 ##########
100
101 space:= #ne suufit pas ajoutre espaca, mais += le fait!
102 space+=#
103
104 ifeq (${OS},Win)
105 separateurPath:=;#
106 else
107 separateurPath:=:#
108 endif
109
110 API_BIN_FORMATTER:=$(subst ${space},${separateurPath},${API_BIN})
111
112 ifeq (${OS},Win)
113 override PATH:=${PATH}${separateurPath}${API_BIN_FORMATTER}#
114 export ${PATH}#
115 else
116 override LD_LIBRARY_PATH:=${LD_LIBRARY_PATH}${separateurPath}${API_BIN_FORMATTER}#
117 export ${LD_LIBRARY_PATH}#fixme semble pas marcher
118 endif
119
120
121
122 ########
123 #optimisation #
124 ########
125
126 include ${ROOT_MAKEFILE_PRIVATE_CPP}/optimisation.mk
127
128 ########
129 #arm #
130 ########
131
132 include ${ROOT_MAKEFILE_PRIVATE_CPP}/gcc_arm.mk
133
134 ##########
135 # exclude #
136 ##########
137
138 override CXXFLAGS:=$(filter-out $(CXXFLAGS_EXCLUDE),$(CXXFLAGS))
139 #https://www.gnu.org/software/make/manual/make.html#Functions
140
141 ##########
142 # unicitye #
143 ##########
144
145 UNICITY=true
146
147 ifdef UNICITY
148
149 override CXXFLAGS:=$(call uniq,${CXXFLAGS})
150 override CXXLDFLAGS:=$(call uniq,${CXXLDFLAGS})
151 override ARFLAGS:=$(call uniq,${ARFLAGS})
152 #override AR_OUT_FLAG:=$(call uniq,${AR_OUT_FLAG})#met espace apres /out, pas pour visual/intel
153
154 #debug
155 #${info "CXXFLAGS= "${CXXFLAGS}}#print immediately
156 #${info "CXXLDFLAGS"= ${CXXLDFLAGS}}#print immediatel
157 #${info "ARFLAGS= "${ARFLAGS}}#print immediatel
158 #${info "AR_OUT_FLAG= "${AR_OUT_FLAG}}#print immediatel
159
160 endif#UNICITY
161
162 ##########
163 # remove space #
164 ##########
165
166 #let a minimum of one space
167 REMOVE_SPACE=true
168
169 ifdef REMOVE_SPACE
170
171 override CXXFLAGS:=$(strip ${CXXFLAGS})
172 override CXXLDFLAGS:=$(strip ${CXXLDFLAGS})
173 override ARFLAGS:=$(strip ${ARFLAGS})
174 #override AR_OUT_FLAG:=$(strip ${AR_OUT_FLAG}) #pas pour mingw car enleve espace apres -r
175
176 #override CXXFLAGS:=$(subst $(space),,$(CXXFLAGS))
177
178 endif#REMOVE_SPACE
179
180
181 ##########
182 # chrono #
183 ##########
184
185 override TIME_START:=$(shell date +%T)
186 TIME_CURRENT=$(shell date +%T)
187 #TIME_DELTA:=$(shell echo $(TIME_CURRENT) - $(TIME_START) | bc) #marche pas
188
189 ##############################################
190 # Rules #
191 ##############################################
192
193 # tabulation obligatoire before @
194
195 TITLE:=$(TARGET_NAME)
196
197 ################
198 # .o->.exe #
199 ################
200
201 ${TARGET_EXE}:$(TARGET_OBJ)
202 #@echo "$(CXX) $(OUT_FILE_LINK)${TARGET_EXE} $^ $(LDFLAGS)"
203 @echo ""
204 @echo "[CBI] -> Linking to : "$(TARGET)
205 @echo ""
206 @echo "[CBI] -> Library Link :"
207 ifeq (${OS},Win)
208 ifeq (${COMPILATEUR},VISUAL)
209 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,.${EXTENSION_LIB},$(LDFLAGS)))
210 endif
211 ifeq (${COMPILATEUR},INTEL)
212 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,.${EXTENSION_LIB},$(LDFLAGS)))
213 endif
214 ifeq (${COMPILATEUR},MINGW)
215 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,-${LIB_FLAG_SEPARATOR},$(LDFLAGS)))
216 endif
217 else
218 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,-l,$(LDFLAGS)))
219 endif
220 @$(CXX) $(OUT_FILE_LINK)${TARGET_EXE} $^ $(LDFLAGS)
221 @echo ""
222 @echo "=================================================================================="
223 @echo "[CBI] -> Target Name : "$(TARGET_NAME)
224 @echo "[CBI] -> Location : "$(TARGET)
225 @echo "[CBI] -> Deploy : "$(TARGET_DEPLOY_PATH_BIN)
226 @echo "[CBI] ->"
227 @echo "[CBI] -> Type : "$(TARGET_MODE)
228 @echo "[CBI] -> Arch : "$(ARCHI_32_64)
229 @echo "[CBI] -> OS : "$(OS)
230 @echo "[CBI] -> User : "$(USER)
231 @echo "[CBI] ->"
232 @echo "[CBI] -> Compilateur : ${COMPILATEUR} (${CXX})"
233 @echo "[CBI] -> Task : End Compiling-Linking !"
234 @echo "[CBI] -> Time : "${TIME_CURRENT}
235 @echo "=================================================================================="
236 @echo ""
237
238 ################
239 # .o->.dll #
240 ################
241
242 ${TARGET_DLL}:$(TARGET_OBJ)
243 #@echo "$(CXX) $(OUT_FILE_LINK)${TARGET_DLL} $^ $(LDFLAGS)"
244 @echo ""
245 @echo "[$(TITLE)] -> Linking to : "$(TARGET)
246 @echo ""
247 @echo "[$(TITLE)] -> Library Link :"
248 @echo ""
249 #@echo ${LDFLAGS}
250 ifeq (${OS},Win)
251 ifeq (${COMPILATEUR},VISUAL)
252 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,.${EXTENSION_LIB},$(LDFLAGS)))
253 endif
254 ifeq (${COMPILATEUR},INTEL)
255 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,.${EXTENSION_LIB},$(LDFLAGS)))
256 endif
257 ifeq (${COMPILATEUR},MINGW)
258 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,-${LIB_FLAG_SEPARATOR},$(LDFLAGS)))
259 endif
260 else
261 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call containing,-l,$(LDFLAGS)))
262 endif
263 @echo ""
264 @$(CXX) $(OUT_FILE_LINK)${TARGET_DLL} $^ $(LDFLAGS)
265 @echo ""
266 @echo "=================================================================================="
267 @echo "[CBI] -> Target Name : "$(TARGET_NAME)
268 @echo "[CBI] -> Location : "$(TARGET)
269 @echo "[CBI] -> Deploy : "$(TARGET_DEPLOY_PATH_BIN)
270 @echo "[CBI] ->"
271 @echo "[CBI] -> Type : "$(TARGET_MODE)
272 @echo "[CBI] -> Arch : "$(ARCHI_32_64)
273 @echo "[CBI] -> OS : "$(OS)
274 @echo "[CBI] -> User : "$(USER)
275 @echo "[CBI] ->"
276 @echo "[CBI] -> Compilateur : ${COMPILATEUR} (${CXX})"
277 @echo "[CBI] -> Task : End Compiling-Linking !"
278 @echo "[CBI] -> Time : "${TIME_CURRENT}
279 @echo "=================================================================================="
280 @echo ""
281
282 ################
283 # .o->.lib #
284 ################
285
286 ${TARGET_LIB}:$(TARGET_OBJ)
287 #@echo "${AR} ${AR_OUT_FLAG}${TARGET_LIB} ${ARFLAGS} $^"
288 @echo ""
289 @${AR} ${AR_OUT_FLAG}${TARGET_LIB} ${ARFLAGS} $^
290 @echo ""
291 @echo "=================================================================================="
292 @echo "[CBI] -> Target Name : "$(TARGET_NAME)
293 @echo "[CBI] -> Location : "$(TARGET)
294 @echo "[CBI] -> Deploy : "$(TARGET_DEPLOY_PATH_BIN)
295 @echo "[CBI] ->"
296 @echo "[CBI] -> Type : "$(TARGET_MODE)
297 @echo "[CBI] -> Arch : "$(ARCHI_32_64)
298 @echo "[CBI] -> OS : "$(OS)
299 @echo "[CBI] -> User : "$(USER)
300 @echo "[CBI] ->"
301 @echo "[CBI] -> Compilateur : ${COMPILATEUR} (${CXX})"
302 @echo "[CBI] -> Task : End Compiling-Archive !"
303 @echo "[CBI] -> Time : "${TIME_CURRENT}
304 @echo "=================================================================================="
305 @echo ""
306
307 ################
308 # .cpp->.o #
309 ################
310
311 $(TARGET_OBJ_PATH)/%.$(EXTENSION_OBJ):%.cpp
312 #@echo "$(CXX) $(CXXFLAGS) $(OUT_FILE_COMPILE)$@ -c $<"
313 #intelWin et visual affiche deja file
314 ifeq (${COMPILATEUR},MINGW)
315 @echo "[$(TITLE)] -> ${CXX} compiling .cpp : "$<
316 endif
317 ifeq (${COMPILATEUR},g++)
318 @echo "[$(TITLE)] -> ${CXX} compiling .cpp : "$<
319 endif
320 ifeq (${COMPILATEUR},INTEL)
321 ifeq (${OS},Linux)
322 @echo "[$(TITLE)] -> ${CXX} compiling .cpp : "$<
323 endif
324 endif
325 @$(CXX) $(CXXFLAGS) $(OUT_FILE_COMPILE)$@ -c $<
326
327 # -c = compilation
328
329 ################
330 # .c->.o #
331 ################
332
333 $(TARGET_OBJ_PATH)/%.$(EXTENSION_OBJ):%.c
334 #@echo "" $(CXX) $(CXXFLAGS) $(OUT_FILE_COMPILE)$@ -c $<
335 #intelWin et visual affiche deja file
336 ifeq (${COMPILATEUR},MINGW)
337 @echo "[$(TITLE)] -> ${CXX} compiling .c : "$<
338 endif
339 ifeq (${COMPILATEUR},g++)
340 @echo "[$(TITLE)] -> ${CXX} compiling .c : "$<
341 endif
342 ifeq (${COMPILATEUR},INTEL)
343 ifeq (${OS},Linux)
344 @echo "[$(TITLE)] -> ${CXX} compiling .cpp : "$<
345 endif
346 endif
347 @$(CXX) $(CXXFLAGS) $(OUT_FILE_COMPILE)$@ -c $<
348
349 # -c = compilation
350
351 ##############################################
352 # TARGET #
353 ##############################################
354
355 all: echoing init $(TARGET) deploy
356 @echo ""
357 @echo "[CBI] -> "$(TITLE)" : End ALL!"
358
359 version:
360 @echo ""
361 @$(VERSION_CXX)
362 @echo ""
363
364 help:
365 @echo ""
366 @$(CXX_HELP)
367 @echo ""
368
369 ##########
370 # init #
371 ##########
372
373 init:
374 #create folder heirerarchy TARGET_BIN_PATH iff don't exist
375 ifeq (,$(findstring $(TARGET_BIN_PATH),$(wildcard $(TARGET_BIN_PATH) )))
376 @$(shell mkdir -p $(TARGET_BIN_PATH))
377 @echo "[CBI] -> Create folder : "$(TARGET_BIN_PATH)
378 endif
379 #create folder heirerarchy TARGET_OBJ_PATH iff don't exist
380 ifeq (,$(findstring $(TARGET_OBJ_PATH),$(wildcard $(TARGET_OBJ_PATH) )))
381 @$(shell mkdir -p $(TARGET_OBJ_PATH))
382 @echo "[CBI] -> Create folder : "$(TARGET_OBJ_PATH)
383 endif
384 ifeq (,$(findstring $(TARGET_DEPLOY_PATH_BIN),$(wildcard $(TARGET_DEPLOY_PATH_BIN) )))
385 @$(shell mkdir -p $(TARGET_DEPLOY_PATH_BIN))
386 @echo "[CBI] -> Create folder : "$(TARGET_DEPLOY_PATH_BIN)
387 endif
388 @echo ""
389
390 # -p permet de cr�er l�arborescence complete si existe pas
391
392 ##########
393 # run #
394 ##########
395
396 .PHONY: run
397 run: printRuntimeInfo
398 @echo ""
399 @echo "[CBI] -> Running : "$(TARGET) $(ARGS)
400 @echo ""
401 @echo "------------------------------------------------------------------------"
402 @echo ""
403 @echo ""
404 @$(TARGET) $(ARGS)
405 #$(MAKECMDGOALS) donne liste des para de make, et ainsi les args du code en c si il y en a
406
407 .PHONY: runDeploy
408 runDeploy: printRuntimeInfo
409 @echo ""
410 @echo "[CBI] -> Running : "$(TARGET_DEPLOY) $(ARGS)
411 @echo ""
412 @echo "------------------------------------------------------------------------"
413 @echo ""
414 @echo ""
415 @$(TARGET_DEPLOY) $(ARGS)
416
417 .PHONY: runGl
418 runGl: printRuntimeInfo
419 #gl is a wrapper of virtualgl
420 #gl is necessary to run opengl remotely with turbovnc
421 #OS : linux only
422 @echo ""
423 @echo "[CBI] -> Running remote-gl : "$(TARGET) $(ARGS)
424 @echo ""
425 @echo ""
426 @gl $(TARGET) $(ARGS)
427
428 .PHONY: runGlDeploy
429 runGlDeploy: printRuntimeInfo
430 #gl is a wrapper of virtualgl
431 #gl is necessary to run opengl remotely with turbovnc
432 #OS : linux only!
433 @echo ""
434 @echo "[CBI] -> Running remote-gl : "$(TARGET_DEPLOY) $(ARGS)
435 @echo ""
436 @echo ""
437 @gl $(TARGET_DEPLOY) $(ARGS)
438
439
440 .PHONY: printRuntimeInfo
441 printRuntimeInfo:
442 @echo "[CBI] -> API BIN :"
443 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh ${sort ${API_BIN}}
444 @echo ""
445 @echo "[CBI] -> ARGS :"
446 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh ${sort ${ARGS}}
447
448
449 ##########
450 # kill #
451 ##########
452
453 .PHONY: killLinux
454 killLinux:
455 @echo "[CBI] -> killing : "${TARGET_NAME_EXE}
456 @killall ${TARGET_NAME_EXE}
457 @echo "[CBI] -> ..."
458 @echo "[CBI] -> done!"
459
460 .PHONY: killWin
461 killWin:
462 @echo "[CBI] -> killing : "${TARGET_NAME_EXE}
463 @powershell stop-process -processname ${TARGET_NAME}
464 @echo "[CBI] -> ..."
465 @echo "[CBI] -> done"!
466
467 ##########
468 # depends #
469 ##########
470
471 .PHONY: dependenciesLinux
472 dependenciesLinux: printRuntimeInfo
473 @echo ""
474 ifeq (${TARGET_MODE},STATIC_LIB)
475 @echo "[${TARGET_NAME}.${EXTENSION_LIB}] depends from :"
476 @echo ""
477 @ar -t ${TARGET_DEPLOY}
478 else ifeq (${TARGET_MODE},SHARED_LIB)
479 @echo "[${TARGET_NAME}.${EXTENSION_DLL}] depends from :"
480 @echo ""
481 @ldd -v ${TARGET_DEPLOY}
482 else
483 @echo "[${TARGET_NAME}.run] depends from :"
484 @echo ""
485 @ldd -v ${TARGET_DEPLOY}
486 endif
487 @echo ""
488
489 .PHONY: dependenciesWin
490 dependenciesWin: printRuntimeInfo
491 @echo ""
492 @echo "[CBI] -> Dependencies .dll : "${TARGET_NAME_EXE}
493 @${DEPENDS_EXE} ${TARGET_DEPLOY}
494
495
496 ##########
497 # contents #
498 ##########
499
500 .PHONY: contentsLinux
501 contentsLinux:
502 @echo ""
503 ifeq (${TARGET_MODE},STATIC_LIB)
504 @echo "[${TARGET_NAME}.${EXTENSION_LIB}] export :"
505 @echo ""
506 @ar -t ${TARGET_DEPLOY}
507 else ifeq (${TARGET_MODE},SHARED_LIB)
508 @echo "[${TARGET_NAME}.${EXTENSION_DLL}] export:"
509 @echo ""
510 @echo "[CBI] -> nm"
511 @echo ""
512 @nm -D --defined-only --extern--only ${TARGET_DEPLOY}
513 @echo ""
514 @echo "[CBI] -> readelf"
515 @echo ""
516 @readelf -s ${TARGET_DEPLOY}
517 endif
518 @echo ""
519
520 .PHONY: contententsWin
521 contententsWin: printRuntimeInfo
522 @echo ""
523 @echo "[CBI] -> Dependencies .dll : "${TARGET_NAME_EXE}
524 @${DEPENDS_EXE} ${TARGET_DEPLOY}
525
526 ##########
527 # deploy #
528 ##########
529
530 .PHONY: deploy
531 deploy:
532 ifdef IS_DEPLOY
533 @$(shell cp $(TARGET) $(TARGET_DEPLOY))
534 @echo ""
535 @echo "[CBI] -> Deploying : "$(TARGET_DEPLOY)
536 ifneq ($(nbFileRessources),0)
537 @echo "[CBI] -> Copying : "$(RESOURCES_PATH)" -> "${TARGET_DEPLOY_PATH_BIN}
538 @cp -f -r $(RESOURCES_PATH)/* $(TARGET_DEPLOY_PATH_BIN)
539 endif
540 endif
541
542 ##########
543 # doc #
544 ##########
545
546 include ${ROOT_MAKEFILE_PRIVATE_DOC}/doxyCPP.mk
547
548 ##########
549 # clean #
550 ##########
551
552 .PHONY: clean
553 clean:
554 @rm -f $(TARGET_OBJ_PATH)/*.o
555 @rm -f $(TARGET_OBJ_PATH)/*.obj
556 @rm -f $(TARGET_BIN_PATH)/*.exp
557 @rm -f $(TARGET_BIN_PATH)/*.html
558 @rm -f $(TARGET_BIN_PATH)/*.lib
559 @rm -f $(TARGET_BIN_PATH)/*.a
560 @rm -f $(TARGET_BIN_PATH)/*.def
561 @rm -f $(TARGET_BIN_PATH)/*.map
562 @rm -f $(TARGET)
563 @rm -f $(TARGET_DEPLOY)
564 @rm -f $(TARGET_DOC_DEPLOY_FILE)
565 @rm -f -r $(TARGET_DOC_PATH)
566 @echo ""
567 @echo "=================================================================================="
568 @echo "[CBI] -> Target : "$(TARGET_NAME)
569 @echo "[CBI] -> Task : DELETE"
570 @echo "[CBI] ->"
571 @echo "[CBI] -> Delete .obj : "$(TARGET_OBJ_PATH)
572 @echo "[CBI] -> Delete .bin : "$(TARGET_BIN_PATH)
573 @echo "[CBI] -> Delete doc : "$(TARGET_DOC_PATH)
574 @echo "[CBI] ->"
575 @echo "[CBI] -> Delete deploy : "$(TARGET_DEPLOY)
576 @echo "[CBI] -> Delete deploy doc : "$(TARGET_DOC_DEPLOY_FILE)
577 @echo "=================================================================================="
578 @echo ""
579
580 # -v verbose
581 # -r recursif
582 # -f pas d'erreur si file existe pas
583 #rm -rf #serait recursif (dangereux!!)
584
585 .PHONY: cleanDeploy
586 cleanDeploy:
587 @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.lib
588 @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.so
589 @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.dll
590 @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.run
591 @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.exe
592 @rm -f ${TARGET_DEPLOY_PATH_BIN}/*.a
593 @rm -f ${TARGET_DEPLOY_PATH_DOC}/*.gz
594
595
596 .PHONY: cleanTemp
597 cleanTemp:
598 @rm -f -r ${TARGET_PATH_ROOT}
599
600 .PHONY: cleanAll
601 cleanAll: cleanTitleStart cleanDeploy cleanTemp cleanTitleEnd
602
603 .PHONY: cleanTitleStart
604 cleanTitleStart:
605 @echo "=================================================================================="
606 @echo "[CBI] -> Delete : "${TARGET_DEPLOY_PATH_BIN}"/*"
607 @echo "[CBI] -> Delete : "${TARGET_DEPLOY_PATH_DOC}"/*"
608 @echo "[CBI] -> Delete : "${TARGET_PATH_ROOT}
609 @echo "=================================================================================="
610 @echo ""
611 @echo "[CBI] -> Please wait ..."
612 @echo "[CBI] -> Deleting ..."
613 @echo ""
614
615 .PHONY: cleanTitleEnd
616 cleanTitleEnd:
617 @echo "=================================================================================="
618 @echo "[CBI] -> Delete : finished!"
619 @echo "=================================================================================="
620
621 ##########
622 # echo #
623 ##########
624
625 .PHONY: echoing
626 echoing:
627 @echo "=================================================================================="
628 @echo "[CBI] -> Target Name : "$(TARGET_NAME)
629 @echo "[CBI] ->"
630 @echo "[CBI] -> Build : "$(TARGET)
631 @echo "[CBI] -> Deploy : "$(TARGET_DEPLOY_PATH_BIN)
632 @echo "[CBI] ->"
633 @echo "[CBI] -> Type : "$(TARGET_MODE)
634 @echo "[CBI] -> Arch : "$(ARCHI_32_64)
635 @echo "[CBI] -> OS : "$(OS)
636 @echo "[CBI] -> User : "$(USER)
637 @echo "[CBI] ->"
638 @echo "[CBI] -> Task : Compiling-Linking"
639 #@echo "[CBI]->Time : "${TIME_CURRENT}
640 @echo "=================================================================================="
641 @echo ""
642 @echo "[CBI] -> SRC AUX (Recursif) :"
643 @echo "[CBI] ->"
644 #@echo $(SRC_AUX)
645 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(SRC_AUX))
646 @echo ""
647 @echo "[CBI] -> CXXFLAGS (Partial) :"
648 @echo "[CBI] ->"
649 #@echo $(CXXFLAGS)
650 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,${OPTION_SEPARATOR}$(HEADER_OPTION),$(CXXFLAGS)))
651 @echo ""
652 ifneq (${TARGET_MODE},STATIC_LIB)
653 @echo "[CBI] -> LDFLAGS (Partial) :"
654 @echo "[CBI] ->"
655 #@echo $(LDFLAGS)
656 ifeq (${OS},Win)
657 ifeq (${COMPILATEUR},VISUAL)
658 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,${LIB_PATH_SEPARATOR},$(call not-containing,.${EXTENSION_LIB},$(LDFLAGS))))
659 endif
660 ifeq (${COMPILATEUR},INTEL)
661 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,${LIB_PATH_SEPARATOR},$(call not-containing,.${EXTENSION_LIB},$(LDFLAGS))))
662 endif
663 ifeq (${COMPILATEUR},MINGW)
664 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,-${LIB_FLAG_SEPARATOR},$(call not-containing,-${LIB_PATH_SEPARATOR},$(LDFLAGS))))
665 endif
666 else
667 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(call not-containing,-${LIB_FLAG_SEPARATOR},$(call not-containing,-${LIB_PATH_SEPARATOR},$(LDFLAGS))))
668 endif
669 endif
670 @echo ""
671 @echo "[CBI] -> INC_PATH (auto detect):"
672 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(INC_PATH))
673 @echo ""
674 @echo ""
675 @echo "[CBI] -> LIB_PATH (auto detect):"
676 @${ROOT_MAKEFILE_PRIVATE_COMMON_SCRIPT}/print.sh $(sort $(LIB_PATH))
677 @echo ""
678
679
680 ##############################################
681 # HELP #
682 ##############################################
683
684 # target : dependencies
685 #
686 # $@ = name of the target
687 # $^ = all dependencie of a target
688 # $< =first (unique dependency of a target) (rm, compilation,linking)
689 #
690 # @ = diminue verbosite commande
691 #
692 # Attention : tabulation obligatoire avant commande dans rule!!
693 #
694 # http://www.gnu.org/software/make/manual/
695
696 #############################################
697 # END #
698 #############################################
699
700 endif#__CPP_MK__
701