• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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