// // Copyright (C) 2017 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // cc_defaults { name: "init_defaults", cpp_std: "experimental", sanitize: { misc_undefined: ["signed-integer-overflow"], }, cppflags: [ "-DLOG_UEVENTS=0", "-Wall", "-Wextra", "-Wno-unused-parameter", "-Werror", "-DALLOW_LOCAL_PROP_OVERRIDE=0", "-DALLOW_PERMISSIVE_SELINUX=0", "-DREBOOT_BOOTLOADER_ON_PANIC=0", "-DWORLD_WRITABLE_KMSG=0", "-DDUMP_ON_UMOUNT_FAILURE=0", "-DSHUTDOWN_ZERO_TIMEOUT=0", ], product_variables: { debuggable: { cppflags: [ "-UALLOW_LOCAL_PROP_OVERRIDE", "-DALLOW_LOCAL_PROP_OVERRIDE=1", "-UALLOW_PERMISSIVE_SELINUX", "-DALLOW_PERMISSIVE_SELINUX=1", "-UREBOOT_BOOTLOADER_ON_PANIC", "-DREBOOT_BOOTLOADER_ON_PANIC=1", "-UWORLD_WRITABLE_KMSG", "-DWORLD_WRITABLE_KMSG=1", "-UDUMP_ON_UMOUNT_FAILURE", "-DDUMP_ON_UMOUNT_FAILURE=1", ], }, eng: { cppflags: [ "-USHUTDOWN_ZERO_TIMEOUT", "-DSHUTDOWN_ZERO_TIMEOUT=1", ], }, uml: { cppflags: ["-DUSER_MODE_LINUX"], } }, } cc_library_static { name: "libinit", defaults: ["init_defaults"], srcs: [ "action.cpp", "capabilities.cpp", "descriptors.cpp", "devices.cpp", "firmware_handler.cpp", "import_parser.cpp", "log.cpp", "parser.cpp", "persistent_properties.cpp", "persistent_properties.proto", "property_service.cpp", "security.cpp", "selinux.cpp", "service.cpp", "subcontext.cpp", "subcontext.proto", "rlimit_parser.cpp", "tokenizer.cpp", "uevent_listener.cpp", "ueventd_parser.cpp", "util.cpp", ], whole_static_libs: ["libcap"], static_libs: [ "libbase", "libselinux", "liblog", "libprocessgroup", "libfs_mgr", "libprotobuf-cpp-lite", ], include_dirs: [ "system/core/mkbootimg", ], proto: { type: "lite", export_proto_headers: true, }, } /* This is not yet ready, see the below TODOs for what is missing cc_binary { // TODO: Missing, //LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) //LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED) name: "init", defaults: ["init_defaults"], required: [ "e2fsdroid", "mke2fs", ], static_executable: true, srcs: [ "bootchart.cpp", "builtins.cpp", "init.cpp", "init_first_stage.cpp", "keychords.cpp", "reboot.cpp", "sigchld_handler.cpp", "ueventd.cpp", "watchdogd.cpp", ], static_libs: [ "libinit", "libbootloader_message", "libfs_mgr", "libfec", "libfec_rs", "libsquashfs_utils", "liblogwrap", "libext4_utils", "libcutils", "libbase", "libc", "libselinux", "liblog", "libcrypto_utils", "libcrypto", "libc++_static", "libdl", "libsparse", "libz", "libprocessgroup", "libavb", "libkeyutils", ], symlinks: [ "sbin/ueventd", "sbin/watchdogd", ], } */ // Tests // ------------------------------------------------------------------------------ cc_test { name: "init_tests", defaults: ["init_defaults"], srcs: [ "devices_test.cpp", "init_test.cpp", "persistent_properties_test.cpp", "property_service_test.cpp", "result_test.cpp", "rlimit_parser_test.cpp", "service_test.cpp", "subcontext_test.cpp", "ueventd_test.cpp", "util_test.cpp", ], shared_libs: [ "libbase", "libcutils", ], static_libs: [ "libinit", "libselinux", "libcrypto", "libprotobuf-cpp-lite", ], } cc_benchmark { name: "init_benchmarks", defaults: ["init_defaults"], srcs: [ "subcontext_benchmark.cpp", ], shared_libs: [ "libbase", "libcutils", ], static_libs: [ "libinit", "libselinux", "libcrypto", "libprotobuf-cpp-lite", ], } subdirs = ["*"]