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
31ifeq ($(TARGET_USER_MODE_LINUX), true)
32    init_cflags += -DUSER_MODE_LINUX
33endif
34
35init_cflags += \
36    $(init_options) \
37    -Wall -Wextra \
38    -Wno-unused-parameter \
39    -Werror \
40    -std=gnu++1z \
41
42# --
43
44include $(CLEAR_VARS)
45LOCAL_CPPFLAGS := $(init_cflags)
46LOCAL_SRC_FILES:= \
47    bootchart.cpp \
48    builtins.cpp \
49    init.cpp \
50    init_first_stage.cpp \
51    keychords.cpp \
52    property_service.cpp \
53    reboot.cpp \
54    signal_handler.cpp \
55    ueventd.cpp \
56    watchdogd.cpp \
57
58LOCAL_MODULE:= init
59LOCAL_C_INCLUDES += \
60    system/core/mkbootimg
61
62LOCAL_FORCE_STATIC_EXECUTABLE := true
63LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
64LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED)
65
66LOCAL_STATIC_LIBRARIES := \
67    libinit \
68    libbootloader_message \
69    libfs_mgr \
70    libfec \
71    libfec_rs \
72    libsquashfs_utils \
73    liblogwrap \
74    libext4_utils \
75    libcutils \
76    libbase \
77    libc \
78    libselinux \
79    liblog \
80    libcrypto_utils \
81    libcrypto \
82    libc++_static \
83    libdl \
84    libsparse \
85    libz \
86    libprocessgroup \
87    libavb \
88    libkeyutils \
89
90LOCAL_REQUIRED_MODULES := \
91    e2fsdroid \
92    mke2fs \
93
94# Create symlinks.
95LOCAL_POST_INSTALL_CMD := $(hide) mkdir -p $(TARGET_ROOT_OUT)/sbin; \
96    ln -sf ../init $(TARGET_ROOT_OUT)/sbin/ueventd; \
97    ln -sf ../init $(TARGET_ROOT_OUT)/sbin/watchdogd
98
99LOCAL_SANITIZE := signed-integer-overflow
100LOCAL_CLANG := true
101include $(BUILD_EXECUTABLE)
102