blob: 0d29bd508313b1e51ed14aa247342f80ed92bc59 [file] [log] [blame]
Gaurav Shah322536d2010-01-28 15:01:23 -08001# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +08005export FIRMWARE_ARCH
6
Gaurav Shah27bfc8b2010-02-17 14:19:24 -08007export CC ?= gcc
Bill Richardsonf1372d92010-06-11 09:15:55 -07008export CXX ?= g++
Chris Sosa9f1973e2011-01-26 18:54:57 -08009export CFLAGS = -Wall -Werror
Che-Liang Chiou440ad512011-01-27 10:23:51 +080010
Chris Sosa9f1973e2011-01-26 18:54:57 -080011ifeq (${DEBUG},)
12CFLAGS += -O3
13else
Che-Liang Chiou34be8272011-01-27 16:44:36 +080014CFLAGS += -O0 -g
15endif
16
17# Override CC and CFLAGS only if FIRMWARE_CONFIG_PATH is not empty, but we
18# wish to preserve -D flags (so move all -D flags after this).
19ifneq (${FIRMWARE_CONFIG_PATH},)
20include ${FIRMWARE_CONFIG_PATH}
21endif
22
23ifeq ($(FIRMWARE_ARCH),)
24CFLAGS += -DCHROMEOS_ENVIRONMENT
25endif
26
27ifneq (${DEBUG},)
28CFLAGS += -DVBOOT_DEBUG
vbendebb2b0fcc2010-07-15 15:09:47 -070029endif
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080030
vbendebb2b0fcc2010-07-15 15:09:47 -070031ifeq (${DISABLE_NDEBUG},)
32CFLAGS += -DNDEBUG
33endif
34
Gaurav Shah7ca31f32010-02-16 19:04:11 -080035export TOP = $(shell pwd)
Randall Spangler620c38c2010-06-17 14:45:22 -070036export FWDIR=$(TOP)/firmware
Randall Spanglerd1836442010-06-10 09:59:04 -070037export HOSTDIR=$(TOP)/host
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080038ifeq ($(FIRMWARE_ARCH),)
Randall Spanglerd0dae7a2010-06-21 18:25:31 -070039export INCLUDES = -I$(FWDIR)/include -I$(FWDIR)/stub/include
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080040else
41export INCLUDES = -I$(FWDIR)/include -I$(FWDIR)/arch/$(FIRMWARE_ARCH)/include
42endif
Gaurav Shah322536d2010-01-28 15:01:23 -080043
vbendeb70e95092010-06-14 15:41:27 -070044export BUILD = ${TOP}/build
45export FWLIB = ${BUILD}/vboot_fw.a
Che-Liang Chiou89678602010-11-09 08:33:36 +080046export HOSTLIB = ${BUILD}/vboot_host.a
Bill Richardson0b8f35c2010-05-26 09:18:38 -070047
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080048ifeq ($(FIRMWARE_ARCH),)
Randall Spangler39f66112010-07-14 09:10:23 -070049SUBDIRS = firmware host utility cgpt tests tests/tpm_lite
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080050else
51SUBDIRS = firmware
52endif
Gaurav Shah322536d2010-01-28 15:01:23 -080053
54all:
Louis Yung-Chieh Lob31ddce2010-05-21 16:35:44 +080055 set -e; \
vbendeb70e95092010-06-14 15:41:27 -070056 for d in $(shell find ${SUBDIRS} -name '*.c' -exec dirname {} \; |\
57 sort -u); do \
58 newdir=${BUILD}/$$d; \
59 if [ ! -d $$newdir ]; then \
60 mkdir -p $$newdir; \
61 fi; \
Luigi Semenzato5896b962010-08-25 07:16:03 -070062 done; \
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080063 [ -z "$(FIRMWARE_ARCH)" ] && make -C utility update_tlcl_structures; \
Gaurav Shah322536d2010-01-28 15:01:23 -080064 for i in $(SUBDIRS); do \
Louis Yung-Chieh Lob31ddce2010-05-21 16:35:44 +080065 make -C $$i; \
Gaurav Shah322536d2010-01-28 15:01:23 -080066 done
67
68clean:
vbendeb70e95092010-06-14 15:41:27 -070069 /bin/rm -rf ${BUILD}
Bill Richardson371df8b2010-05-27 14:19:47 -070070
71install:
72 $(MAKE) -C utility install
Bill Richardsonf1372d92010-06-11 09:15:55 -070073 $(MAKE) -C cgpt install
Gaurav Shahe6421982010-06-03 07:49:32 -070074
75runtests:
76 $(MAKE) -C tests runtests
Luigi Semenzato18b814d2010-07-08 17:17:02 -070077
78rbtest:
79 $(MAKE) -C tests rbtest