Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / native_client_sdk / src / resources / Makefile.index.template
blob2881fdfea30f4225a85ce23b13d77c4a1014d413
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.
6 # GNU Make based build file.  For details on GNU Make see:
7 #   http://www.gnu.org/software/make/manual/make.html
10 PROJECTS := \
11 [[for project in projects:]]
12   {{project}} \
13 [[]]
15 [[for dep,vals in deps.iteritems():]]
16 {{dep}}_DEPS:={{'_ALL_TARGET '.join(vals) + '_ALL_TARGET'}}
17 [[]]
19 HTTPD_PY := python {{rel_sdk}}/tools/httpd.py
21 ifeq ($(TOOLCHAIN),all)
22 TOOLCHAIN_ARG:=TOOLCHAIN=all
23 endif
25 # Define the default target
26 all:
29 # Target Macro
31 # Macro defines a phony target for each example, and adds it to a list of
32 # targets.
34 # Note: We use targets for each project (instead of an explicit recipe) so
35 # each project can be built in parallel.
37 define TARGET
38 ALL_TARGET_LIST+=$(1)_ALL_TARGET
39 .PHONY: $(1)_ALL_TARGET
40 $(1)_ALL_TARGET: $$($(1)_DEPS)
41         +$(MAKE) -C $(1) $(TOOLCHAIN_ARG) all
43 CLEAN_TARGET_LIST+=$(1)_CLEAN_TARGET
44 .PHONY: $(1)_CLEAN_TARGET
45 $(1)_CLEAN_TARGET:
46         +$(MAKE) -C $(1) $(TOOLCHAIN_ARG) clean
47 endef
50 # Define the various targets via the Macro
51 $(foreach proj,$(PROJECTS),$(eval $(call TARGET,$(proj))))
53 .PHONY: all
54 all: $(ALL_TARGET_LIST)
55         @echo Done building targets.
57 .PHONY: clean
58 clean: $(CLEAN_TARGET_LIST)
59         @echo Done cleaning targets.
61 .PHONY: serve
62 serve: all
63         @echo Starting up python webserver.
64         @$(HTTPD_PY)
66 # Phony aliases for backward compatibility
67 RUN: run
68 run: serve
70 all_versions:
71         +$(MAKE) TOOLCHAIN=all
73 .PHONY: RUN all_versions