cc-option uses more make-syntax to replace the shell "if/else".
Issue with recursive += is fixed by doing the first assignment
simply-expanded, as explained in
http://www.gnu.org/software/make/manual/html_node/Appending.html
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
 
 VPATH=$(SRC_PATH)/pc-bios/optionrom
 
-CFLAGS = -Wall -Wstrict-prototypes -Werror -fomit-frame-pointer -fno-builtin
+CFLAGS := -Wall -Wstrict-prototypes -Werror -fomit-frame-pointer -fno-builtin
 CFLAGS += -I$(SRC_PATH)
-CFLAGS += $(call cc-option, -fno-stack-protector,"")
+CFLAGS += $(call cc-option, $(CFLAGS), -fno-stack-protector)
 QEMU_CFLAGS = $(CFLAGS)
 
 build-all: multiboot.bin
 
 # cc-option
 # Usage: CFLAGS+=$(call cc-option, -falign-functions=0, -malign-functions=0)
 
-cc-option = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null \
-              > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
+cc-option = $(if $(shell $(CC) $1 $2 -S -o /dev/null -xc /dev/null \
+              >/dev/null 2>&1 && echo OK), $2, $3)