blob: 952572e149a7ce5619fcebf2b9e83a1a73d64e29 [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 Zeuthen1eb74c92016-10-03 16:47:38 -040038 -fstack-protector-strong
David Zeuthen21e95262016-07-27 17:58:40 -040039avb_common_cppflags := \
40 -Wnon-virtual-dtor \
41 -fno-strict-aliasing
42avb_common_ldflags := \
43 -Wl,--gc-sections
44
45include $(CLEAR_VARS)
46LOCAL_SRC_FILES := avbtool
47LOCAL_MODULE_CLASS := EXECUTABLES
David Zeuthen0b7f1d32016-10-25 17:53:49 -040048LOCAL_REQUIRED_MODULES := fec
David Zeuthen21e95262016-07-27 17:58:40 -040049LOCAL_IS_HOST_MODULE := true
50LOCAL_MODULE := avbtool
51include $(BUILD_PREBUILT)
52
David Zeuthenbaf59e22016-11-14 15:39:43 -050053# Build libavb for the target (for e.g. fs_mgr usage).
David Zeuthen21e95262016-07-27 17:58:40 -040054include $(CLEAR_VARS)
55LOCAL_MODULE := libavb
56LOCAL_MODULE_HOST_OS := linux
David Zeuthenbaf59e22016-11-14 15:39:43 -050057LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
David Zeuthen21e95262016-07-27 17:58:40 -040058LOCAL_CLANG := true
David Zeuthen1eb74c92016-10-03 16:47:38 -040059LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
David Zeuthen21e95262016-07-27 17:58:40 -040060LOCAL_LDFLAGS := $(avb_common_ldflags)
David Zeuthen21e95262016-07-27 17:58:40 -040061LOCAL_SRC_FILES := \
62 libavb/avb_chain_partition_descriptor.c \
David Zeuthen8b6973b2016-09-20 12:39:49 -040063 libavb/avb_crc32.c \
David Zeuthen21e95262016-07-27 17:58:40 -040064 libavb/avb_crypto.c \
65 libavb/avb_descriptor.c \
66 libavb/avb_footer.c \
67 libavb/avb_hash_descriptor.c \
68 libavb/avb_hashtree_descriptor.c \
69 libavb/avb_kernel_cmdline_descriptor.c \
70 libavb/avb_property_descriptor.c \
71 libavb/avb_rsa.c \
72 libavb/avb_sha256.c \
73 libavb/avb_sha512.c \
74 libavb/avb_slot_verify.c \
75 libavb/avb_sysdeps_posix.c \
76 libavb/avb_util.c \
77 libavb/avb_vbmeta_image.c
bowgotsaiaf004a82016-10-24 17:10:45 +080078include $(BUILD_STATIC_LIBRARY)
David Zeuthen21e95262016-07-27 17:58:40 -040079
David Zeuthenbaf59e22016-11-14 15:39:43 -050080# Build libavb for the host (for unit tests).
David Zeuthen21e95262016-07-27 17:58:40 -040081include $(CLEAR_VARS)
82LOCAL_MODULE := libavb_host
83LOCAL_MODULE_HOST_OS := linux
David Zeuthenbaf59e22016-11-14 15:39:43 -050084LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
David Zeuthen21e95262016-07-27 17:58:40 -040085LOCAL_MODULE_CLASS := STATIC_LIBRARIES
86LOCAL_CLANG := true
87LOCAL_CFLAGS := $(avb_common_cflags) -fno-stack-protector -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
88LOCAL_LDFLAGS := $(avb_common_ldflags)
David Zeuthen21e95262016-07-27 17:58:40 -040089LOCAL_SRC_FILES := \
90 libavb/avb_chain_partition_descriptor.c \
David Zeuthen8b6973b2016-09-20 12:39:49 -040091 libavb/avb_crc32.c \
David Zeuthen21e95262016-07-27 17:58:40 -040092 libavb/avb_crypto.c \
93 libavb/avb_descriptor.c \
94 libavb/avb_footer.c \
95 libavb/avb_hash_descriptor.c \
96 libavb/avb_hashtree_descriptor.c \
97 libavb/avb_kernel_cmdline_descriptor.c \
98 libavb/avb_property_descriptor.c \
99 libavb/avb_rsa.c \
100 libavb/avb_sha256.c \
101 libavb/avb_sha512.c \
102 libavb/avb_slot_verify.c \
103 libavb/avb_util.c \
104 libavb/avb_vbmeta_image.c
105include $(BUILD_HOST_STATIC_LIBRARY)
106
David Zeuthenbaf59e22016-11-14 15:39:43 -0500107# Build libavb_ab for the host (for unit tests).
108include $(CLEAR_VARS)
109LOCAL_MODULE := libavb_ab_host
110LOCAL_REQUIRED_MODULES := libavb_host
111LOCAL_MODULE_HOST_OS := linux
112LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
113LOCAL_MODULE_CLASS := STATIC_LIBRARIES
114LOCAL_CLANG := true
115LOCAL_CFLAGS := $(avb_common_cflags) -fno-stack-protector -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
116LOCAL_LDFLAGS := $(avb_common_ldflags)
117LOCAL_SRC_FILES := \
118 libavb_ab/avb_ab_flow.c
119include $(BUILD_HOST_STATIC_LIBRARY)
120
David Zeuthen21e95262016-07-27 17:58:40 -0400121include $(CLEAR_VARS)
122LOCAL_MODULE := libavb_host_sysdeps
David Zeuthenbaf59e22016-11-14 15:39:43 -0500123LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
David Zeuthen21e95262016-07-27 17:58:40 -0400124LOCAL_MODULE_HOST_OS := linux
125LOCAL_MODULE_CLASS := STATIC_LIBRARIES
126LOCAL_CLANG := true
127LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
128LOCAL_LDFLAGS := $(avb_common_ldflags)
David Zeuthen21e95262016-07-27 17:58:40 -0400129LOCAL_SRC_FILES := \
130 libavb/avb_sysdeps_posix.c
131include $(BUILD_HOST_STATIC_LIBRARY)
132
133include $(CLEAR_VARS)
134LOCAL_MODULE := libavb_host_unittest
David Zeuthena4fee8b2016-08-22 15:20:43 -0400135LOCAL_REQUIRED_MODULES := simg2img img2simg
David Zeuthen21e95262016-07-27 17:58:40 -0400136LOCAL_MODULE_HOST_OS := linux
137LOCAL_CPP_EXTENSION := .cc
138LOCAL_CLANG := true
139LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
140LOCAL_CPPFLAGS := $(avb_common_cppflags)
141LOCAL_LDFLAGS := $(avb_common_ldflags)
David Zeuthen21e95262016-07-27 17:58:40 -0400142LOCAL_STATIC_LIBRARIES := \
143 libavb_host \
144 libavb_host_sysdeps \
David Zeuthenbaf59e22016-11-14 15:39:43 -0500145 libavb_ab_host \
David Zeuthen21e95262016-07-27 17:58:40 -0400146 libgmock_host \
147 libgtest_host
148LOCAL_SHARED_LIBRARIES := \
149 libchrome
150LOCAL_SRC_FILES := \
David Zeuthen8b6973b2016-09-20 12:39:49 -0400151 test/avb_ab_flow_unittest.cc \
David Zeuthen21e95262016-07-27 17:58:40 -0400152 test/avb_slot_verify_unittest.cc \
153 test/avb_util_unittest.cc \
154 test/avb_vbmeta_image_unittest.cc \
David Zeuthen8b6973b2016-09-20 12:39:49 -0400155 test/avbtool_unittest.cc \
156 test/fake_avb_ops.cc
David Zeuthen21e95262016-07-27 17:58:40 -0400157LOCAL_LDLIBS_linux := -lrt
158include $(BUILD_HOST_NATIVE_TEST)
159
160include $(CLEAR_VARS)
David Zeuthen8b6973b2016-09-20 12:39:49 -0400161LOCAL_MODULE := bootctrl.avb
162LOCAL_MODULE_RELATIVE_PATH := hw
163LOCAL_REQUIRED_MODULES := libavb
164LOCAL_SRC_FILES := \
165 boot_control/boot_control_avb.c \
166 boot_control/avb_ops_device.c \
David Zeuthenbaf59e22016-11-14 15:39:43 -0500167 libavb_ab/avb_ab_flow.c \
David Zeuthen8b6973b2016-09-20 12:39:49 -0400168 libavb/avb_sysdeps_posix.c
169LOCAL_CLANG := true
170LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_COMPILATION
171LOCAL_LDFLAGS := $(avb_common_ldflags)
bowgotsaiaf004a82016-10-24 17:10:45 +0800172LOCAL_SHARED_LIBRARIES := libcutils
David Zeuthenbaf59e22016-11-14 15:39:43 -0500173LOCAL_STATIC_LIBRARIES := libfs_mgr libavb
David Zeuthenb0013ae2016-10-20 17:00:49 -0400174LOCAL_POST_INSTALL_CMD := \
175 $(hide) mkdir -p $(TARGET_OUT_SHARED_LIBRARIES)/hw && \
176 ln -sf bootctrl.avb.so $(TARGET_OUT_SHARED_LIBRARIES)/hw/bootctrl.default.so
David Zeuthen8b6973b2016-09-20 12:39:49 -0400177include $(BUILD_SHARED_LIBRARY)
178
179include $(CLEAR_VARS)
David Zeuthen21e95262016-07-27 17:58:40 -0400180LOCAL_SRC_FILES := libavb_host_symbols_test
181LOCAL_MODULE_TAGS := debug
David Zeuthenbaf59e22016-11-14 15:39:43 -0500182LOCAL_ADDITIONAL_DEPENDENCIES := libavb_ab_host
David Zeuthen21e95262016-07-27 17:58:40 -0400183include $(BUILD_HOST_PREBUILT)