1# Copyright 2005 The Android Open Source Project 2 3LOCAL_PATH:= $(call my-dir) 4 5# -- 6 7ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) 8init_options += \ 9 -DALLOW_LOCAL_PROP_OVERRIDE=1 \ 10 -DALLOW_PERMISSIVE_SELINUX=1 \ 11 -DREBOOT_BOOTLOADER_ON_PANIC=1 \ 12 -DDUMP_ON_UMOUNT_FAILURE=1 13else 14init_options += \ 15 -DALLOW_LOCAL_PROP_OVERRIDE=0 \ 16 -DALLOW_PERMISSIVE_SELINUX=0 \ 17 -DREBOOT_BOOTLOADER_ON_PANIC=0 \ 18 -DDUMP_ON_UMOUNT_FAILURE=0 19endif 20 21ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT))) 22init_options += \ 23 -DSHUTDOWN_ZERO_TIMEOUT=1 24else 25init_options += \ 26 -DSHUTDOWN_ZERO_TIMEOUT=0 27endif 28 29init_options += -DLOG_UEVENTS=0 30 31init_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. 41ifeq ($(HOST_OS),linux) 42include $(CLEAR_VARS) 43LOCAL_CPPFLAGS := $(init_cflags) 44LOCAL_SRC_FILES:= \ 45 parser/tokenizer.cpp \ 46 47LOCAL_MODULE := libinit_parser 48LOCAL_CLANG := true 49include $(BUILD_HOST_STATIC_LIBRARY) 50 51include $(CLEAR_VARS) 52LOCAL_MODULE := init_parser_tests 53LOCAL_SRC_FILES := \ 54 parser/tokenizer_test.cpp \ 55 56LOCAL_STATIC_LIBRARIES := libinit_parser 57LOCAL_CLANG := true 58include $(BUILD_HOST_NATIVE_TEST) 59endif 60 61include $(CLEAR_VARS) 62LOCAL_CPPFLAGS := $(init_cflags) 63LOCAL_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 74LOCAL_STATIC_LIBRARIES := libbase libselinux liblog libprocessgroup 75LOCAL_WHOLE_STATIC_LIBRARIES := libcap 76LOCAL_MODULE := libinit 77LOCAL_SANITIZE := integer 78LOCAL_CLANG := true 79include $(BUILD_STATIC_LIBRARY) 80 81include $(CLEAR_VARS) 82LOCAL_CPPFLAGS := $(init_cflags) 83LOCAL_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 97LOCAL_MODULE:= init 98LOCAL_C_INCLUDES += \ 99 system/core/mkbootimg 100 101LOCAL_FORCE_STATIC_EXECUTABLE := true 102LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) 103LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED) 104 105LOCAL_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. 129LOCAL_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 133LOCAL_SANITIZE := integer 134LOCAL_CLANG := true 135include $(BUILD_EXECUTABLE) 136 137 138# Unit tests. 139# ========================================================= 140include $(CLEAR_VARS) 141LOCAL_MODULE := init_tests 142LOCAL_SRC_FILES := \ 143 init_parser_test.cpp \ 144 property_service_test.cpp \ 145 service_test.cpp \ 146 util_test.cpp \ 147 148LOCAL_SHARED_LIBRARIES += \ 149 libcutils \ 150 libbase \ 151 152LOCAL_STATIC_LIBRARIES := libinit 153LOCAL_SANITIZE := integer 154LOCAL_CLANG := true 155LOCAL_CPPFLAGS := -Wall -Wextra -Werror 156include $(BUILD_NATIVE_TEST) 157 158 159# Include targets in subdirs. 160# ========================================================= 161include $(call all-makefiles-under,$(LOCAL_PATH)) 162