blob: 31e2cf3d2befc27f0791c6a97dd18010bb15f622 [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 \
38 -fstack-protector-strong \
39 -fvisibility=hidden
40avb_common_cppflags := \
41 -Wnon-virtual-dtor \
42 -fno-strict-aliasing
43avb_common_ldflags := \
44 -Wl,--gc-sections
45
46include $(CLEAR_VARS)
47LOCAL_SRC_FILES := avbtool
48LOCAL_MODULE_CLASS := EXECUTABLES
49LOCAL_IS_HOST_MODULE := true
50LOCAL_MODULE := avbtool
51include $(BUILD_PREBUILT)
52
53# Build for the target (for e.g. fs_mgr usage).
54include $(CLEAR_VARS)
55LOCAL_MODULE := libavb
56LOCAL_MODULE_HOST_OS := linux
57LOCAL_EXPORT_C_INDLUDE_DIRS := $(LOCAL_PATH)/libavb
58LOCAL_CLANG := true
59LOCAL_CFLAGS := $(avb_common_cflags) -fno-stack-protector -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
60LOCAL_LDFLAGS := $(avb_common_ldflags)
61LOCAL_C_INCLUDES :=
62LOCAL_SRC_FILES := \
David Zeuthen8b6973b2016-09-20 12:39:49 -040063 libavb/avb_ab_flow.c \
David Zeuthen21e95262016-07-27 17:58:40 -040064 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 \
79 libavb/avb_vbmeta_image.c
80include $(BUILD_SHARED_LIBRARY)
81
82# Build for the host (for unit tests).
83include $(CLEAR_VARS)
84LOCAL_MODULE := libavb_host
85LOCAL_MODULE_HOST_OS := linux
86LOCAL_MODULE_CLASS := STATIC_LIBRARIES
87LOCAL_CLANG := true
88LOCAL_CFLAGS := $(avb_common_cflags) -fno-stack-protector -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
89LOCAL_LDFLAGS := $(avb_common_ldflags)
90LOCAL_C_INCLUDES :=
91LOCAL_SRC_FILES := \
David Zeuthen8b6973b2016-09-20 12:39:49 -040092 libavb/avb_ab_flow.c \
David Zeuthen21e95262016-07-27 17:58:40 -040093 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 \
107 libavb/avb_vbmeta_image.c
108include $(BUILD_HOST_STATIC_LIBRARY)
109
110include $(CLEAR_VARS)
111LOCAL_MODULE := libavb_host_sysdeps
112LOCAL_MODULE_HOST_OS := linux
113LOCAL_MODULE_CLASS := STATIC_LIBRARIES
114LOCAL_CLANG := true
115LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
116LOCAL_LDFLAGS := $(avb_common_ldflags)
117LOCAL_C_INCLUDES :=
118LOCAL_SRC_FILES := \
119 libavb/avb_sysdeps_posix.c
120include $(BUILD_HOST_STATIC_LIBRARY)
121
122include $(CLEAR_VARS)
123LOCAL_MODULE := libavb_host_unittest
David Zeuthena4fee8b2016-08-22 15:20:43 -0400124LOCAL_REQUIRED_MODULES := simg2img img2simg
David Zeuthen21e95262016-07-27 17:58:40 -0400125LOCAL_MODULE_HOST_OS := linux
126LOCAL_CPP_EXTENSION := .cc
127LOCAL_CLANG := true
128LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_ENABLE_DEBUG -DAVB_COMPILATION
129LOCAL_CPPFLAGS := $(avb_common_cppflags)
130LOCAL_LDFLAGS := $(avb_common_ldflags)
131LOCAL_C_INCLUDES := $(LOCAL_PATH)/libavb external/gtest/include
132LOCAL_STATIC_LIBRARIES := \
133 libavb_host \
134 libavb_host_sysdeps \
135 libgmock_host \
136 libgtest_host
137LOCAL_SHARED_LIBRARIES := \
138 libchrome
139LOCAL_SRC_FILES := \
David Zeuthen8b6973b2016-09-20 12:39:49 -0400140 test/avb_ab_flow_unittest.cc \
David Zeuthen21e95262016-07-27 17:58:40 -0400141 test/avb_slot_verify_unittest.cc \
142 test/avb_util_unittest.cc \
143 test/avb_vbmeta_image_unittest.cc \
David Zeuthen8b6973b2016-09-20 12:39:49 -0400144 test/avbtool_unittest.cc \
145 test/fake_avb_ops.cc
David Zeuthen21e95262016-07-27 17:58:40 -0400146LOCAL_LDLIBS_linux := -lrt
147include $(BUILD_HOST_NATIVE_TEST)
148
149include $(CLEAR_VARS)
David Zeuthen8b6973b2016-09-20 12:39:49 -0400150LOCAL_MODULE := bootctrl.avb
151LOCAL_MODULE_RELATIVE_PATH := hw
152LOCAL_REQUIRED_MODULES := libavb
153LOCAL_SRC_FILES := \
154 boot_control/boot_control_avb.c \
155 boot_control/avb_ops_device.c \
156 libavb/avb_sysdeps_posix.c
157LOCAL_CLANG := true
158LOCAL_CFLAGS := $(avb_common_cflags) -DAVB_COMPILATION
159LOCAL_LDFLAGS := $(avb_common_ldflags)
160LOCAL_C_INCLUDES := $(LOCAL_PATH)/libavb
161LOCAL_SHARED_LIBRARIES := libcutils
162LOCAL_STATIC_LIBRARIES := libfs_mgr
163include $(BUILD_SHARED_LIBRARY)
164
165include $(CLEAR_VARS)
David Zeuthen21e95262016-07-27 17:58:40 -0400166LOCAL_SRC_FILES := libavb_host_symbols_test
167LOCAL_MODULE_TAGS := debug
168LOCAL_ADDITIONAL_DEPENDENCIES := libavb_host
169include $(BUILD_HOST_PREBUILT)