1# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved. 2 3# feature: sh 4if (defined(ohos_lite)) { 5 executable("mksh") { 6 sources = [ 7 "edit.c", 8 "eval.c", 9 "exec.c", 10 "expr.c", 11 "funcs.c", 12 "histrap.c", 13 "jobs.c", 14 "lalloc.c", 15 "lex.c", 16 "main.c", 17 "misc.c", 18 "shf.c", 19 "strlcpy.c", 20 "syn.c", 21 "tree.c", 22 "var.c", 23 ] 24 25 include_dirs = [ "./" ] 26 27 cflags = [ 28 "-Wall", 29 "-Wno-deprecated-declarations", 30 "-fno-asynchronous-unwind-tables", 31 "-fwrapv", 32 "-fstack-protector-all", 33 "-fPIE", 34 35 # various options we choose 36 "-DDEBUG_LEAKS", 37 "-DMKSH_ASSUME_UTF8", 38 "-DMKSH_DONT_EMIT_IDSTRING", 39 40 # and the defines from middleware file Rebuild.sh. 41 "-DMKSH_BUILDSH", 42 "-D_GNU_SOURCE", 43 "-DSETUID_CAN_FAIL_WITH_EAGAIN", 44 "-DHAVE_STRING_POOLING=2", 45 "-DHAVE_ATTRIBUTE_BOUNDED=0", 46 "-DHAVE_ATTRIBUTE_FORMAT=1", 47 "-DHAVE_ATTRIBUTE_NORETURN=1", 48 "-DHAVE_ATTRIBUTE_PURE=1", 49 "-DHAVE_ATTRIBUTE_UNUSED=1", 50 "-DHAVE_ATTRIBUTE_USED=1", 51 "-DHAVE_SYS_TIME_H=1", 52 "-DHAVE_TIME_H=1", 53 "-DHAVE_BOTH_TIME_H=1", 54 "-DHAVE_SYS_BSDTYPES_H=0", 55 "-DHAVE_SYS_FILE_H=1", 56 "-DHAVE_SYS_MKDEV_H=0", 57 "-DHAVE_SYS_MMAN_H=1", 58 "-DHAVE_SYS_PARAM_H=1", 59 "-DHAVE_SYS_RESOURCE_H=1", 60 "-DHAVE_SYS_SELECT_H=1", 61 "-DHAVE_SYS_SYSMACROS_H=1", 62 "-DHAVE_BSTRING_H=0", 63 "-DHAVE_GRP_H=1", 64 "-DHAVE_IO_H=0", 65 "-DHAVE_LIBGEN_H=1", 66 "-DHAVE_LIBUTIL_H=0", 67 "-DHAVE_PATHS_H=1", 68 "-DHAVE_STDINT_H=1", 69 "-DHAVE_STRINGS_H=1", 70 "-DHAVE_TERMIOS_H=1", 71 "-DHAVE_ULIMIT_H=1", 72 "-DHAVE_VALUES_H=1", 73 "-DHAVE_CAN_INTTYPES=1", 74 "-DHAVE_CAN_UCBINTS=1", 75 "-DHAVE_CAN_INT8TYPE=1", 76 "-DHAVE_CAN_UCBINT8=1", 77 "-DHAVE_RLIM_T=1", 78 "-DHAVE_SIG_T=1", 79 "-DHAVE_SYS_ERRLIST=1", 80 "-DHAVE_FLOCK=1", 81 "-DHAVE_LOCK_FCNTL=1", 82 "-DHAVE_GETRUSAGE=1", 83 "-DHAVE_GETSID=1", 84 "-DHAVE_GETTIMEOFDAY=1", 85 "-DHAVE_KILLPG=1", 86 "-DHAVE_MEMMOVE=1", 87 "-DHAVE_MKNOD=0", 88 "-DHAVE_MMAP=1", 89 "-DHAVE_FTRUNCATE=1", 90 "-DHAVE_NICE=1", 91 "-DHAVE_REVOKE=0", 92 "-DHAVE_SETLOCALE_CTYPE=1", 93 "-DHAVE_LANGINFO_CODESET=1", 94 "-DHAVE_SELECT=1", 95 "-DHAVE_SETRESUGID=1", 96 "-DHAVE_SETGROUPS=1", 97 "-DHAVE_STRERROR=1", 98 "-DHAVE_STRSIGNAL=0", 99 "-DHAVE_STRLCPY=0", 100 "-DHAVE_FLOCK_DECL=1", 101 "-DHAVE_REVOKE_DECL=1", 102 "-DHAVE_SYS_ERRLIST_DECL=1", 103 "-DHAVE_SYS_SIGLIST_DECL=1", 104 "-DHAVE_PERSISTENT_HISTORY=1", 105 "-DMKSH_BUILD_R=571", 106 ] 107 108 ldflags = [ 109 "-pie", 110 "-Wl,-z,relro", 111 "-Wl,-z,now", 112 "-Wl,-z,noexecstack", 113 ] 114 } 115} else { 116 import("//build/config/ohos/config.gni") 117 import("//build/ohos.gni") 118 ohos_executable("sh") { 119 sources = [ 120 "edit.c", 121 "eval.c", 122 "exec.c", 123 "expr.c", 124 "funcs.c", 125 "histrap.c", 126 "jobs.c", 127 "lalloc.c", 128 "lex.c", 129 "main.c", 130 "misc.c", 131 "shf.c", 132 "strlcpy.c", 133 "syn.c", 134 "tree.c", 135 "var.c", 136 ] 137 138 include_dirs = [ "./" ] 139 140 cflags = [ 141 "-Wall", 142 "-Wno-deprecated-declarations", 143 "-fno-asynchronous-unwind-tables", 144 "-fwrapv", 145 "-fstack-protector-all", 146 "-fPIE", 147 148 # various options we choose 149 "-DDEBUG_LEAKS", 150 "-DMKSH_ASSUME_UTF8", 151 "-DMKSH_DONT_EMIT_IDSTRING", 152 153 # and the defines from middleware file Rebuild.sh. 154 "-DMKSH_BUILDSH", 155 "-D_GNU_SOURCE", 156 "-DSETUID_CAN_FAIL_WITH_EAGAIN", 157 "-DHAVE_STRING_POOLING=2", 158 "-DHAVE_ATTRIBUTE_BOUNDED=0", 159 "-DHAVE_ATTRIBUTE_FORMAT=1", 160 "-DHAVE_ATTRIBUTE_NORETURN=1", 161 "-DHAVE_ATTRIBUTE_PURE=1", 162 "-DHAVE_ATTRIBUTE_UNUSED=1", 163 "-DHAVE_ATTRIBUTE_USED=1", 164 "-DHAVE_SYS_TIME_H=1", 165 "-DHAVE_TIME_H=1", 166 "-DHAVE_BOTH_TIME_H=1", 167 "-DHAVE_SYS_BSDTYPES_H=0", 168 "-DHAVE_SYS_FILE_H=1", 169 "-DHAVE_SYS_MKDEV_H=0", 170 "-DHAVE_SYS_MMAN_H=1", 171 "-DHAVE_SYS_PARAM_H=1", 172 "-DHAVE_SYS_RESOURCE_H=1", 173 "-DHAVE_SYS_SELECT_H=1", 174 "-DHAVE_SYS_SYSMACROS_H=1", 175 "-DHAVE_BSTRING_H=0", 176 "-DHAVE_GRP_H=1", 177 "-DHAVE_IO_H=0", 178 "-DHAVE_LIBGEN_H=1", 179 "-DHAVE_LIBUTIL_H=0", 180 "-DHAVE_PATHS_H=1", 181 "-DHAVE_STDINT_H=1", 182 "-DHAVE_STRINGS_H=1", 183 "-DHAVE_TERMIOS_H=1", 184 "-DHAVE_VALUES_H=1", 185 "-DHAVE_CAN_INTTYPES=1", 186 "-DHAVE_CAN_UCBINTS=1", 187 "-DHAVE_CAN_INT8TYPE=1", 188 "-DHAVE_CAN_UCBINT8=1", 189 "-DHAVE_RLIM_T=1", 190 "-DHAVE_SIG_T=1", 191 "-DHAVE_SYS_ERRLIST=1", 192 "-DHAVE_FLOCK=1", 193 "-DHAVE_LOCK_FCNTL=1", 194 "-DHAVE_GETRUSAGE=1", 195 "-DHAVE_GETSID=1", 196 "-DHAVE_GETTIMEOFDAY=1", 197 "-DHAVE_KILLPG=1", 198 "-DHAVE_MEMMOVE=1", 199 "-DHAVE_MKNOD=0", 200 "-DHAVE_MMAP=1", 201 "-DHAVE_FTRUNCATE=1", 202 "-DHAVE_NICE=1", 203 "-DHAVE_REVOKE=0", 204 "-DHAVE_SETLOCALE_CTYPE=1", 205 "-DHAVE_LANGINFO_CODESET=1", 206 "-DHAVE_SELECT=1", 207 "-DHAVE_SETRESUGID=1", 208 "-DHAVE_SETGROUPS=1", 209 "-DHAVE_STRERROR=1", 210 "-DHAVE_STRSIGNAL=0", 211 "-DHAVE_STRLCPY=0", 212 "-DHAVE_FLOCK_DECL=1", 213 "-DHAVE_REVOKE_DECL=1", 214 "-DHAVE_SYS_ERRLIST_DECL=1", 215 "-DHAVE_SYS_SIGLIST_DECL=1", 216 "-DHAVE_PERSISTENT_HISTORY=1", 217 "-DMKSH_BUILD_R=571", 218 ] 219 ldflags = [ 220 "-pie", 221 "-Wl,-z,relro", 222 "-Wl,-z,now", 223 "-Wl,-z,noexecstack", 224 ] 225 install_images = [ 226 "system", 227 "updater", 228 ] 229 part_name = "init" 230 install_enable = true 231 } 232} 233