xref: /aosp_15_r20/external/mksh/Android.bp (revision 7c356e860f31eadd15fd599fcfdb9fd21f16a9d4)
1*7c356e86SAndroid Build Coastguard Worker// Copyright © 2010, 2013
2*7c356e86SAndroid Build Coastguard Worker//    Thorsten Glaser <[email protected]>
3*7c356e86SAndroid Build Coastguard Worker// This file is provided under the same terms as mksh.
4*7c356e86SAndroid Build Coastguard Worker
5*7c356e86SAndroid Build Coastguard Workerpackage {
6*7c356e86SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_mksh_license"],
7*7c356e86SAndroid Build Coastguard Worker}
8*7c356e86SAndroid Build Coastguard Worker
9*7c356e86SAndroid Build Coastguard Workerlicense {
10*7c356e86SAndroid Build Coastguard Worker    name: "external_mksh_license",
11*7c356e86SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
12*7c356e86SAndroid Build Coastguard Worker    license_kinds: [
13*7c356e86SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
14*7c356e86SAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
15*7c356e86SAndroid Build Coastguard Worker        "SPDX-license-identifier-Unicode-DFS",
16*7c356e86SAndroid Build Coastguard Worker        "legacy_notice",
17*7c356e86SAndroid Build Coastguard Worker    ],
18*7c356e86SAndroid Build Coastguard Worker    license_text: [
19*7c356e86SAndroid Build Coastguard Worker        "NOTICE",
20*7c356e86SAndroid Build Coastguard Worker    ],
21*7c356e86SAndroid Build Coastguard Worker}
22*7c356e86SAndroid Build Coastguard Worker
23*7c356e86SAndroid Build Coastguard Workercc_defaults {
24*7c356e86SAndroid Build Coastguard Worker    name: "sh-defaults",
25*7c356e86SAndroid Build Coastguard Worker
26*7c356e86SAndroid Build Coastguard Worker    srcs: [
27*7c356e86SAndroid Build Coastguard Worker        "src/lalloc.c",
28*7c356e86SAndroid Build Coastguard Worker        "src/edit.c",
29*7c356e86SAndroid Build Coastguard Worker        "src/eval.c",
30*7c356e86SAndroid Build Coastguard Worker        "src/exec.c",
31*7c356e86SAndroid Build Coastguard Worker        "src/expr.c",
32*7c356e86SAndroid Build Coastguard Worker        "src/funcs.c",
33*7c356e86SAndroid Build Coastguard Worker        "src/histrap.c",
34*7c356e86SAndroid Build Coastguard Worker        "src/jobs.c",
35*7c356e86SAndroid Build Coastguard Worker        "src/lex.c",
36*7c356e86SAndroid Build Coastguard Worker        "src/main.c",
37*7c356e86SAndroid Build Coastguard Worker        "src/misc.c",
38*7c356e86SAndroid Build Coastguard Worker        "src/shf.c",
39*7c356e86SAndroid Build Coastguard Worker        "src/syn.c",
40*7c356e86SAndroid Build Coastguard Worker        "src/tree.c",
41*7c356e86SAndroid Build Coastguard Worker        "src/ulimit.c",
42*7c356e86SAndroid Build Coastguard Worker        "src/var.c",
43*7c356e86SAndroid Build Coastguard Worker    ],
44*7c356e86SAndroid Build Coastguard Worker
45*7c356e86SAndroid Build Coastguard Worker    local_include_dirs: ["src"],
46*7c356e86SAndroid Build Coastguard Worker
47*7c356e86SAndroid Build Coastguard Worker    cflags: [
48*7c356e86SAndroid Build Coastguard Worker        // Compiler flags...
49*7c356e86SAndroid Build Coastguard Worker        "-Wall",
50*7c356e86SAndroid Build Coastguard Worker        "-Werror",
51*7c356e86SAndroid Build Coastguard Worker        "-Wno-deprecated-declarations",
52*7c356e86SAndroid Build Coastguard Worker        "-fno-asynchronous-unwind-tables",
53*7c356e86SAndroid Build Coastguard Worker        "-fno-strict-aliasing",
54*7c356e86SAndroid Build Coastguard Worker        "-fwrapv",
55*7c356e86SAndroid Build Coastguard Worker
56*7c356e86SAndroid Build Coastguard Worker        // ...various options we choose
57*7c356e86SAndroid Build Coastguard Worker        "-DDEBUG_LEAKS",
58*7c356e86SAndroid Build Coastguard Worker        "-DMKSH_ASSUME_UTF8",
59*7c356e86SAndroid Build Coastguard Worker        "-DMKSH_DONT_EMIT_IDSTRING",
60*7c356e86SAndroid Build Coastguard Worker        "-DKSH_VERSIONNAME_VENDOR_EXT=\" Android\"",
61*7c356e86SAndroid Build Coastguard Worker
62*7c356e86SAndroid Build Coastguard Worker        // ...and the defines from src/Rebuild.sh after running src/Build.sh.
63*7c356e86SAndroid Build Coastguard Worker        "-DMKSH_BUILDSH",
64*7c356e86SAndroid Build Coastguard Worker        "-D_GNU_SOURCE",
65*7c356e86SAndroid Build Coastguard Worker        "-DSETUID_CAN_FAIL_WITH_EAGAIN",
66*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_STRING_POOLING=2",
67*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_ATTRIBUTE_BOUNDED=1",
68*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_ATTRIBUTE_FORMAT=1",
69*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_ATTRIBUTE_NORETURN=1",
70*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_ATTRIBUTE_PURE=1",
71*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_ATTRIBUTE_UNUSED=1",
72*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_ATTRIBUTE_USED=1",
73*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_TIME_H=1",
74*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_TIME_H=1",
75*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_BOTH_TIME_H=1",
76*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_BSDTYPES_H=0",
77*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_FILE_H=1",
78*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_MKDEV_H=0",
79*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_MMAN_H=1",
80*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_PARAM_H=1",
81*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_RESOURCE_H=1",
82*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_SELECT_H=1",
83*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_SYSMACROS_H=1",
84*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_BSTRING_H=0",
85*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_GRP_H=1",
86*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_IO_H=0",
87*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_LIBGEN_H=1",
88*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_LIBUTIL_H=0",
89*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_PATHS_H=1",
90*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_STDINT_H=1",
91*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_STRINGS_H=1",
92*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_TERMIOS_H=1",
93*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_ULIMIT_H=0",
94*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_VALUES_H=0",
95*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_CAN_INTTYPES=1",
96*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_CAN_UCBINTS=1",
97*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_CAN_INT8TYPE=1",
98*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_CAN_UCBINT8=1",
99*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SIG_T=1",
100*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_ERRLIST=0",
101*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_SIGNAME=1",
102*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_SIGLIST=1",
103*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_FLOCK=1",
104*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_LOCK_FCNTL=1",
105*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_RLIMIT=1",
106*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_RLIM_T=1",
107*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_GETRUSAGE=1",
108*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_GETSID=1",
109*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_GETTIMEOFDAY=1",
110*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_KILLPG=1",
111*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_MEMMOVE=1",
112*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_MKNOD=0",
113*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_MMAP=1",
114*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_FTRUNCATE=1",
115*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_NICE=1",
116*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_REVOKE=0",
117*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SETLOCALE_CTYPE=1",
118*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_LANGINFO_CODESET=1",
119*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SELECT=1",
120*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SETRESUGID=1",
121*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SETGROUPS=1",
122*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_STRERROR=1",
123*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_STRSIGNAL=1",
124*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_STRLCPY=1",
125*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_FLOCK_DECL=1",
126*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_REVOKE_DECL=1",
127*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_ERRLIST_DECL=0",
128*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_SYS_SIGLIST_DECL=1",
129*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_ST_MTIM=1",
130*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_ST_MTIMENSEC=0",
131*7c356e86SAndroid Build Coastguard Worker        "-DHAVE_PERSISTENT_HISTORY=0",
132*7c356e86SAndroid Build Coastguard Worker        "-DMKSH_BUILD_R=593",
133*7c356e86SAndroid Build Coastguard Worker
134*7c356e86SAndroid Build Coastguard Worker        // Additional flags
135*7c356e86SAndroid Build Coastguard Worker        "-DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\"",
136*7c356e86SAndroid Build Coastguard Worker        "-DMKSHRC_PATH=\"/system/etc/mkshrc\"",
137*7c356e86SAndroid Build Coastguard Worker        "-DMKSH_DEFAULT_EXECSHELL=\"/system/bin/sh\"",
138*7c356e86SAndroid Build Coastguard Worker        "-DMKSH_DEFAULT_TMPDIR=\"/data/local\"",
139*7c356e86SAndroid Build Coastguard Worker    ],
140*7c356e86SAndroid Build Coastguard Worker
141*7c356e86SAndroid Build Coastguard Worker    stl: "none",
142*7c356e86SAndroid Build Coastguard Worker    system_shared_libs: ["libc"],
143*7c356e86SAndroid Build Coastguard Worker}
144*7c356e86SAndroid Build Coastguard Worker
145*7c356e86SAndroid Build Coastguard Workercc_binary {
146*7c356e86SAndroid Build Coastguard Worker    name: "sh",
147*7c356e86SAndroid Build Coastguard Worker    defaults: ["sh-defaults"],
148*7c356e86SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
149*7c356e86SAndroid Build Coastguard Worker}
150*7c356e86SAndroid Build Coastguard Worker
151*7c356e86SAndroid Build Coastguard Workercc_binary {
152*7c356e86SAndroid Build Coastguard Worker    name: "sh.recovery",
153*7c356e86SAndroid Build Coastguard Worker    defaults: ["sh-defaults"],
154*7c356e86SAndroid Build Coastguard Worker    recovery: true,
155*7c356e86SAndroid Build Coastguard Worker    stem: "sh",
156*7c356e86SAndroid Build Coastguard Worker}
157*7c356e86SAndroid Build Coastguard Worker
158*7c356e86SAndroid Build Coastguard Workercc_binary {
159*7c356e86SAndroid Build Coastguard Worker    name: "sh_vendor",
160*7c356e86SAndroid Build Coastguard Worker    defaults: ["sh-defaults"],
161*7c356e86SAndroid Build Coastguard Worker    stem: "sh",
162*7c356e86SAndroid Build Coastguard Worker    vendor: true,
163*7c356e86SAndroid Build Coastguard Worker    cflags: [
164*7c356e86SAndroid Build Coastguard Worker        // Additional flags for vendor variant
165*7c356e86SAndroid Build Coastguard Worker        "-UMKSH_DEFAULT_PROFILEDIR",
166*7c356e86SAndroid Build Coastguard Worker        "-UMKSHRC_PATH",
167*7c356e86SAndroid Build Coastguard Worker        "-UMKSH_DEFAULT_EXECSHELL",
168*7c356e86SAndroid Build Coastguard Worker        "-DMKSH_DEFAULT_PROFILEDIR=\"/vendor/etc\"",
169*7c356e86SAndroid Build Coastguard Worker        "-DMKSHRC_PATH=\"/vendor/etc/mkshrc\"",
170*7c356e86SAndroid Build Coastguard Worker        "-DMKSH_DEFAULT_EXECSHELL=\"/vendor/bin/sh\"",
171*7c356e86SAndroid Build Coastguard Worker        "-DMKSH_DEFPATH_OVERRIDE=\"/vendor/bin:/vendor/xbin\"",
172*7c356e86SAndroid Build Coastguard Worker    ],
173*7c356e86SAndroid Build Coastguard Worker}
174*7c356e86SAndroid Build Coastguard Worker
175*7c356e86SAndroid Build Coastguard Worker// /system/etc/mkshrc
176*7c356e86SAndroid Build Coastguard Workerprebuilt_etc {
177*7c356e86SAndroid Build Coastguard Worker    name: "mkshrc",
178*7c356e86SAndroid Build Coastguard Worker    src: "mkshrc",
179*7c356e86SAndroid Build Coastguard Worker}
180*7c356e86SAndroid Build Coastguard Worker
181*7c356e86SAndroid Build Coastguard Worker// /vendor/etc/mkshrc
182*7c356e86SAndroid Build Coastguard Workerprebuilt_etc {
183*7c356e86SAndroid Build Coastguard Worker    name: "mkshrc_vendor",
184*7c356e86SAndroid Build Coastguard Worker    src: "mkshrc_vendor",
185*7c356e86SAndroid Build Coastguard Worker    filename: "mkshrc",
186*7c356e86SAndroid Build Coastguard Worker    soc_specific: true,
187*7c356e86SAndroid Build Coastguard Worker}
188