1 # Copyright 2005 The Android Open Source Project 2 3 LOCAL_PATH:= $(call my-dir) 4 5 # -- 6 7 ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) 8 init_options += \ 9 -DALLOW_LOCAL_PROP_OVERRIDE=1 \ 10 -DALLOW_PERMISSIVE_SELINUX=1 \ 11 -DREBOOT_BOOTLOADER_ON_PANIC=1 \ 12 -DDUMP_ON_UMOUNT_FAILURE=1 13 else 14 init_options += \ 15 -DALLOW_LOCAL_PROP_OVERRIDE=0 \ 16 -DALLOW_PERMISSIVE_SELINUX=0 \ 17 -DREBOOT_BOOTLOADER_ON_PANIC=0 \ 18 -DDUMP_ON_UMOUNT_FAILURE=0 19 endif 20 21 ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT))) 22 init_options += \ 23 -DSHUTDOWN_ZERO_TIMEOUT=1 24 else 25 init_options += \ 26 -DSHUTDOWN_ZERO_TIMEOUT=0 27 endif 28 29 init_options += -DLOG_UEVENTS=0 30 31 init_cflags += \ 32 $(init_options) \ 33 -Wall -Wextra \ 34 -Wno-unused-parameter \ 35 -Werror \ 36 -std=gnu++1z \ 37 38 # -- 39 40 # If building on Linux, then build unit test for the host. 41 ifeq ($(HOST_OS),linux) 42 include $(CLEAR_VARS) 43 LOCAL_CPPFLAGS := $(init_cflags) 44 LOCAL_SRC_FILES:= \ 45 parser/tokenizer.cpp \ 46 47 LOCAL_MODULE := libinit_parser 48 LOCAL_CLANG := true 49 include $(BUILD_HOST_STATIC_LIBRARY) 50 51 include $(CLEAR_VARS) 52 LOCAL_MODULE := init_parser_tests 53 LOCAL_SRC_FILES := \ 54 parser/tokenizer_test.cpp \ 55 56 LOCAL_STATIC_LIBRARIES := libinit_parser 57 LOCAL_CLANG := true 58 include $(BUILD_HOST_NATIVE_TEST) 59 endif 60 61 include $(CLEAR_VARS) 62 LOCAL_CPPFLAGS := $(init_cflags) 63 LOCAL_SRC_FILES:= \ 64 action.cpp \ 65 capabilities.cpp \ 66 descriptors.cpp \ 67 import_parser.cpp \ 68 init_parser.cpp \ 69 log.cpp \ 70 parser.cpp \ 71 service.cpp \ 72 util.cpp \ 73 74 LOCAL_STATIC_LIBRARIES := libbase libselinux liblog libprocessgroup 75 LOCAL_WHOLE_STATIC_LIBRARIES := libcap 76 LOCAL_MODULE := libinit 77 LOCAL_SANITIZE := integer 78 LOCAL_CLANG := true 79 include $(BUILD_STATIC_LIBRARY) 80 81 include $(CLEAR_VARS) 82 LOCAL_CPPFLAGS := $(init_cflags) 83 LOCAL_SRC_FILES:= \ 84 bootchart.cpp \ 85 builtins.cpp \ 86 devices.cpp \ 87 init.cpp \ 88 init_first_stage.cpp \ 89 keychords.cpp \ 90 property_service.cpp \ 91 reboot.cpp \ 92 signal_handler.cpp \ 93 ueventd.cpp \ 94 ueventd_parser.cpp \ 95 watchdogd.cpp \ 96 97 LOCAL_MODULE:= init 98 LOCAL_C_INCLUDES += \ 99 system/core/mkbootimg 100 101 LOCAL_FORCE_STATIC_EXECUTABLE := true 102 LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) 103 LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED) 104 105 LOCAL_STATIC_LIBRARIES := \ 106 libinit \ 107 libbootloader_message \ 108 libfs_mgr \ 109 libfec \ 110 libfec_rs \ 111 libsquashfs_utils \ 112 liblogwrap \ 113 libext4_utils \ 114 libcutils \ 115 libbase \ 116 libc \ 117 libselinux \ 118 liblog \ 119 libcrypto_utils \ 120 libcrypto \ 121 libc++_static \ 122 libdl \ 123 libsparse \ 124 libz \ 125 libprocessgroup \ 126 libavb 127 128 # Create symlinks. 129 LOCAL_POST_INSTALL_CMD := $(hide) mkdir -p $(TARGET_ROOT_OUT)/sbin; \ 130 ln -sf ../init $(TARGET_ROOT_OUT)/sbin/ueventd; \ 131 ln -sf ../init $(TARGET_ROOT_OUT)/sbin/watchdogd 132 133 LOCAL_SANITIZE := integer 134 LOCAL_CLANG := true 135 include $(BUILD_EXECUTABLE) 136 137 138 # Unit tests. 139 # ========================================================= 140 include $(CLEAR_VARS) 141 LOCAL_MODULE := init_tests 142 LOCAL_SRC_FILES := \ 143 init_parser_test.cpp \ 144 property_service_test.cpp \ 145 service_test.cpp \ 146 util_test.cpp \ 147 148 LOCAL_SHARED_LIBRARIES += \ 149 libcutils \ 150 libbase \ 151 152 LOCAL_STATIC_LIBRARIES := libinit 153 LOCAL_SANITIZE := integer 154 LOCAL_CLANG := true 155 LOCAL_CPPFLAGS := -Wall -Wextra -Werror 156 include $(BUILD_NATIVE_TEST) 157 158 159 # Include targets in subdirs. 160 # ========================================================= 161 include $(call all-makefiles-under,$(LOCAL_PATH)) 162