blob: 36250fb67df56a76791c1e34ba88eab4887dc907 [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++
Che-Liang Chiou440ad512011-01-27 10:23:51 +08009ifeq ($(FIRMWARE_ARCH),)
Chris Sosa9f1973e2011-01-26 18:54:57 -080010export CFLAGS = -Wall -Werror -DCHROMEOS_ENVIRONMENT
Che-Liang Chiou440ad512011-01-27 10:23:51 +080011else
Chris Sosa9f1973e2011-01-26 18:54:57 -080012export CFLAGS = -Wall -Werror
Che-Liang Chiou440ad512011-01-27 10:23:51 +080013endif
14
Chris Sosa9f1973e2011-01-26 18:54:57 -080015ifeq (${DEBUG},)
16CFLAGS += -O3
17else
18CFLAGS += -O0 -g -DVBOOT_DEBUG
vbendebb2b0fcc2010-07-15 15:09:47 -070019endif
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080020
vbendebb2b0fcc2010-07-15 15:09:47 -070021ifeq (${DISABLE_NDEBUG},)
22CFLAGS += -DNDEBUG
23endif
24
Gaurav Shah7ca31f32010-02-16 19:04:11 -080025export TOP = $(shell pwd)
Randall Spangler620c38c2010-06-17 14:45:22 -070026export FWDIR=$(TOP)/firmware
Randall Spanglerd1836442010-06-10 09:59:04 -070027export HOSTDIR=$(TOP)/host
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080028ifeq ($(FIRMWARE_ARCH),)
Randall Spanglerd0dae7a2010-06-21 18:25:31 -070029export INCLUDES = -I$(FWDIR)/include -I$(FWDIR)/stub/include
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080030else
31export INCLUDES = -I$(FWDIR)/include -I$(FWDIR)/arch/$(FIRMWARE_ARCH)/include
32endif
Gaurav Shah322536d2010-01-28 15:01:23 -080033
vbendeb70e95092010-06-14 15:41:27 -070034export BUILD = ${TOP}/build
35export FWLIB = ${BUILD}/vboot_fw.a
Che-Liang Chiou89678602010-11-09 08:33:36 +080036export HOSTLIB = ${BUILD}/vboot_host.a
Bill Richardson0b8f35c2010-05-26 09:18:38 -070037
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080038ifeq ($(FIRMWARE_ARCH),)
Randall Spangler39f66112010-07-14 09:10:23 -070039SUBDIRS = firmware host utility cgpt tests tests/tpm_lite
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080040else
41SUBDIRS = firmware
42endif
Gaurav Shah322536d2010-01-28 15:01:23 -080043
44all:
Louis Yung-Chieh Lob31ddce2010-05-21 16:35:44 +080045 set -e; \
vbendeb70e95092010-06-14 15:41:27 -070046 for d in $(shell find ${SUBDIRS} -name '*.c' -exec dirname {} \; |\
47 sort -u); do \
48 newdir=${BUILD}/$$d; \
49 if [ ! -d $$newdir ]; then \
50 mkdir -p $$newdir; \
51 fi; \
Luigi Semenzato5896b962010-08-25 07:16:03 -070052 done; \
Che-Liang Chiou0a0e8d02010-11-30 09:30:45 +080053 [ -z "$(FIRMWARE_ARCH)" ] && make -C utility update_tlcl_structures; \
Gaurav Shah322536d2010-01-28 15:01:23 -080054 for i in $(SUBDIRS); do \
Louis Yung-Chieh Lob31ddce2010-05-21 16:35:44 +080055 make -C $$i; \
Gaurav Shah322536d2010-01-28 15:01:23 -080056 done
57
58clean:
vbendeb70e95092010-06-14 15:41:27 -070059 /bin/rm -rf ${BUILD}
Bill Richardson371df8b2010-05-27 14:19:47 -070060
61install:
62 $(MAKE) -C utility install
Bill Richardsonf1372d92010-06-11 09:15:55 -070063 $(MAKE) -C cgpt install
Gaurav Shahe6421982010-06-03 07:49:32 -070064
65runtests:
66 $(MAKE) -C tests runtests
Luigi Semenzato18b814d2010-07-08 17:17:02 -070067
68rbtest:
69 $(MAKE) -C tests rbtest