Home | History | Annotate | Download | only in init
      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