1# Copyright (C) 2016 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
17vhal_v2_0 = android.hardware.automotive.vehicle@2.0
18
19###############################################################################
20# Vehicle reference implementation lib
21###############################################################################
22include $(CLEAR_VARS)
23LOCAL_MODULE := $(vhal_v2_0)-manager-lib
24LOCAL_SRC_FILES := \
25    common/src/SubscriptionManager.cpp \
26    common/src/VehicleHalManager.cpp \
27    common/src/VehicleObjectPool.cpp \
28    common/src/VehiclePropertyStore.cpp \
29    common/src/VehicleUtils.cpp \
30
31LOCAL_C_INCLUDES := \
32    $(LOCAL_PATH)/common/include/vhal_v2_0
33
34LOCAL_EXPORT_C_INCLUDE_DIRS := \
35    $(LOCAL_PATH)/common/include
36
37LOCAL_SHARED_LIBRARIES := \
38    libhidlbase \
39    libhidltransport \
40    liblog \
41    libutils \
42    $(vhal_v2_0) \
43
44include $(BUILD_STATIC_LIBRARY)
45
46
47include $(CLEAR_VARS)
48LOCAL_MODULE := $(vhal_v2_0)-manager-lib-shared
49LOCAL_SRC_FILES := \
50    common/src/SubscriptionManager.cpp \
51    common/src/VehicleHalManager.cpp \
52    common/src/VehicleObjectPool.cpp \
53    common/src/VehiclePropertyStore.cpp \
54    common/src/VehicleUtils.cpp \
55
56LOCAL_C_INCLUDES := \
57    $(LOCAL_PATH)/common/include/vhal_v2_0
58
59LOCAL_EXPORT_C_INCLUDE_DIRS := \
60    $(LOCAL_PATH)/common/include
61
62LOCAL_SHARED_LIBRARIES := \
63    libhidlbase \
64    libhidltransport \
65    liblog \
66    libutils \
67    $(vhal_v2_0) \
68
69include $(BUILD_SHARED_LIBRARY)
70
71###############################################################################
72# Vehicle HAL Protobuf library
73###############################################################################
74include $(CLEAR_VARS)
75LOCAL_SRC_FILES := $(call all-proto-files-under, impl/vhal_v2_0/proto)
76
77LOCAL_PROTOC_OPTIMIZE_TYPE := nano
78
79LOCAL_MODULE := $(vhal_v2_0)-libproto-native
80LOCAL_MODULE_CLASS := STATIC_LIBRARIES
81
82LOCAL_MODULE_TAGS := optional
83
84LOCAL_STRIP_MODULE := keep_symbols
85
86generated_sources_dir := $(call local-generated-sources-dir)
87LOCAL_EXPORT_C_INCLUDE_DIRS := \
88    $(generated_sources_dir)/proto/$(LOCAL_PATH)/impl/vhal_v2_0/proto
89
90include $(BUILD_STATIC_LIBRARY)
91
92
93###############################################################################
94# Vehicle default VehicleHAL implementation
95###############################################################################
96include $(CLEAR_VARS)
97
98LOCAL_MODULE:= $(vhal_v2_0)-default-impl-lib
99LOCAL_SRC_FILES:= \
100    impl/vhal_v2_0/EmulatedVehicleHal.cpp \
101    impl/vhal_v2_0/VehicleEmulator.cpp \
102    impl/vhal_v2_0/PipeComm.cpp \
103    impl/vhal_v2_0/SocketComm.cpp \
104
105LOCAL_C_INCLUDES := \
106    $(LOCAL_PATH)/impl/vhal_v2_0
107
108LOCAL_EXPORT_C_INCLUDE_DIRS := \
109    $(LOCAL_PATH)/impl
110
111LOCAL_WHOLE_STATIC_LIBRARIES := \
112    $(vhal_v2_0)-manager-lib \
113
114LOCAL_SHARED_LIBRARIES := \
115    libbase \
116    libhidlbase \
117    libhidltransport \
118    liblog \
119    libprotobuf-cpp-lite \
120    libutils \
121    $(vhal_v2_0) \
122
123LOCAL_STATIC_LIBRARIES := \
124    $(vhal_v2_0)-libproto-native \
125
126LOCAL_CFLAGS += -Wall -Wextra -Werror
127
128include $(BUILD_STATIC_LIBRARY)
129
130
131###############################################################################
132# Vehicle reference implementation unit tests
133###############################################################################
134include $(CLEAR_VARS)
135
136LOCAL_MODULE:= $(vhal_v2_0)-manager-unit-tests
137
138LOCAL_WHOLE_STATIC_LIBRARIES := \
139    $(vhal_v2_0)-manager-lib \
140
141LOCAL_SRC_FILES:= \
142    tests/RecurrentTimer_test.cpp \
143    tests/SubscriptionManager_test.cpp \
144    tests/VehicleHalManager_test.cpp \
145    tests/VehicleObjectPool_test.cpp \
146    tests/VehiclePropConfigIndex_test.cpp \
147
148LOCAL_SHARED_LIBRARIES := \
149    libhidlbase \
150    libhidltransport \
151    liblog \
152    libutils \
153    $(vhal_v2_0) \
154
155LOCAL_CFLAGS += -Wall -Wextra -Werror
156LOCAL_MODULE_TAGS := tests
157
158include $(BUILD_NATIVE_TEST)
159
160
161###############################################################################
162# Vehicle HAL service
163###############################################################################
164include $(CLEAR_VARS)
165LOCAL_MODULE := $(vhal_v2_0)-service
166LOCAL_INIT_RC := $(vhal_v2_0)-service.rc
167LOCAL_PROPRIETARY_MODULE := true
168LOCAL_MODULE_RELATIVE_PATH := hw
169
170LOCAL_SRC_FILES := \
171    VehicleService.cpp
172
173LOCAL_SHARED_LIBRARIES := \
174    libbase \
175    libhidlbase \
176    libhidltransport \
177    liblog \
178    libprotobuf-cpp-lite \
179    libutils \
180    $(vhal_v2_0) \
181
182LOCAL_STATIC_LIBRARIES := \
183    $(vhal_v2_0)-manager-lib \
184    $(vhal_v2_0)-default-impl-lib \
185    $(vhal_v2_0)-libproto-native \
186
187LOCAL_CFLAGS += -Wall -Wextra -Werror
188
189include $(BUILD_EXECUTABLE)
190