Import firmware compiler flags
If passed into Makefile, compiler flags for firmware (so far CC and CFLAGS) will
override old values to make sure that the compiled vboot_reference library has
calling convention and etc. compatible with the firmware.
See also CL:6355014
BUG=None
TEST=See the CL for related ebuilds
Review URL: http://codereview.chromium.org/6257018
Change-Id: I46f77c576d2355f5cde506a0240dd2e2d4a74f0e
diff --git a/Makefile b/Makefile
index 36250fb..94d1f02 100644
--- a/Makefile
+++ b/Makefile
@@ -3,19 +3,33 @@
# found in the LICENSE file.
export FIRMWARE_ARCH
+export FIRMWARE_CONFIG_PATH
export CC ?= gcc
export CXX ?= g++
-ifeq ($(FIRMWARE_ARCH),)
-export CFLAGS = -Wall -Werror -DCHROMEOS_ENVIRONMENT
-else
-export CFLAGS = -Wall -Werror
+export CFLAGS
+
+# Include compiler flags if provided.
+# The CC and CFLAGS should not be overridden hereafter.
+ifneq ($(FIRMWARE_CONFIG_PATH),)
+include $(FIRMWARE_CONFIG_PATH)
endif
+# Provides default optimization level if not set by FIRMWARE_CONFIG_PATH
ifeq (${DEBUG},)
-CFLAGS += -O3
+CFLAGS ?= -O3
else
-CFLAGS += -O0 -g -DVBOOT_DEBUG
+CFLAGS ?= -O0
+endif
+
+ifeq ($(FIRMWARE_ARCH),)
+CFLAGS += -Wall -Werror -DCHROMEOS_ENVIRONMENT
+else
+CFLAGS += -Wall -Werror
+endif
+
+ifneq (${DEBUG},)
+CFLAGS += -g -DVBOOT_DEBUG
endif
ifeq (${DISABLE_NDEBUG},)