Files
OpenCellular/Makefile
Che-Liang Chiou 6b0003c638 Remove -isystem from CFLAGS for firmware build
The -isystem and the rest of the CFLAGS for firmware builds is copied
from U-Boot, where U-Boot generates it on the fly, as a temporary
solution before we figure out how make the CFLAGS right.

Given that, the hard-coded -isystem is both incorrect (since tool chain
is upgraded to a new version) and unnecessary.  It is unnecessary
because firmware lib is carefully written that the lib does not (and
probably should not) depend on any system header.

Even if in the future a system header is added to the firmware lib,
because firmware build sets -nostdinc to CFLAGS, the compiler will
safely report missing header instead of silently using the standard
system header.

So this commit removes the -isystem.

BUG=chromium-os:16808
TEST=Make sure non-firmware build still works by running
     `emerge-{tegra2_seaboard,x86-alex} vboot_reference`
TEST=Run firmware build successfully
     `emerge-{tegra2_seaboard,x86-alex} vboot_reference-firmware`
TEST=Add #include<stdarg.h> to any header in firmware/include/ and run
     firmware build again and observe build fail on missing stdarg.h

Change-Id: I8291390f21a975446993640d7a92a3eed4750e32
Reviewed-on: http://gerrit.chromium.org/gerrit/10072
Tested-by: Che-Liang Chiou <clchiou@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2011-10-17 20:08:28 -07:00

108 lines
2.6 KiB
Makefile

# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
export FIRMWARE_ARCH
export MOCK_TPM
export CC ?= gcc
export CXX ?= g++
export CFLAGS = -Wall -Werror
ifeq (${DEBUG},)
CFLAGS += -O3
else
CFLAGS += -O0 -g
endif
#
# TODO(crosbug.com/16808) We hard-code u-boot's compiler flags here just
# temporarily. As we are still investigating which flags are necessary for
# maintaining a compatible ABI, etc. between u-boot and vboot_reference.
#
# Override CC and CFLAGS for firmware builds; if you have any -D flags, please
# add them after this point (e.g., -DVBOOT_DEBUG).
#
ifeq ($(FIRMWARE_ARCH), arm)
CC = armv7a-cros-linux-gnueabi-gcc
CFLAGS = -g -Os -fno-common -ffixed-r8 -msoft-float -fno-builtin \
-ffreestanding -nostdinc \
-pipe -marm -mabi=aapcs-linux -mno-thumb-interwork -march=armv5 \
-Werror -Wall -Wstrict-prototypes -fno-stack-protector
endif
ifeq ($(FIRMWARE_ARCH), i386)
CC = i686-pc-linux-gnu-gcc
CFLAGS = -g -Os -ffunction-sections -fvisibility=hidden -fno-builtin \
-ffreestanding -nostdinc \
-pipe -fno-strict-aliasing -Wstrict-prototypes -mregparm=3 \
-fomit-frame-pointer -ffreestanding -fno-toplevel-reorder \
-fno-stack-protector -mpreferred-stack-boundary=2 -fno-dwarf2-cfi-asm \
-march=i386 -Werror -Wall -Wstrict-prototypes -fno-stack-protector
endif
# Fix compiling directly on host (outside of emake)
ifeq ($(ARCH),)
export ARCH=amd64
endif
ifeq ($(FIRMWARE_ARCH),)
CFLAGS += -DCHROMEOS_ENVIRONMENT
endif
ifneq (${DEBUG},)
CFLAGS += -DVBOOT_DEBUG
endif
ifeq (${DISABLE_NDEBUG},)
CFLAGS += -DNDEBUG
endif
export TOP = $(shell pwd)
export FWDIR=$(TOP)/firmware
export HOSTDIR=$(TOP)/host
ifeq ($(FIRMWARE_ARCH),)
export INCLUDES = -I$(FWDIR)/include -I$(FWDIR)/stub/include
else
export INCLUDES = -I$(FWDIR)/include -I$(FWDIR)/arch/$(FIRMWARE_ARCH)/include
endif
export BUILD = ${TOP}/build
export FWLIB = ${BUILD}/vboot_fw.a
export HOSTLIB = ${BUILD}/vboot_host.a
ifeq ($(FIRMWARE_ARCH),)
SUBDIRS = firmware host utility cgpt tests tests/tpm_lite
else
SUBDIRS = firmware
endif
all:
set -e; \
for d in $(shell find ${SUBDIRS} -name '*.c' -exec dirname {} \; |\
sort -u); do \
newdir=${BUILD}/$$d; \
if [ ! -d $$newdir ]; then \
mkdir -p $$newdir; \
fi; \
done; \
[ -z "$(FIRMWARE_ARCH)" ] && make -C utility update_tlcl_structures; \
for i in $(SUBDIRS); do \
make -C $$i; \
done
clean:
/bin/rm -rf ${BUILD}
install:
$(MAKE) -C utility install
$(MAKE) -C cgpt install
runtests:
$(MAKE) -C tests runtests
rbtest:
$(MAKE) -C tests rbtest
runbmptests:
$(MAKE) -C tests runbmptests