420 # After that, we can set additional C++ flags that should not interfere 421 # with the mechanism for copying the C flags by default. 422 ifeq ($$($1_CXXFLAGS),) 423 $1_CXXFLAGS:=$$($1_CFLAGS) 424 endif 425 ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)),) 426 $1_EXTRA_CXXFLAGS:=$$($1_EXTRA_CFLAGS) 427 endif 428 429 ifneq (,$$($1_REORDER)) 430 $1_EXTRA_CFLAGS += $$(C_FLAG_REORDER) 431 $1_EXTRA_CXXFLAGS += $$(CXX_FLAG_REORDER) 432 endif 433 434 # Pick up disabled warnings, if possible on this platform. 435 ifneq ($(DISABLE_WARNING_PREFIX),) 436 $1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) 437 $1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) 438 endif 439 440 ifeq (NONE, $$($1_OPTIMIZATION)) 441 $1_EXTRA_CFLAGS += $(C_O_FLAG_NONE) 442 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NONE) 443 else ifeq (LOW, $$($1_OPTIMIZATION)) 444 $1_EXTRA_CFLAGS += $(C_O_FLAG_NORM) 445 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NORM) 446 else ifeq (HIGH, $$($1_OPTIMIZATION)) 447 $1_EXTRA_CFLAGS += $(C_O_FLAG_HI) 448 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HI) 449 else ifeq (HIGHEST, $$($1_OPTIMIZATION)) 450 $1_EXTRA_CFLAGS += $(C_O_FLAG_HIGHEST) 451 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HIGHEST) 452 else ifneq (, $$($1_OPTIMIZATION)) 453 $$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION)) 454 endif 455 456 $1_BUILD_INFO := $$($1_OBJECT_DIR)/_build-info.marker 457 458 # Track variable changes for all variables that affect the compilation command 459 # lines for all object files in this setup. This includes at least all the | 420 # After that, we can set additional C++ flags that should not interfere 421 # with the mechanism for copying the C flags by default. 422 ifeq ($$($1_CXXFLAGS),) 423 $1_CXXFLAGS:=$$($1_CFLAGS) 424 endif 425 ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)),) 426 $1_EXTRA_CXXFLAGS:=$$($1_EXTRA_CFLAGS) 427 endif 428 429 ifneq (,$$($1_REORDER)) 430 $1_EXTRA_CFLAGS += $$(C_FLAG_REORDER) 431 $1_EXTRA_CXXFLAGS += $$(CXX_FLAG_REORDER) 432 endif 433 434 # Pick up disabled warnings, if possible on this platform. 435 ifneq ($(DISABLE_WARNING_PREFIX),) 436 $1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) 437 $1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) 438 endif 439 440 # Check if warnings should be considered errors. 441 # Pick first binary and toolchain specific, then binary specific, then general setting. 442 ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)),) 443 ifeq ($$($1_WARNINGS_AS_ERRORS),) 444 $1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE) := $$(WARNINGS_AS_ERRORS) 445 else 446 $1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE) := $$($1_WARNINGS_AS_ERRORS) 447 endif 448 endif 449 450 ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)), true) 451 $1_EXTRA_CFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS) 452 $1_EXTRA_CXXFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS) 453 endif 454 455 ifeq (NONE, $$($1_OPTIMIZATION)) 456 $1_EXTRA_CFLAGS += $(C_O_FLAG_NONE) 457 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NONE) 458 else ifeq (LOW, $$($1_OPTIMIZATION)) 459 $1_EXTRA_CFLAGS += $(C_O_FLAG_NORM) 460 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NORM) 461 else ifeq (HIGH, $$($1_OPTIMIZATION)) 462 $1_EXTRA_CFLAGS += $(C_O_FLAG_HI) 463 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HI) 464 else ifeq (HIGHEST, $$($1_OPTIMIZATION)) 465 $1_EXTRA_CFLAGS += $(C_O_FLAG_HIGHEST) 466 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HIGHEST) 467 else ifneq (, $$($1_OPTIMIZATION)) 468 $$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION)) 469 endif 470 471 $1_BUILD_INFO := $$($1_OBJECT_DIR)/_build-info.marker 472 473 # Track variable changes for all variables that affect the compilation command 474 # lines for all object files in this setup. This includes at least all the |