blob: 36b4beaa127fa963c4f732fe910aafd040f9a20d [file] [log] [blame]
David Zeuthen21e95262016-07-27 17:58:40 -04001#
David Zeuthenc612e2e2016-09-16 16:44:08 -04002# Copyright 2016, The Android Open Source Project
David Zeuthen21e95262016-07-27 17:58:40 -04003#
David Zeuthenc612e2e2016-09-16 16:44:08 -04004# Permission is hereby granted, free of charge, to any person
5# obtaining a copy of this software and associated documentation
6# files (the "Software"), to deal in the Software without
7# restriction, including without limitation the rights to use, copy,
8# modify, merge, publish, distribute, sublicense, and/or sell copies
9# of the Software, and to permit persons to whom the Software is
10# furnished to do so, subject to the following conditions:
David Zeuthen21e95262016-07-27 17:58:40 -040011#
David Zeuthenc612e2e2016-09-16 16:44:08 -040012# The above copyright notice and this permission notice shall be
13# included in all copies or substantial portions of the Software.
David Zeuthen21e95262016-07-27 17:58:40 -040014#
David Zeuthenc612e2e2016-09-16 16:44:08 -040015# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22# SOFTWARE.
David Zeuthen21e95262016-07-27 17:58:40 -040023#
24
25LOCAL_PATH := $(my-dir)
26
27avb_common_cflags := \
28 -D_FILE_OFFSET_BITS=64 \
29 -D_POSIX_C_SOURCE=199309L \
30 -Wa,--noexecstack \
31 -Werror \
32 -Wall \
33 -Wextra \
34 -Wformat=2 \
35 -Wno-psabi \
36 -Wno-unused-parameter \
37 -ffunction-sections \
David Zeuthen0f7de942017-03-08 13:23:55 -050038 -fstack-protector-strong \
39 -g
David Zeuthen21e95262016-07-27 17:58:40 -040040avb_common_cppflags := \
41 -Wnon-virtual-dtor \
42 -fno-strict-aliasing
43avb_common_ldflags := \
David Zeuthen0f7de942017-03-08 13:23:55 -050044 -Wl,--gc-sections \
45 -rdynamic
David Zeuthen21e95262016-07-27 17:58:40 -040046
47include $(CLEAR_VARS)
48LOCAL_SRC_FILES := avbtool
49LOCAL_MODULE_CLASS := EXECUTABLES
David Zeuthen0b7f1d32016-10-25 17:53:49 -040050LOCAL_REQUIRED_MODULES := fec
David Zeuthen21e95262016-07-27 17:58:40 -040051LOCAL_IS_HOST_MODULE := true
52LOCAL_MODULE := avbtool
53include $(BUILD_PREBUILT)
54
David Zeuthenbaf59e22016-11-14 15:39:43 -050055# Build libavb for the target (for e.g. fs_mgr usage).
David Zeuthen21e95262016-07-27 17:58:40 -040056include $(CLEAR_VARS)
57LOCAL_MODULE := libavb
58LOCAL_MODULE_HOST_OS := linux
David Zeuthenbaf59e22016-11-14 15:39:43 -050059LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
David Zeuthen21e95262016-07-27 17:58:40 -040060LOCAL_CLANG := true
David Zeuthen1eb74c92016-10-03 16:47:38 -040061LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
David Zeuthen21e95262016-07-27 17:58:40 -040062LOCAL_LDFLAGS := $(avb_common_ldflags)
David Zeuthen21e95262016-07-27 17:58:40 -040063LOCAL_SRC_FILES := \
64 libavb/avb_chain_partition_descriptor.c \
David Zeuthen8b6973b2016-09-20 12:39:49 -040065 libavb/avb_crc32.c \
David Zeuthen21e95262016-07-27 17:58:40 -040066 libavb/avb_crypto.c \
67 libavb/avb_descriptor.c \
68 libavb/avb_footer.c \
69 libavb/avb_hash_descriptor.c \
70 libavb/avb_hashtree_descriptor.c \
71 libavb/avb_kernel_cmdline_descriptor.c \
72 libavb/avb_property_descriptor.c \
73 libavb/avb_rsa.c \
74 libavb/avb_sha256.c \
75 libavb/avb_sha512.c \
76 libavb/avb_slot_verify.c \
77 libavb/avb_sysdeps_posix.c \
78 libavb/avb_util.c \
David Zeuthene3cadca2017-02-22 21:25:46 -050079 libavb/avb_vbmeta_image.c \
80 libavb/avb_version.c
bowgotsaiaf004a82016-10-24 17:10:45 +080081include $(BUILD_STATIC_LIBRARY)
David Zeuthen21e95262016-07-27 17:58:40 -040082
David Zeuthenbaf59e22016-11-14 15:39:43 -050083# Build libavb for the host (for unit tests).
David Zeuthen21e95262016-07-27 17:58:40 -040084include $(CLEAR_VARS)
85LOCAL_MODULE := libavb_host
86LOCAL_MODULE_HOST_OS := linux
David Zeuthenbaf59e22016-11-14 15:39:43 -050087LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
David Zeuthen21e95262016-07-27 17:58:40 -040088LOCAL_MODULE_CLASS := STATIC_LIBRARIES
89LOCAL_CLANG := true
90LOCAL_CFLAGS := $(avb_common_cflags) -fno-stack-protector -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
91LOCAL_LDFLAGS := $(avb_common_ldflags)
David Zeuthen21e95262016-07-27 17:58:40 -040092LOCAL_SRC_FILES := \
93 libavb/avb_chain_partition_descriptor.c \
David Zeuthen8b6973b2016-09-20 12:39:49 -040094 libavb/avb_crc32.c \
David Zeuthen21e95262016-07-27 17:58:40 -040095 libavb/avb_crypto.c \
96 libavb/avb_descriptor.c \
97 libavb/avb_footer.c \
98 libavb/avb_hash_descriptor.c \
99 libavb/avb_hashtree_descriptor.c \
100 libavb/avb_kernel_cmdline_descriptor.c \
101 libavb/avb_property_descriptor.c \
102 libavb/avb_rsa.c \
103 libavb/avb_sha256.c \
104 libavb/avb_sha512.c \
105 libavb/avb_slot_verify.c \
106 libavb/avb_util.c \
David Zeuthene3cadca2017-02-22 21:25:46 -0500107 libavb/avb_vbmeta_image.c \
108 libavb/avb_version.c
David Zeuthen21e95262016-07-27 17:58:40 -0400109include $(BUILD_HOST_STATIC_LIBRARY)
110
David Zeuthenbaf59e22016-11-14 15:39:43 -0500111# Build libavb_ab for the host (for unit tests).
112include $(CLEAR_VARS)
113LOCAL_MODULE := libavb_ab_host
114LOCAL_REQUIRED_MODULES := libavb_host
115LOCAL_MODULE_HOST_OS := linux
116LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
117LOCAL_MODULE_CLASS := STATIC_LIBRARIES
118LOCAL_CLANG := true
119LOCAL_CFLAGS := $(avb_common_cflags) -fno-stack-protector -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
120LOCAL_LDFLAGS := $(avb_common_ldflags)
121LOCAL_SRC_FILES := \
122 libavb_ab/avb_ab_flow.c
123include $(BUILD_HOST_STATIC_LIBRARY)
124
Darren Krahn147b08d2016-12-20 16:38:29 -0800125# Build libavb_atx for the host (for unit tests).
126include $(CLEAR_VARS)
127LOCAL_MODULE := libavb_atx_host
128LOCAL_REQUIRED_MODULES := libavb_host
129LOCAL_MODULE_HOST_OS := linux
130LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
131LOCAL_MODULE_CLASS := STATIC_LIBRARIES
132LOCAL_CLANG := true
133LOCAL_CFLAGS := $(avb_common_cflags) -fno-stack-protector -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
134LOCAL_LDFLAGS := $(avb_common_ldflags)
135LOCAL_SRC_FILES := \
136 libavb_atx/avb_atx_validate.c
137include $(BUILD_HOST_STATIC_LIBRARY)
138
David Zeuthen21e95262016-07-27 17:58:40 -0400139include $(CLEAR_VARS)
140LOCAL_MODULE := libavb_host_sysdeps
David Zeuthenbaf59e22016-11-14 15:39:43 -0500141LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
David Zeuthen21e95262016-07-27 17:58:40 -0400142LOCAL_MODULE_HOST_OS := linux
143LOCAL_MODULE_CLASS := STATIC_LIBRARIES
144LOCAL_CLANG := true
145LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
146LOCAL_LDFLAGS := $(avb_common_ldflags)
David Zeuthen21e95262016-07-27 17:58:40 -0400147LOCAL_SRC_FILES := \
148 libavb/avb_sysdeps_posix.c
149include $(BUILD_HOST_STATIC_LIBRARY)
150
151include $(CLEAR_VARS)
152LOCAL_MODULE := libavb_host_unittest
Darren Krahn147b08d2016-12-20 16:38:29 -0800153LOCAL_REQUIRED_MODULES := simg2img img2simg avbtool
David Zeuthen21e95262016-07-27 17:58:40 -0400154LOCAL_MODULE_HOST_OS := linux
155LOCAL_CPP_EXTENSION := .cc
156LOCAL_CLANG := true
157LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
158LOCAL_CPPFLAGS := $(avb_common_cppflags)
159LOCAL_LDFLAGS := $(avb_common_ldflags)
David Zeuthen21e95262016-07-27 17:58:40 -0400160LOCAL_STATIC_LIBRARIES := \
161 libavb_host \
David Zeuthenbaf59e22016-11-14 15:39:43 -0500162 libavb_ab_host \
Darren Krahn147b08d2016-12-20 16:38:29 -0800163 libavb_atx_host \
David Zeuthen21e95262016-07-27 17:58:40 -0400164 libgmock_host \
165 libgtest_host
166LOCAL_SHARED_LIBRARIES := \
Darren Krahn147b08d2016-12-20 16:38:29 -0800167 libchrome \
Jocelyn Bohr1bb0e3b2017-01-20 13:55:51 -0800168 libcrypto
David Zeuthen21e95262016-07-27 17:58:40 -0400169LOCAL_SRC_FILES := \
David Zeuthen8b6973b2016-09-20 12:39:49 -0400170 test/avb_ab_flow_unittest.cc \
Darren Krahn147b08d2016-12-20 16:38:29 -0800171 test/avb_atx_validate_unittest.cc \
David Zeuthen21e95262016-07-27 17:58:40 -0400172 test/avb_slot_verify_unittest.cc \
David Zeuthen8681a332016-11-23 13:44:06 -0500173 test/avb_unittest_util.cc \
David Zeuthen21e95262016-07-27 17:58:40 -0400174 test/avb_util_unittest.cc \
175 test/avb_vbmeta_image_unittest.cc \
David Zeuthen8b6973b2016-09-20 12:39:49 -0400176 test/avbtool_unittest.cc \
David Zeuthen0f7de942017-03-08 13:23:55 -0500177 test/fake_avb_ops.cc \
178 test/avb_sysdeps_posix_testing.cc
David Zeuthen21e95262016-07-27 17:58:40 -0400179LOCAL_LDLIBS_linux := -lrt
180include $(BUILD_HOST_NATIVE_TEST)
181
182include $(CLEAR_VARS)
Darren Krahn147b08d2016-12-20 16:38:29 -0800183LOCAL_MODULE := libavb_host_user_code_test
184LOCAL_MODULE_HOST_OS := linux
185LOCAL_MODULE_CLASS := STATIC_LIBRARIES
186LOCAL_CPP_EXTENSION := .cc
187LOCAL_CLANG := true
188LOCAL_CFLAGS := $(avb_common_cflags)
189LOCAL_CPPFLAGS := $(avb_common_cppflags)
190LOCAL_LDFLAGS := $(avb_common_ldflags)
191LOCAL_SRC_FILES := test/user_code_test.cc
192include $(BUILD_HOST_STATIC_LIBRARY)
193
194include $(CLEAR_VARS)
David Zeuthen8b6973b2016-09-20 12:39:49 -0400195LOCAL_MODULE := bootctrl.avb
196LOCAL_MODULE_RELATIVE_PATH := hw
197LOCAL_REQUIRED_MODULES := libavb
198LOCAL_SRC_FILES := \
199 boot_control/boot_control_avb.c \
200 boot_control/avb_ops_device.c \
David Zeuthenbaf59e22016-11-14 15:39:43 -0500201 libavb_ab/avb_ab_flow.c \
David Zeuthen8b6973b2016-09-20 12:39:49 -0400202 libavb/avb_sysdeps_posix.c
203LOCAL_CLANG := true
204LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_COMPILATION
205LOCAL_LDFLAGS := $(avb_common_ldflags)
bowgotsaifaa5d3a2017-01-24 21:35:31 +0800206LOCAL_SHARED_LIBRARIES := libbase libcutils
David Zeuthenbaf59e22016-11-14 15:39:43 -0500207LOCAL_STATIC_LIBRARIES := libfs_mgr libavb
David Zeuthenb0013ae2016-10-20 17:00:49 -0400208LOCAL_POST_INSTALL_CMD := \
209 $(hide) mkdir -p $(TARGET_OUT_SHARED_LIBRARIES)/hw && \
210 ln -sf bootctrl.avb.so $(TARGET_OUT_SHARED_LIBRARIES)/hw/bootctrl.default.so
David Zeuthen8b6973b2016-09-20 12:39:49 -0400211include $(BUILD_SHARED_LIBRARY)
212
213include $(CLEAR_VARS)
David Zeuthen21e95262016-07-27 17:58:40 -0400214LOCAL_SRC_FILES := libavb_host_symbols_test
215LOCAL_MODULE_TAGS := debug
David Zeuthenbaf59e22016-11-14 15:39:43 -0500216LOCAL_ADDITIONAL_DEPENDENCIES := libavb_ab_host
David Zeuthen21e95262016-07-27 17:58:40 -0400217include $(BUILD_HOST_PREBUILT)