1d9f0492fSopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd. 2d9f0492fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3d9f0492fSopenharmony_ci# you may not use this file except in compliance with the License. 4d9f0492fSopenharmony_ci# You may obtain a copy of the License at 5d9f0492fSopenharmony_ci# 6d9f0492fSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7d9f0492fSopenharmony_ci# 8d9f0492fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9d9f0492fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10d9f0492fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11d9f0492fSopenharmony_ci# See the License for the specific language governing permissions and 12d9f0492fSopenharmony_ci# limitations under the License. 13d9f0492fSopenharmony_ciimport("//base/startup/init/begetd.gni") 14d9f0492fSopenharmony_ci 15d9f0492fSopenharmony_ciinit_common_sources = [ 16d9f0492fSopenharmony_ci "../init_capability.c", 17d9f0492fSopenharmony_ci "../init_common_cmds.c", 18d9f0492fSopenharmony_ci "../init_common_service.c", 19d9f0492fSopenharmony_ci "../init_config.c", 20d9f0492fSopenharmony_ci "../init_group_manager.c", 21d9f0492fSopenharmony_ci "../init_service_file.c", 22d9f0492fSopenharmony_ci "../init_service_manager.c", 23d9f0492fSopenharmony_ci "../init_service_socket.c", 24d9f0492fSopenharmony_ci "../main.c", 25d9f0492fSopenharmony_ci] 26d9f0492fSopenharmony_ci 27d9f0492fSopenharmony_ci# feature: init 28d9f0492fSopenharmony_ciexecutable("init") { 29d9f0492fSopenharmony_ci output_name = "init" 30d9f0492fSopenharmony_ci defines = [ 31d9f0492fSopenharmony_ci "_GNU_SOURCE", 32d9f0492fSopenharmony_ci "OHOS_LITE", 33d9f0492fSopenharmony_ci "__MUSL__", 34d9f0492fSopenharmony_ci ] 35d9f0492fSopenharmony_ci if (init_feature_begetctl_liteos) { 36d9f0492fSopenharmony_ci defines += [ "LITEOS_SUPPORT" ] 37d9f0492fSopenharmony_ci } 38d9f0492fSopenharmony_ci sources = [ 39d9f0492fSopenharmony_ci "../adapter/init_adapter.c", 40d9f0492fSopenharmony_ci "../lite/init.c", 41d9f0492fSopenharmony_ci "../lite/init_cmds.c", 42d9f0492fSopenharmony_ci "../lite/init_jobs.c", 43d9f0492fSopenharmony_ci "../lite/init_reboot.c", 44d9f0492fSopenharmony_ci "../lite/init_service.c", 45d9f0492fSopenharmony_ci "../lite/init_signal_handler.c", 46d9f0492fSopenharmony_ci ] 47d9f0492fSopenharmony_ci sources += init_common_sources 48d9f0492fSopenharmony_ci 49d9f0492fSopenharmony_ci include_dirs = [ 50d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include", 51d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/fd_holder", 52d9f0492fSopenharmony_ci "//base/startup/init/interfaces/innerkits/include/param", 53d9f0492fSopenharmony_ci "//base/startup/init/services/init/include", 54d9f0492fSopenharmony_ci "//third_party/cJSON", 55d9f0492fSopenharmony_ci "//base/hiviewdfx/hilog_lite/interfaces/native/kits", 56d9f0492fSopenharmony_ci ] 57d9f0492fSopenharmony_ci 58d9f0492fSopenharmony_ci ldflags = [] 59d9f0492fSopenharmony_ci deps = [ 60d9f0492fSopenharmony_ci "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared", 61d9f0492fSopenharmony_ci "//base/startup/init/services/log:init_log", 62d9f0492fSopenharmony_ci "//base/startup/init/services/loopevent:loopevent", 63d9f0492fSopenharmony_ci "//base/startup/init/services/modules/init_hook:inithook", 64d9f0492fSopenharmony_ci "//base/startup/init/services/param/base:param_base", 65d9f0492fSopenharmony_ci "//base/startup/init/services/utils:libinit_utils", 66d9f0492fSopenharmony_ci "//build/lite/config/component/cJSON:cjson_static", 67d9f0492fSopenharmony_ci ] 68d9f0492fSopenharmony_ci external_deps = [ "bounds_checking_function:libsec_static" ] 69d9f0492fSopenharmony_ci 70d9f0492fSopenharmony_ci if (ohos_kernel_type == "liteos_a") { 71d9f0492fSopenharmony_ci defines += [ "__LITEOS_A__" ] 72d9f0492fSopenharmony_ci include_dirs += [ 73d9f0492fSopenharmony_ci "//kernel/liteos_a/syscall", 74d9f0492fSopenharmony_ci "//kernel/liteos_a/kernel/include", 75d9f0492fSopenharmony_ci "//base/startup/init/interfaces/kits/syscap", 76d9f0492fSopenharmony_ci "//base/startup/init/initsync/include", 77d9f0492fSopenharmony_ci ] 78d9f0492fSopenharmony_ci deps += [ 79d9f0492fSopenharmony_ci "//base/startup/init/initsync:initsync", 80d9f0492fSopenharmony_ci "//base/startup/init/services/param/liteos:param_init_lite", 81d9f0492fSopenharmony_ci ] 82d9f0492fSopenharmony_ci } 83d9f0492fSopenharmony_ci if (ohos_kernel_type == "linux") { 84d9f0492fSopenharmony_ci defines += [ 85d9f0492fSopenharmony_ci "NEED_EXEC_RCS_LINUX", 86d9f0492fSopenharmony_ci "__LINUX__", 87d9f0492fSopenharmony_ci ] 88d9f0492fSopenharmony_ci ldflags += [ 89d9f0492fSopenharmony_ci "-lm", 90d9f0492fSopenharmony_ci "-lpthread", 91d9f0492fSopenharmony_ci ] 92d9f0492fSopenharmony_ci deps += [ 93d9f0492fSopenharmony_ci "//base/startup/init/services/param/linux:param_init", 94d9f0492fSopenharmony_ci "//third_party/mksh", 95d9f0492fSopenharmony_ci ] 96d9f0492fSopenharmony_ci external_deps += [ "toybox:toybox" ] 97d9f0492fSopenharmony_ci } 98d9f0492fSopenharmony_ci} 99