| OLD | NEW |
| (Empty) |
| 1 # Copyright (c) 2012 The Chromium 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 | |
| 5 # | |
| 6 # GNU Make based build file. For details on GNU Make see: | |
| 7 # http://www.gnu.org/software/make/manual/make.html | |
| 8 # | |
| 9 | |
| 10 PROJECTS:= \ | |
| 11 [[for project in projects:]] | |
| 12 {{project}} \ | |
| 13 [[]] | |
| 14 | |
| 15 HTTPD:={{rel_sdk}}/tools/httpd.py | |
| 16 | |
| 17 ifeq ($(TOOLCHAIN),all) | |
| 18 TOOLCHAIN_ARG:=TOOLCHAIN=all | |
| 19 endif | |
| 20 | |
| 21 # Define the default target | |
| 22 all: | |
| 23 | |
| 24 # | |
| 25 # Target Macro | |
| 26 # | |
| 27 # Macro defines a phony target for each example, and adds it to a list of | |
| 28 # targets. | |
| 29 # | |
| 30 # Note: We use targets for each project (instead of an explicit recipe) so | |
| 31 # each project can be built in parallel. | |
| 32 # | |
| 33 define TARGET | |
| 34 ALL_TARGET_LIST+=$(1)_ALL_TARGET | |
| 35 .PHONY: $(1)_ALL_TARGET | |
| 36 $(1)_ALL_TARGET: | |
| 37 +$(MAKE) -C $(1) $(TOOLCHAIN_ARG) all | |
| 38 | |
| 39 CLEAN_TARGET_LIST+=$(1)_CLEAN_TARGET | |
| 40 .PHONY: $(1)_CLEAN_TARGET | |
| 41 $(1)_CLEAN_TARGET: | |
| 42 +$(MAKE) -C $(1) $(TOOLCHAIN_ARG) clean | |
| 43 endef | |
| 44 | |
| 45 | |
| 46 # Define the various targets via the Macro | |
| 47 $(foreach proj,$(PROJECTS),$(eval $(call TARGET,$(proj)))) | |
| 48 | |
| 49 .PHONY: all | |
| 50 all: $(ALL_TARGET_LIST) | |
| 51 @echo Done building targets. | |
| 52 | |
| 53 .PHONY: clean | |
| 54 clean: $(CLEAN_TARGET_LIST) | |
| 55 @echo Done cleaning targets. | |
| 56 | |
| 57 .PHONY: run | |
| 58 run: all | |
| 59 @echo Starting up python webserver. | |
| 60 python $(HTTPD) | |
| 61 | |
| 62 # Phony aliases for backward compatibility | |
| 63 RUN: run | |
| 64 | |
| 65 all_versions: | |
| 66 +$(MAKE) TOOLCHAIN=all | |
| 67 | |
| 68 .PHONY: RUN all_versions | |
| OLD | NEW |