summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorvbendeb <vbendeb@chromium.org>2010-06-14 15:41:27 -0700
committervbendeb <vbendeb@chromium.org>2010-06-14 15:41:27 -0700
commit70e9509a2748c0ee8646d77f2a0e6fcbb1446505 (patch)
tree3557b5823bc2200dea45d399f72af51d7cde69f8 /Makefile
parent83c88cfa6920711b8a7823e1e3fc0efe8b71a04c (diff)
downloadvboot-70e9509a2748c0ee8646d77f2a0e6fcbb1446505.tar.gz
Rework the vboot_reference make system.
After this change the generated files are placed in a separate tree (such thet they don't show in the `git status' output anymore) and the dependencies are followed properly (if a .h file changes the appropriate .o files and apps get rebuilt). Tested as follows: > $ make clean > $ make # build succeeds > $ git status # shows clean directory > $ RUNTESTS=1 make # (captured test output matches that of the test run before any changes) > $ touch ./vboot_firmware/include/tlcl.h > $ make # make succeeds > $ find build -type f -newer ./vboot_firmware/include/tlcl.h build/vboot_firmware/lib/rollback_index.o build/vboot_firmware/lib/rollback_index.o.d build/vboot_firmware/a.out build/vboot_fw.a build/utility/vbutil_key build/utility/kernel_utility.d build/utility/vbutil_key.d build/utility/verify_data build/utility/load_kernel_test.d build/utility/vbutil_keyblock.d build/utility/vbutil_kernel build/utility/vbutil_kernel.d build/utility/firmware_utility build/utility/signature_digest_utility.d build/utility/kernel_utility build/utility/verify_data.d build/utility/vbutil_keyblock build/utility/signature_digest_utility build/utility/load_kernel_test build/utility/firmware_utility.d build/tests/vboot_common3_tests build/tests/vboot_common2_tests build/host/a.out $ > Review URL: http://codereview.chromium.org/2845001
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile19
1 files changed, 12 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 853bfbfa..4022dafd 100644
--- a/Makefile
+++ b/Makefile
@@ -12,22 +12,27 @@ export INCLUDES = \
-I$(FWDIR)/include \
-I$(TOP)/misclibs/include
-export FWLIB=$(FWDIR)/vboot_fw.a
-export HOSTLIB=$(HOSTDIR)/vboot_host.a
+export BUILD = ${TOP}/build
+export FWLIB = ${BUILD}/vboot_fw.a
+export HOSTLIB= ${BUILD}/vboot_host.a
-SUBDIRS=vboot_firmware misclibs host vfirmware vkernel utility cgpt tests
+SUBDIRS = vboot_firmware misclibs host vfirmware vkernel utility cgpt tests
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 && \
for i in $(SUBDIRS); do \
make -C $$i; \
done
clean:
- set -e; \
- for i in $(SUBDIRS); do \
- make -C $$i clean; \
- done
+ /bin/rm -rf ${BUILD}
install:
$(MAKE) -C utility install