blob: dcb534e34fd335727a9a868296859645f9fab2f6 [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",
41 "src/var.c",
42 ],
43
44 local_include_dirs: ["src"],
45
46 cflags: [
47 // Compiler flags...
48 "-Wall",
49 "-Werror",
50 "-Wno-deprecated-declarations",
51 "-fno-asynchronous-unwind-tables",
52 "-fno-strict-aliasing",
Jiyong Park67090532017-09-26 09:07:54 +090053 "-fwrapv",
54
55 // ...various options we choose
56 "-DDEBUG_LEAKS",
57 "-DMKSH_ASSUME_UTF8",
58 "-DMKSH_DONT_EMIT_IDSTRING",
59 "-DKSH_VERSIONNAME_VENDOR_EXT=\" Android\"",
60
61 // ...and the defines from Build.sh.
62 "-DMKSH_BUILDSH",
63 "-D_GNU_SOURCE",
64 "-DSETUID_CAN_FAIL_WITH_EAGAIN",
65 "-DHAVE_STRING_POOLING=1",
66 "-DHAVE_ATTRIBUTE_BOUNDED=1",
67 "-DHAVE_ATTRIBUTE_FORMAT=1",
68 "-DHAVE_ATTRIBUTE_NORETURN=1",
69 "-DHAVE_ATTRIBUTE_PURE=1",
70 "-DHAVE_ATTRIBUTE_UNUSED=1",
71 "-DHAVE_ATTRIBUTE_USED=1",
72 "-DHAVE_SYS_TIME_H=1",
73 "-DHAVE_TIME_H=1",
74 "-DHAVE_BOTH_TIME_H=1",
75 "-DHAVE_SYS_BSDTYPES_H=0",
76 "-DHAVE_SYS_FILE_H=1",
77 "-DHAVE_SYS_MKDEV_H=0",
78 "-DHAVE_SYS_MMAN_H=1",
79 "-DHAVE_SYS_PARAM_H=1",
80 "-DHAVE_SYS_RESOURCE_H=1",
81 "-DHAVE_SYS_SELECT_H=1",
82 "-DHAVE_SYS_SYSMACROS_H=1",
83 "-DHAVE_BSTRING_H=0",
84 "-DHAVE_GRP_H=1",
85 "-DHAVE_IO_H=0",
86 "-DHAVE_LIBGEN_H=1",
87 "-DHAVE_LIBUTIL_H=0",
88 "-DHAVE_PATHS_H=1",
89 "-DHAVE_STDINT_H=1",
90 "-DHAVE_STRINGS_H=1",
91 "-DHAVE_TERMIOS_H=1",
92 "-DHAVE_ULIMIT_H=0",
93 "-DHAVE_VALUES_H=0",
94 "-DHAVE_CAN_INTTYPES=1",
95 "-DHAVE_CAN_UCBINTS=1",
96 "-DHAVE_CAN_INT8TYPE=1",
97 "-DHAVE_CAN_UCBINT8=1",
98 "-DHAVE_RLIM_T=1",
99 "-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",
105 "-DHAVE_GETRUSAGE=1",
106 "-DHAVE_GETSID=1",
107 "-DHAVE_GETTIMEOFDAY=1",
108 "-DHAVE_KILLPG=1",
109 "-DHAVE_MEMMOVE=1",
110 "-DHAVE_MKNOD=0",
111 "-DHAVE_MMAP=1",
112 "-DHAVE_FTRUNCATE=1",
113 "-DHAVE_NICE=1",
114 "-DHAVE_REVOKE=0",
115 "-DHAVE_SETLOCALE_CTYPE=1",
116 "-DHAVE_LANGINFO_CODESET=1",
117 "-DHAVE_SELECT=1",
118 "-DHAVE_SETRESUGID=1",
119 "-DHAVE_SETGROUPS=1",
120 "-DHAVE_STRERROR=1",
121 "-DHAVE_STRSIGNAL=0",
122 "-DHAVE_STRLCPY=1",
123 "-DHAVE_FLOCK_DECL=1",
124 "-DHAVE_REVOKE_DECL=1",
125 "-DHAVE_SYS_ERRLIST_DECL=0",
126 "-DHAVE_SYS_SIGLIST_DECL=1",
127 "-DHAVE_PERSISTENT_HISTORY=0",
Elliott Hughesa5d35a62020-05-20 17:17:13 -0700128 "-DMKSH_BUILD_R=592",
Jiyong Park67090532017-09-26 09:07:54 +0900129
130 // Additional flags
131 "-DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\"",
132 "-DMKSHRC_PATH=\"/system/etc/mkshrc\"",
133 "-DMKSH_DEFAULT_EXECSHELL=\"/system/bin/sh\"",
134 "-DMKSH_DEFAULT_TMPDIR=\"/data/local\"",
135 ],
Elliott Hughes98df42c2019-09-23 13:28:11 -0700136
137 stl: "none",
138 system_shared_libs: ["libc"],
Jiyong Park67090532017-09-26 09:07:54 +0900139}
140
141cc_binary {
142 name: "sh",
143 defaults: ["sh-defaults"],
Jiyong Park85b4d482018-06-01 12:15:25 +0900144 recovery_available: true,
Yifan Hongc6ad6852020-10-21 18:49:32 -0700145 vendor_ramdisk_available: true,
Jiyong Park67090532017-09-26 09:07:54 +0900146}
147
148cc_binary {
149 name: "sh_vendor",
150 defaults: ["sh-defaults"],
151 stem: "sh",
152 vendor: true,
Sandeep Patilfa7594e2017-11-09 18:01:21 -0800153 cflags: [
154 // Additional flags for vendor variant
155 "-UMKSH_DEFAULT_PROFILEDIR",
156 "-UMKSHRC_PATH",
157 "-UMKSH_DEFAULT_EXECSHELL",
158 "-DMKSH_DEFAULT_PROFILEDIR=\"/vendor/etc\"",
159 "-DMKSHRC_PATH=\"/vendor/etc/mkshrc\"",
160 "-DMKSH_DEFAULT_EXECSHELL=\"/vendor/bin/sh\"",
161 "-DMKSH_DEFPATH_OVERRIDE=\"/vendor/bin:/vendor/xbin\"",
162 ],
Jiyong Park67090532017-09-26 09:07:54 +0900163}
Sasha Smundak0ca9e252019-01-14 16:24:22 -0800164
165// /system/etc/mkshrc
166prebuilt_etc {
167 name: "mkshrc",
168 src: "mkshrc",
169}
170
171// /vendor/etc/mkshrc
172prebuilt_etc {
173 name: "mkshrc_vendor",
174 src: "mkshrc_vendor",
175 filename: "mkshrc",
176 soc_specific: true,
177}