Home | History | Annotate | Download | only in libbrillo
      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 
     15 # Default values for the USE flags. Override these USE flags from your product
     16 # by setting BRILLO_USE_* values. Note that we define local variables like
     17 # local_use_* to prevent leaking our default setting for other packages.
     18 
     19 LOCAL_PATH := $(call my-dir)
     20 
     21 libbrillo_cpp_extension := .cc
     22 libbrillo_core_sources := \
     23     brillo/backoff_entry.cc \
     24     brillo/data_encoding.cc \
     25     brillo/errors/error.cc \
     26     brillo/errors/error_codes.cc \
     27     brillo/flag_helper.cc \
     28     brillo/key_value_store.cc \
     29     brillo/message_loops/base_message_loop.cc \
     30     brillo/message_loops/message_loop.cc \
     31     brillo/message_loops/message_loop_utils.cc \
     32     brillo/mime_utils.cc \
     33     brillo/osrelease_reader.cc \
     34     brillo/process.cc \
     35     brillo/process_information.cc \
     36     brillo/secure_blob.cc \
     37     brillo/strings/string_utils.cc \
     38     brillo/syslog_logging.cc \
     39     brillo/type_name_undecorate.cc \
     40     brillo/url_utils.cc \
     41     brillo/userdb_utils.cc \
     42     brillo/value_conversion.cc \
     43 
     44 libbrillo_linux_sources := \
     45     brillo/asynchronous_signal_handler.cc \
     46     brillo/daemons/daemon.cc \
     47     brillo/file_utils.cc \
     48     brillo/process_reaper.cc \
     49 
     50 libbrillo_binder_sources := \
     51     brillo/binder_watcher.cc \
     52 
     53 libbrillo_http_sources := \
     54     brillo/http/curl_api.cc \
     55     brillo/http/http_connection_curl.cc \
     56     brillo/http/http_form_data.cc \
     57     brillo/http/http_request.cc \
     58     brillo/http/http_transport.cc \
     59     brillo/http/http_transport_curl.cc \
     60     brillo/http/http_utils.cc \
     61 
     62 libbrillo_policy_sources := \
     63     policy/device_policy.cc \
     64     policy/libpolicy.cc \
     65 
     66 libbrillo_stream_sources := \
     67     brillo/streams/file_stream.cc \
     68     brillo/streams/input_stream_set.cc \
     69     brillo/streams/memory_containers.cc \
     70     brillo/streams/memory_stream.cc \
     71     brillo/streams/openssl_stream_bio.cc \
     72     brillo/streams/stream.cc \
     73     brillo/streams/stream_errors.cc \
     74     brillo/streams/stream_utils.cc \
     75     brillo/streams/tls_stream.cc \
     76 
     77 libbrillo_test_helpers_sources := \
     78     brillo/http/http_connection_fake.cc \
     79     brillo/http/http_transport_fake.cc \
     80     brillo/message_loops/fake_message_loop.cc \
     81     brillo/streams/fake_stream.cc \
     82     brillo/unittest_utils.cc \
     83 
     84 libbrillo_test_sources := \
     85     brillo/asynchronous_signal_handler_unittest.cc \
     86     brillo/backoff_entry_unittest.cc \
     87     brillo/data_encoding_unittest.cc \
     88     brillo/errors/error_codes_unittest.cc \
     89     brillo/errors/error_unittest.cc \
     90     brillo/file_utils_unittest.cc \
     91     brillo/flag_helper_unittest.cc \
     92     brillo/http/http_connection_curl_unittest.cc \
     93     brillo/http/http_form_data_unittest.cc \
     94     brillo/http/http_request_unittest.cc \
     95     brillo/http/http_transport_curl_unittest.cc \
     96     brillo/http/http_utils_unittest.cc \
     97     brillo/key_value_store_unittest.cc \
     98     brillo/map_utils_unittest.cc \
     99     brillo/message_loops/base_message_loop_unittest.cc \
    100     brillo/message_loops/fake_message_loop_unittest.cc \
    101     brillo/mime_utils_unittest.cc \
    102     brillo/osrelease_reader_unittest.cc \
    103     brillo/process_reaper_unittest.cc \
    104     brillo/process_unittest.cc \
    105     brillo/secure_blob_unittest.cc \
    106     brillo/streams/fake_stream_unittest.cc \
    107     brillo/streams/file_stream_unittest.cc \
    108     brillo/streams/input_stream_set_unittest.cc \
    109     brillo/streams/memory_containers_unittest.cc \
    110     brillo/streams/memory_stream_unittest.cc \
    111     brillo/streams/openssl_stream_bio_unittests.cc \
    112     brillo/streams/stream_unittest.cc \
    113     brillo/streams/stream_utils_unittest.cc \
    114     brillo/strings/string_utils_unittest.cc \
    115     brillo/unittest_utils.cc \
    116     brillo/url_utils_unittest.cc \
    117     brillo/value_conversion_unittest.cc \
    118 
    119 libbrillo_CFLAGS := \
    120     -Wall \
    121     -Werror
    122 libbrillo_CPPFLAGS :=
    123 libbrillo_includes :=
    124 libbrillo_shared_libraries := libchrome
    125 
    126 # Shared library for target
    127 # ========================================================
    128 include $(CLEAR_VARS)
    129 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    130 LOCAL_MODULE := libbrillo
    131 LOCAL_SRC_FILES := $(libbrillo_core_sources) $(libbrillo_linux_sources)
    132 LOCAL_C_INCLUDES := $(libbrillo_includes)
    133 LOCAL_SHARED_LIBRARIES := $(libbrillo_shared_libraries)
    134 LOCAL_STATIC_LIBRARIES := libmodpb64 libgtest_prod
    135 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    136 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS)
    137 LOCAL_CLANG := true
    138 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    139 include $(BUILD_SHARED_LIBRARY)
    140 
    141 # Shared binder library for target
    142 # ========================================================
    143 include $(CLEAR_VARS)
    144 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    145 LOCAL_MODULE := libbrillo-binder
    146 LOCAL_SRC_FILES := $(libbrillo_binder_sources)
    147 LOCAL_C_INCLUDES := $(libbrillo_includes)
    148 LOCAL_SHARED_LIBRARIES := \
    149     $(libbrillo_shared_libraries) \
    150     libbinder \
    151     libbrillo \
    152     libutils
    153 LOCAL_STATIC_LIBRARIES := libgtest_prod
    154 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    155 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS)
    156 LOCAL_CLANG := true
    157 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    158 include $(BUILD_SHARED_LIBRARY)
    159 
    160 # Shared minijail library for target
    161 # ========================================================
    162 include $(CLEAR_VARS)
    163 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    164 LOCAL_MODULE := libbrillo-minijail
    165 LOCAL_SRC_FILES := brillo/minijail/minijail.cc \
    166 
    167 LOCAL_C_INCLUDES := $(libbrillo_includes)
    168 LOCAL_SHARED_LIBRARIES := $(libbrillo_shared_libraries) libbrillo \
    169     libminijail
    170 LOCAL_STATIC_LIBRARIES := libgtest_prod
    171 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    172 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS)
    173 LOCAL_CLANG := true
    174 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    175 include $(BUILD_SHARED_LIBRARY)
    176 
    177 # Shared stream library for target
    178 # ========================================================
    179 include $(CLEAR_VARS)
    180 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    181 LOCAL_MODULE := libbrillo-stream
    182 LOCAL_SRC_FILES := $(libbrillo_stream_sources)
    183 LOCAL_C_INCLUDES := $(libbrillo_includes)
    184 LOCAL_SHARED_LIBRARIES := $(libbrillo_shared_libraries) libbrillo \
    185     libcrypto libssl
    186 LOCAL_STATIC_LIBRARIES := libgtest_prod
    187 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    188 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS)
    189 LOCAL_CLANG := true
    190 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    191 include $(BUILD_SHARED_LIBRARY)
    192 
    193 # Shared http library for target
    194 # ========================================================
    195 include $(CLEAR_VARS)
    196 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    197 LOCAL_MODULE := libbrillo-http
    198 LOCAL_SRC_FILES := $(libbrillo_http_sources)
    199 LOCAL_C_INCLUDES := $(libbrillo_includes)
    200 LOCAL_SHARED_LIBRARIES := $(libbrillo_shared_libraries) libbrillo \
    201     libbrillo-stream libcurl
    202 LOCAL_STATIC_LIBRARIES := libgtest_prod
    203 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    204 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS)
    205 LOCAL_CLANG := true
    206 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    207 include $(BUILD_SHARED_LIBRARY)
    208 
    209 # Shared policy library for target
    210 # ========================================================
    211 include $(CLEAR_VARS)
    212 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    213 LOCAL_MODULE := libbrillo-policy
    214 LOCAL_SRC_FILES := $(libbrillo_policy_sources)
    215 LOCAL_C_INCLUDES := $(libbrillo_includes)
    216 LOCAL_SHARED_LIBRARIES := $(libbrillo_shared_libraries)
    217 LOCAL_STATIC_LIBRARIES := libgtest_prod
    218 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    219 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS)
    220 LOCAL_CLANG := true
    221 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    222 include $(BUILD_SHARED_LIBRARY)
    223 
    224 # Static library for target
    225 # ========================================================
    226 include $(CLEAR_VARS)
    227 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    228 LOCAL_MODULE := libbrillo
    229 LOCAL_SRC_FILES := $(libbrillo_core_sources) $(libbrillo_linux_sources)
    230 LOCAL_C_INCLUDES := $(libbrillo_includes)
    231 LOCAL_STATIC_LIBRARIES := $(libbrillo_shared_libraries) libmodpb64 libgtest_prod
    232 LOCAL_EXPORT_STATIC_LIBRARY_HEADERS := $(LOCAL_STATIC_LIBRARIES)
    233 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    234 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS)
    235 LOCAL_CLANG := true
    236 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    237 include $(BUILD_STATIC_LIBRARY)
    238 
    239 # Static stream library for target
    240 # ========================================================
    241 include $(CLEAR_VARS)
    242 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    243 LOCAL_MODULE := libbrillo-stream
    244 LOCAL_SRC_FILES := $(libbrillo_stream_sources)
    245 LOCAL_C_INCLUDES := $(libbrillo_includes)
    246 LOCAL_STATIC_LIBRARIES := $(libbrillo_shared_libraries) libbrillo \
    247     libcrypto libssl libgtest_prod
    248 LOCAL_EXPORT_STATIC_LIBRARY_HEADERS := $(LOCAL_STATIC_LIBRARIES)
    249 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    250 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS)
    251 LOCAL_CLANG := true
    252 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    253 include $(BUILD_STATIC_LIBRARY)
    254 
    255 # Static test-helpers library for target
    256 # ========================================================
    257 include $(CLEAR_VARS)
    258 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    259 LOCAL_MODULE := libbrillo-test-helpers
    260 LOCAL_SRC_FILES := $(libbrillo_test_helpers_sources)
    261 LOCAL_C_INCLUDES := $(libbrillo_includes)
    262 LOCAL_STATIC_LIBRARIES := libgtest libgmock
    263 LOCAL_SHARED_LIBRARIES := $(libbrillo_shared_libraries) libbrillo libcurl \
    264     libbrillo-http libbrillo-stream libcrypto
    265 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    266 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS) -Wno-sign-compare
    267 LOCAL_CLANG := true
    268 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    269 include $(BUILD_STATIC_LIBRARY)
    270 
    271 # Shared library for host
    272 # ========================================================
    273 include $(CLEAR_VARS)
    274 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    275 LOCAL_MODULE := libbrillo
    276 LOCAL_SRC_FILES := $(libbrillo_core_sources)
    277 LOCAL_C_INCLUDES := $(libbrillo_includes)
    278 LOCAL_SHARED_LIBRARIES := $(libbrillo_shared_libraries)
    279 LOCAL_STATIC_LIBRARIES := libmodpb64 libgtest_prod
    280 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    281 LOCAL_CPPFLAGS := \
    282     -D__ANDROID_HOST__ \
    283     $(libbrillo_CPPFLAGS)
    284 LOCAL_CLANG := true
    285 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    286 include $(BUILD_HOST_SHARED_LIBRARY)
    287 
    288 ifeq ($(HOST_OS),linux)
    289 
    290 # Shared stream library for host
    291 # ========================================================
    292 include $(CLEAR_VARS)
    293 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    294 LOCAL_MODULE := libbrillo-stream
    295 LOCAL_SRC_FILES := $(libbrillo_stream_sources)
    296 LOCAL_C_INCLUDES := $(libbrillo_includes)
    297 LOCAL_SHARED_LIBRARIES := $(libbrillo_shared_libraries) libbrillo \
    298     libcrypto libssl
    299 LOCAL_STATIC_LIBRARIES := libgtest_prod
    300 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    301 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS)
    302 LOCAL_CLANG := true
    303 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    304 include $(BUILD_HOST_SHARED_LIBRARY)
    305 
    306 # Shared http library for host
    307 # ========================================================
    308 include $(CLEAR_VARS)
    309 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    310 LOCAL_MODULE := libbrillo-http
    311 LOCAL_SRC_FILES := $(libbrillo_http_sources)
    312 LOCAL_C_INCLUDES := $(libbrillo_includes)
    313 LOCAL_SHARED_LIBRARIES := $(libbrillo_shared_libraries) libbrillo \
    314     libbrillo-stream libcurl
    315 LOCAL_STATIC_LIBRARIES := libgtest_prod
    316 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    317 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS)
    318 LOCAL_CLANG := true
    319 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
    320 include $(BUILD_HOST_SHARED_LIBRARY)
    321 
    322 endif  # HOST_OS == linux
    323 
    324 # Unit tests.
    325 # ========================================================
    326 include $(CLEAR_VARS)
    327 LOCAL_CPP_EXTENSION := $(libbrillo_cpp_extension)
    328 LOCAL_MODULE := libbrillo_test
    329 LOCAL_MODULE_CLASS := NATIVE_TESTS
    330 generated_sources_dir := $(call local-generated-sources-dir)
    331 LOCAL_SRC_FILES := $(libbrillo_test_sources)
    332 LOCAL_C_INCLUDES := \
    333     $(libbrillo_includes) \
    334     $(generated_sources_dir)/proto/external/libbrillo
    335 LOCAL_STATIC_LIBRARIES := libgtest libchrome_test_helpers \
    336     libbrillo-test-helpers libgmock libBionicGtestMain
    337 LOCAL_SHARED_LIBRARIES := $(libbrillo_shared_libraries) libbrillo libcurl \
    338     libbrillo-http libbrillo-stream libcrypto libprotobuf-cpp-lite
    339 LOCAL_CFLAGS := $(libbrillo_CFLAGS)
    340 LOCAL_CPPFLAGS := $(libbrillo_CPPFLAGS) -Wno-sign-compare
    341 LOCAL_CLANG := true
    342 include $(BUILD_NATIVE_TEST)
    343 
    344 # Run unit tests on target
    345 # ========================================================
    346 # We su shell because process tests try setting "illegal"
    347 # uid/gids and expecting failures, but root can legally
    348 # set those to any value.
    349 runtargettests: libbrillo_test
    350 	adb sync
    351 	adb shell su shell /data/nativetest/libbrillo_test/libbrillo_test
    352