Android.mk revision 892a5c4e23b8dfa5883996417fadcd46361654a5
1# Copyright (C) 2015 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15LOCAL_PATH := $(call my-dir)
16
17# TODO(avakulenko): Remove this condition when libchromeos can be built on
18# non-Linux host.
19ifeq ($(HOST_OS),linux)
20
21# Common variables
22# ========================================================
23
24buffetCommonCppExtension := .cc
25buffetCommonCFlags := -DBUFFET_USE_WIFI_BOOTSTRAPPING -Wall -Werror \
26	-Wno-char-subscripts -Wno-missing-field-initializers \
27	-Wno-unused-function -Wno-unused-parameter \
28
29buffetCommonCppFlags := \
30	-Wno-deprecated-register \
31	-Wno-sign-compare \
32	-Wno-sign-promo \
33	-Wno-non-virtual-dtor \
34
35buffetCommonCIncludes := \
36	$(LOCAL_PATH)/.. \
37	$(LOCAL_PATH)/dbus-proxies \
38	external/gtest/include \
39
40buffetSharedLibraries := \
41	libchrome \
42	libchrome-dbus \
43	libchromeos \
44	libchromeos-dbus \
45	libchromeos-http \
46	libchromeos-stream \
47	libdbus \
48	libweave \
49	libwebserv \
50
51ifdef BRILLO
52buffetSharedLibraries += libconnectivity
53endif
54
55# buffet-common
56# ========================================================
57include $(CLEAR_VARS)
58LOCAL_MODULE := buffet-common
59LOCAL_CPP_EXTENSION := $(buffetCommonCppExtension)
60LOCAL_CFLAGS := $(buffetCommonCFlags)
61LOCAL_CPPFLAGS := $(buffetCommonCppFlags)
62LOCAL_C_INCLUDES := $(buffetCommonCIncludes)
63LOCAL_SHARED_LIBRARIES := $(buffetSharedLibraries)
64LOCAL_STATIC_LIBRARIES :=
65LOCAL_RTTI_FLAG := -frtti
66LOCAL_CLANG := true
67LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
68
69LOCAL_SRC_FILES := \
70	buffet/buffet_config.cc \
71	buffet/dbus_command_dispatcher.cc \
72	buffet/dbus_command_proxy.cc \
73	buffet/dbus_conversion.cc \
74	buffet/dbus_constants.cc \
75	buffet/http_transport_client.cc \
76	buffet/manager.cc \
77	buffet/socket_stream.cc \
78	buffet/webserv_client.cc \
79	buffet/dbus_bindings/dbus-service-config.json \
80	buffet/dbus_bindings/com.android.Weave.Command.dbus-xml \
81	buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml \
82
83ifdef BRILLO
84
85LOCAL_SRC_FILES += \
86	buffet/avahi_mdns_client.cc \
87	buffet/brillo_network_client.cc \
88
89else # BRILLO
90
91LOCAL_SRC_FILES += \
92	buffet/stub_mdns_client.cc \
93	buffet/stub_network_client.cc \
94
95endif # BRILLO
96
97include $(BUILD_STATIC_LIBRARY)
98
99# buffet
100# ========================================================
101include $(CLEAR_VARS)
102LOCAL_MODULE := weaved
103LOCAL_REQUIRED_MODULES := \
104	base_state.defaults.json \
105	base_state.schema.json \
106	buffet.json \
107	com.android.Weave.conf \
108	gcd.json \
109	webservd \
110
111ifdef INITRC_TEMPLATE
112LOCAL_REQUIRED_MODULES += init.weaved.rc
113endif
114
115LOCAL_CPP_EXTENSION := $(buffetCommonCppExtension)
116LOCAL_CFLAGS := $(buffetCommonCFlags)
117LOCAL_CPPFLAGS := $(buffetCommonCppFlags)
118LOCAL_C_INCLUDES := $(buffetCommonCIncludes)
119LOCAL_SHARED_LIBRARIES := $(buffetSharedLibraries)
120LOCAL_WHOLE_STATIC_LIBRARIES := buffet-common
121LOCAL_CLANG := true
122LOCAL_RTTI_FLAG := -frtti
123
124LOCAL_SRC_FILES := \
125	buffet/main.cc
126
127include $(BUILD_EXECUTABLE)
128
129ifdef INITRC_TEMPLATE
130include $(CLEAR_VARS)
131LOCAL_MODULE := init.weaved.rc
132LOCAL_MODULE_CLASS := ETC
133LOCAL_MODULE_PATH := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_INITRCD)
134
135include $(BUILD_SYSTEM)/base_rules.mk
136
137.PHONY: $(LOCAL_BUILT_MODULE)
138$(LOCAL_BUILT_MODULE): $(INITRC_TEMPLATE)
139	$(call generate-initrc-file,weaved,,inet)
140endif
141
142# libweaved-client
143# ========================================================
144include $(CLEAR_VARS)
145LOCAL_MODULE := libweaved-client
146LOCAL_DBUS_PROXY_PREFIX := buffet
147
148LOCAL_SRC_FILES := \
149	buffet/dbus_bindings/dbus-service-config.json \
150	buffet/dbus_bindings/com.android.Weave.Command.dbus-xml \
151	buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml \
152
153include $(BUILD_SHARED_LIBRARY)
154
155# buffet_testrunner
156# ========================================================
157include $(CLEAR_VARS)
158LOCAL_MODULE := buffet_testrunner
159LOCAL_CPP_EXTENSION := $(buffetCommonCppExtension)
160LOCAL_CFLAGS := $(buffetCommonCFlags)
161LOCAL_CPPFLAGS := $(buffetCommonCppFlags)
162LOCAL_C_INCLUDES := \
163	$(buffetCommonCIncludes) \
164	external/gmock/include \
165
166LOCAL_SHARED_LIBRARIES := \
167	$(buffetSharedLibraries) \
168
169LOCAL_STATIC_LIBRARIES := \
170	buffet-common \
171	libchrome_dbus_test_helpers \
172	libchrome_test_helpers \
173	libchromeos-test-helpers \
174	libgtest \
175	libgmock \
176	libweave-test \
177
178LOCAL_RTTI_FLAG := -frtti
179LOCAL_CLANG := true
180
181LOCAL_SRC_FILES := \
182	buffet/buffet_testrunner.cc \
183	buffet/dbus_command_proxy_unittest.cc \
184	buffet/dbus_conversion_unittest.cc \
185
186include $(BUILD_NATIVE_TEST)
187
188# weaved_client
189# ========================================================
190include $(CLEAR_VARS)
191LOCAL_MODULE := weaved_client
192LOCAL_CPP_EXTENSION := $(buffetCommonCppExtension)
193LOCAL_CFLAGS := $(buffetCommonCFlags)
194LOCAL_CPPFLAGS := $(buffetCommonCppFlags)
195LOCAL_C_INCLUDES := $(buffetCommonCIncludes)
196LOCAL_SHARED_LIBRARIES := $(buffetSharedLibraries)
197LOCAL_STATIC_LIBRARIES :=
198LOCAL_DBUS_PROXY_PREFIX := buffet
199LOCAL_RTTI_FLAG := -frtti
200LOCAL_CLANG := true
201
202LOCAL_SRC_FILES := \
203	buffet/buffet_client.cc \
204	buffet/dbus_bindings/dbus-service-config.json \
205	buffet/dbus_bindings/com.android.Weave.Command.dbus-xml \
206	buffet/dbus_bindings/com.android.Weave.Manager.dbus-xml \
207
208include $(BUILD_EXECUTABLE)
209
210# Config files for /etc/weaved
211# ========================================================
212include $(CLEAR_VARS)
213LOCAL_MODULE := base_state.defaults.json
214LOCAL_MODULE_CLASS := ETC
215LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/weaved
216LOCAL_SRC_FILES := buffet/etc/weaved/base_state.defaults.json
217include $(BUILD_PREBUILT)
218
219include $(CLEAR_VARS)
220LOCAL_MODULE := base_state.schema.json
221LOCAL_MODULE_CLASS := ETC
222LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/weaved
223LOCAL_SRC_FILES := buffet/etc/weaved/base_state.schema.json
224include $(BUILD_PREBUILT)
225
226include $(CLEAR_VARS)
227LOCAL_MODULE := gcd.json
228LOCAL_MODULE_CLASS := ETC
229LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/weaved
230LOCAL_SRC_FILES := buffet/etc/weaved/gcd.json
231include $(BUILD_PREBUILT)
232
233include $(CLEAR_VARS)
234LOCAL_MODULE := buffet.json
235LOCAL_MODULE_CLASS := ETC
236LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/weaved/commands
237LOCAL_SRC_FILES := buffet/etc/weaved/commands/buffet.json
238include $(BUILD_PREBUILT)
239
240# DBus config files for /etc/dbus-1
241# ========================================================
242include $(CLEAR_VARS)
243LOCAL_MODULE := com.android.Weave.conf
244LOCAL_MODULE_CLASS := ETC
245LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/dbus-1
246LOCAL_SRC_FILES := buffet/etc/dbus-1/com.android.Weave.conf
247include $(BUILD_PREBUILT)
248
249endif # HOST_OS == linux
250