blob: 5d8cd4f9f269c87804448f4384995fca88e6676d [file] [log] [blame]
Jiyong Park67090532017-09-26 09:07:54 +09001// Copyright © 2010, 2013
2// Thorsten Glaser <t.glaser@tarent.de>
3// This file is provided under the same terms as mksh.
4
Bob Badour05879a92021-02-03 17:29:33 -08005package {
6 default_applicable_licenses: ["external_mksh_license"],
7}
8
9license {
10 name: "external_mksh_license",
11 visibility: [":__subpackages__"],
12 license_kinds: [
13 "SPDX-license-identifier-BSD",
14 "SPDX-license-identifier-MIT",
15 "SPDX-license-identifier-Unicode-DFS",
16 "legacy_notice",
17 ],
18 license_text: [
19 "NOTICE",
20 ],
21}
22
Jiyong Park67090532017-09-26 09:07:54 +090023cc_defaults {
24 name: "sh-defaults",
25
26 srcs: [
27 "src/lalloc.c",
28 "src/edit.c",
29 "src/eval.c",
30 "src/exec.c",
31 "src/expr.c",
32 "src/funcs.c",
33 "src/histrap.c",
34 "src/jobs.c",
35 "src/lex.c",
36 "src/main.c",
37 "src/misc.c",
38 "src/shf.c",
39 "src/syn.c",
40 "src/tree.c",
Sadaf Ebrahimib02792c2023-03-31 18:17:33 +000041 "src/ulimit.c",
Jiyong Park67090532017-09-26 09:07:54 +090042 "src/var.c",
43 ],
44
45 local_include_dirs: ["src"],
46
47 cflags: [
48 // Compiler flags...
49 "-Wall",
50 "-Werror",
51 "-Wno-deprecated-declarations",
52 "-fno-asynchronous-unwind-tables",
53 "-fno-strict-aliasing",
Jiyong Park67090532017-09-26 09:07:54 +090054 "-fwrapv",
55
56 // ...various options we choose
57 "-DDEBUG_LEAKS",
58 "-DMKSH_ASSUME_UTF8",
59 "-DMKSH_DONT_EMIT_IDSTRING",
60 "-DKSH_VERSIONNAME_VENDOR_EXT=\" Android\"",
61
Elliott Hughes55d30842023-05-10 15:53:25 -070062 // ...and the defines from src/Rebuild.sh after running src/Build.sh.
Jiyong Park67090532017-09-26 09:07:54 +090063 "-DMKSH_BUILDSH",
64 "-D_GNU_SOURCE",
65 "-DSETUID_CAN_FAIL_WITH_EAGAIN",
Elliott Hughes55d30842023-05-10 15:53:25 -070066 "-DHAVE_STRING_POOLING=2",
Jiyong Park67090532017-09-26 09:07:54 +090067 "-DHAVE_ATTRIBUTE_BOUNDED=1",
68 "-DHAVE_ATTRIBUTE_FORMAT=1",
69 "-DHAVE_ATTRIBUTE_NORETURN=1",
70 "-DHAVE_ATTRIBUTE_PURE=1",
71 "-DHAVE_ATTRIBUTE_UNUSED=1",
72 "-DHAVE_ATTRIBUTE_USED=1",
73 "-DHAVE_SYS_TIME_H=1",
74 "-DHAVE_TIME_H=1",
75 "-DHAVE_BOTH_TIME_H=1",
76 "-DHAVE_SYS_BSDTYPES_H=0",
77 "-DHAVE_SYS_FILE_H=1",
78 "-DHAVE_SYS_MKDEV_H=0",
79 "-DHAVE_SYS_MMAN_H=1",
80 "-DHAVE_SYS_PARAM_H=1",
81 "-DHAVE_SYS_RESOURCE_H=1",
82 "-DHAVE_SYS_SELECT_H=1",
83 "-DHAVE_SYS_SYSMACROS_H=1",
84 "-DHAVE_BSTRING_H=0",
85 "-DHAVE_GRP_H=1",
86 "-DHAVE_IO_H=0",
87 "-DHAVE_LIBGEN_H=1",
88 "-DHAVE_LIBUTIL_H=0",
89 "-DHAVE_PATHS_H=1",
90 "-DHAVE_STDINT_H=1",
91 "-DHAVE_STRINGS_H=1",
92 "-DHAVE_TERMIOS_H=1",
93 "-DHAVE_ULIMIT_H=0",
94 "-DHAVE_VALUES_H=0",
95 "-DHAVE_CAN_INTTYPES=1",
96 "-DHAVE_CAN_UCBINTS=1",
97 "-DHAVE_CAN_INT8TYPE=1",
98 "-DHAVE_CAN_UCBINT8=1",
Jiyong Park67090532017-09-26 09:07:54 +090099 "-DHAVE_SIG_T=1",
100 "-DHAVE_SYS_ERRLIST=0",
101 "-DHAVE_SYS_SIGNAME=1",
102 "-DHAVE_SYS_SIGLIST=1",
103 "-DHAVE_FLOCK=1",
104 "-DHAVE_LOCK_FCNTL=1",
Elliott Hughes55d30842023-05-10 15:53:25 -0700105 "-DHAVE_RLIMIT=1",
106 "-DHAVE_RLIM_T=1",
Jiyong Park67090532017-09-26 09:07:54 +0900107 "-DHAVE_GETRUSAGE=1",
108 "-DHAVE_GETSID=1",
109 "-DHAVE_GETTIMEOFDAY=1",
110 "-DHAVE_KILLPG=1",
111 "-DHAVE_MEMMOVE=1",
112 "-DHAVE_MKNOD=0",
113 "-DHAVE_MMAP=1",
114 "-DHAVE_FTRUNCATE=1",
115 "-DHAVE_NICE=1",
116 "-DHAVE_REVOKE=0",
117 "-DHAVE_SETLOCALE_CTYPE=1",
118 "-DHAVE_LANGINFO_CODESET=1",
119 "-DHAVE_SELECT=1",
120 "-DHAVE_SETRESUGID=1",
121 "-DHAVE_SETGROUPS=1",
122 "-DHAVE_STRERROR=1",
Elliott Hughes55d30842023-05-10 15:53:25 -0700123 "-DHAVE_STRSIGNAL=1",
Jiyong Park67090532017-09-26 09:07:54 +0900124 "-DHAVE_STRLCPY=1",
125 "-DHAVE_FLOCK_DECL=1",
126 "-DHAVE_REVOKE_DECL=1",
127 "-DHAVE_SYS_ERRLIST_DECL=0",
128 "-DHAVE_SYS_SIGLIST_DECL=1",
Elliott Hughes55d30842023-05-10 15:53:25 -0700129 "-DHAVE_ST_MTIM=1",
130 "-DHAVE_ST_MTIMENSEC=0",
Jiyong Park67090532017-09-26 09:07:54 +0900131 "-DHAVE_PERSISTENT_HISTORY=0",
Sadaf Ebrahimib02792c2023-03-31 18:17:33 +0000132 "-DMKSH_BUILD_R=593",
Jiyong Park67090532017-09-26 09:07:54 +0900133
134 // Additional flags
135 "-DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\"",
136 "-DMKSHRC_PATH=\"/system/etc/mkshrc\"",
137 "-DMKSH_DEFAULT_EXECSHELL=\"/system/bin/sh\"",
138 "-DMKSH_DEFAULT_TMPDIR=\"/data/local\"",
139 ],
Elliott Hughes98df42c2019-09-23 13:28:11 -0700140
141 stl: "none",
142 system_shared_libs: ["libc"],
Jiyong Park67090532017-09-26 09:07:54 +0900143}
144
145cc_binary {
146 name: "sh",
147 defaults: ["sh-defaults"],
Yifan Hongc6ad6852020-10-21 18:49:32 -0700148 vendor_ramdisk_available: true,
Jiyong Park67090532017-09-26 09:07:54 +0900149}
150
151cc_binary {
Jihoon Kang8032c7c2024-12-06 02:00:40 +0000152 name: "sh.recovery",
153 defaults: ["sh-defaults"],
154 recovery: true,
155 stem: "sh",
156}
157
158cc_binary {
Jiyong Park67090532017-09-26 09:07:54 +0900159 name: "sh_vendor",
160 defaults: ["sh-defaults"],
161 stem: "sh",
162 vendor: true,
Sandeep Patilfa7594e2017-11-09 18:01:21 -0800163 cflags: [
164 // Additional flags for vendor variant
165 "-UMKSH_DEFAULT_PROFILEDIR",
166 "-UMKSHRC_PATH",
167 "-UMKSH_DEFAULT_EXECSHELL",
168 "-DMKSH_DEFAULT_PROFILEDIR=\"/vendor/etc\"",
169 "-DMKSHRC_PATH=\"/vendor/etc/mkshrc\"",
170 "-DMKSH_DEFAULT_EXECSHELL=\"/vendor/bin/sh\"",
171 "-DMKSH_DEFPATH_OVERRIDE=\"/vendor/bin:/vendor/xbin\"",
172 ],
Jiyong Park67090532017-09-26 09:07:54 +0900173}
Sasha Smundak0ca9e252019-01-14 16:24:22 -0800174
175// /system/etc/mkshrc
176prebuilt_etc {
177 name: "mkshrc",
178 src: "mkshrc",
179}
180
181// /vendor/etc/mkshrc
182prebuilt_etc {
183 name: "mkshrc_vendor",
184 src: "mkshrc_vendor",
185 filename: "mkshrc",
186 soc_specific: true,
187}