Makefile revision 856e072e8119cab07fd884e54853f1c3897452ee
1322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah# Use of this source code is governed by a BSD-style license that can be
3322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah# found in the LICENSE file.
4322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah
50a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiouexport FIRMWARE_ARCH
60a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiou
727bfc8be07935ccb0dab251c5d084c64830163c2Gaurav Shahexport CC ?= gcc
8f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardsonexport CXX ?= g++
99f1973e271937f8b494c9f247f40dafd7a80b58bChris Sosaexport CFLAGS = -Wall -Werror
10440ad516c4840882557bfb76ddf497ea0041fc03Che-Liang Chiou
119f1973e271937f8b494c9f247f40dafd7a80b58bChris Sosaifeq (${DEBUG},)
129f1973e271937f8b494c9f247f40dafd7a80b58bChris SosaCFLAGS += -O3
139f1973e271937f8b494c9f247f40dafd7a80b58bChris Sosaelse
1434be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang ChiouCFLAGS += -O0 -g
1534be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiouendif
1634be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiou
1734be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiou# Override CC and CFLAGS only if FIRMWARE_CONFIG_PATH is not empty, but we
1834be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiou# wish to preserve -D flags (so move all -D flags after this).
1934be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiouifneq (${FIRMWARE_CONFIG_PATH},)
2034be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiouinclude ${FIRMWARE_CONFIG_PATH}
2134be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiouendif
2234be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiou
2334be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiouifeq ($(FIRMWARE_ARCH),)
2434be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang ChiouCFLAGS += -DCHROMEOS_ENVIRONMENT
2534be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiouendif
2634be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiou
2734be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang Chiouifneq (${DEBUG},)
2834be8273e0fb80a6654deab650e581b0dc9046a4Che-Liang ChiouCFLAGS += -DVBOOT_DEBUG
29b2b0fcc0f62fadce6f854bf14826a9778c0f7632vbendebendif
300a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiou
31b2b0fcc0f62fadce6f854bf14826a9778c0f7632vbendebifeq (${DISABLE_NDEBUG},)
32b2b0fcc0f62fadce6f854bf14826a9778c0f7632vbendebCFLAGS += -DNDEBUG
33b2b0fcc0f62fadce6f854bf14826a9778c0f7632vbendebendif
34b2b0fcc0f62fadce6f854bf14826a9778c0f7632vbendeb
357ca31f3e4d21bb7dfa39e1e4b9ab42c7047e66d8Gaurav Shahexport TOP = $(shell pwd)
36620c38cf34eadcd222535b01fb71c5e9fbc1cb80Randall Spanglerexport FWDIR=$(TOP)/firmware
37d183644564ec27c106a3eb1931f565fae167a058Randall Spanglerexport HOSTDIR=$(TOP)/host
380a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiouifeq ($(FIRMWARE_ARCH),)
39d0dae7a4388139161c56e5b3c37a6e079f9558fdRandall Spanglerexport INCLUDES = -I$(FWDIR)/include -I$(FWDIR)/stub/include
400a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiouelse
410a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiouexport INCLUDES = -I$(FWDIR)/include -I$(FWDIR)/arch/$(FIRMWARE_ARCH)/include
420a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiouendif
43322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah
4470e9509a2748c0ee8646d77f2a0e6fcbb1446505vbendebexport BUILD = ${TOP}/build
4570e9509a2748c0ee8646d77f2a0e6fcbb1446505vbendebexport FWLIB = ${BUILD}/vboot_fw.a
4689678602e66df24dea75b384ce079519cb8ec2a4Che-Liang Chiouexport HOSTLIB = ${BUILD}/vboot_host.a
470b8f35c6a56a0e645254dd7f07ca68e01c8ee629Bill Richardson
480a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiouifeq ($(FIRMWARE_ARCH),)
4939f66114c03639715cb88774255f066a2d942557Randall SpanglerSUBDIRS = firmware host utility cgpt tests tests/tpm_lite
500a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiouelse
510a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang ChiouSUBDIRS = firmware
520a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiouendif
53322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah
54322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shahall:
55b31ddcec6a826986cd215725bf4defbc6021fe6bLouis Yung-Chieh Lo	set -e; \
5670e9509a2748c0ee8646d77f2a0e6fcbb1446505vbendeb	for d in $(shell find ${SUBDIRS} -name '*.c' -exec  dirname {} \; |\
5770e9509a2748c0ee8646d77f2a0e6fcbb1446505vbendeb		 sort -u); do \
5870e9509a2748c0ee8646d77f2a0e6fcbb1446505vbendeb		newdir=${BUILD}/$$d; \
5970e9509a2748c0ee8646d77f2a0e6fcbb1446505vbendeb		if [ ! -d $$newdir ]; then \
6070e9509a2748c0ee8646d77f2a0e6fcbb1446505vbendeb			mkdir -p $$newdir; \
6170e9509a2748c0ee8646d77f2a0e6fcbb1446505vbendeb		fi; \
625896b9664d088699e246de964a7c374af663a34eLuigi Semenzato	done; \
630a0e8d0bb26c951a895c5034a4c1c12f3d4e8707Che-Liang Chiou	[ -z "$(FIRMWARE_ARCH)" ] && make -C utility update_tlcl_structures; \
64322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah	for i in $(SUBDIRS); do \
65b31ddcec6a826986cd215725bf4defbc6021fe6bLouis Yung-Chieh Lo		make -C $$i; \
66322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah	done
67322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shah
68322536d2f9d30f42218cc9f2ab40574557da8a9Gaurav Shahclean:
6970e9509a2748c0ee8646d77f2a0e6fcbb1446505vbendeb	/bin/rm -rf ${BUILD}
70371df8bbbf9088dc1206701bdc2294d9598bb339Bill Richardson
71371df8bbbf9088dc1206701bdc2294d9598bb339Bill Richardsoninstall:
72371df8bbbf9088dc1206701bdc2294d9598bb339Bill Richardson	$(MAKE) -C utility install
73f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson	$(MAKE) -C cgpt install
74e642198b93cf2c50e279a6598f21f69564b13c6fGaurav Shah
75e642198b93cf2c50e279a6598f21f69564b13c6fGaurav Shahruntests:
76e642198b93cf2c50e279a6598f21f69564b13c6fGaurav Shah	$(MAKE) -C tests runtests
7718b814d9bc7fcf0a7e5d7fca57eed8229f0e9aacLuigi Semenzato
7818b814d9bc7fcf0a7e5d7fca57eed8229f0e9aacLuigi Semenzatorbtest:
7918b814d9bc7fcf0a7e5d7fca57eed8229f0e9aacLuigi Semenzato	$(MAKE) -C tests rbtest
80856e072e8119cab07fd884e54853f1c3897452eeBill Richardson
81856e072e8119cab07fd884e54853f1c3897452eeBill Richardsonrunbmptests:
82856e072e8119cab07fd884e54853f1c3897452eeBill Richardson	$(MAKE) -C tests runbmptests
83