1T := $(CURDIR)
2OUT_DIR ?= $(shell mkdir -p $(T)/build;cd $(T)/build;pwd)
3
4ifndef RELEASE
5  override RELEASE := n
6else
7  # Backward-compatibility for RELEASE=(0|1)
8  ifeq ($(RELEASE),1)
9    override RELEASE := y
10  else
11    ifeq ($(RELEASE),0)
12      override RELEASE := n
13    endif
14  endif
15endif
16
17SERVICES_OUT ?= $(shell mkdir -p $(OUT_DIR)/services;cd $(OUT_DIR)/services;pwd)
18ifeq ($(RELEASE),n)
19  DEBUG_OUT ?= $(shell mkdir -p $(OUT_DIR)/debug_tools;cd $(OUT_DIR)/debug_tools;pwd)
20endif
21
22.PHONY: all acrn-manager acrnbridge life_mngr acrn-crashlog acrnlog acrntrace
23ifeq ($(RELEASE),n)
24all: acrn-manager acrnbridge acrn-crashlog acrnlog acrntrace
25else
26all: acrn-manager acrnbridge
27endif
28
29acrn-manager:
30	$(MAKE) -C $(T)/services/acrn_manager OUT_DIR=$(SERVICES_OUT) RELEASE=$(RELEASE)
31
32acrnbridge:
33	$(MAKE) -C $(T)/services/acrn_bridge OUT_DIR=$(SERVICES_OUT)
34
35life_mngr:
36	$(MAKE) -C $(T)/services/life_mngr OUT_DIR=$(SERVICES_OUT)
37
38acrn-crashlog:
39	$(MAKE) -C $(T)/debug_tools/acrn_crashlog OUT_DIR=$(DEBUG_OUT) RELEASE=$(RELEASE)
40
41acrnlog:
42	$(MAKE) -C $(T)/debug_tools/acrn_log OUT_DIR=$(DEBUG_OUT)
43
44acrntrace:
45	$(MAKE) -C $(T)/debug_tools/acrn_trace OUT_DIR=$(DEBUG_OUT)
46
47.PHONY: clean
48clean:
49	$(MAKE) -C $(T)/services/acrn_manager OUT_DIR=$(SERVICES_OUT) clean
50	$(MAKE) -C $(T)/services/life_mngr OUT_DIR=$(SERVICES_OUT) clean
51	$(MAKE) -C $(T)/debug_tools/acrn_crashlog OUT_DIR=$(DEBUG_OUT) clean
52	$(MAKE) -C $(T)/debug_tools/acrn_trace OUT_DIR=$(DEBUG_OUT) clean
53	$(MAKE) -C $(T)/debug_tools/acrn_log OUT_DIR=$(DEBUG_OUT) clean
54	rm -rf $(OUT_DIR)
55
56.PHONY: install
57ifeq ($(RELEASE),n)
58install: acrn-manager-install acrnbridge-install acrn-crashlog-install \
59	acrnlog-install acrntrace-install
60else
61install: acrn-manager-install acrnbridge-install
62endif
63
64acrn-manager-install:
65	$(MAKE) -C $(T)/services/acrn_manager OUT_DIR=$(SERVICES_OUT) install
66
67acrnbridge-install:
68	$(MAKE) -C $(T)/services/acrn_bridge OUT_DIR=$(SERVICES_OUT) install
69
70acrn-life-mngr-install:
71	$(MAKE) -C $(T)/services/life_mngr OUT_DIR=$(SERVICES_OUT) install
72
73acrn-crashlog-install:
74	$(MAKE) -C $(T)/debug_tools/acrn_crashlog OUT_DIR=$(DEBUG_OUT) install
75
76acrnlog-install:
77	$(MAKE) -C $(T)/debug_tools/acrn_log OUT_DIR=$(DEBUG_OUT) install
78
79acrntrace-install:
80	$(MAKE) -C $(T)/debug_tools/acrn_trace OUT_DIR=$(DEBUG_OUT) install
81