blob: b7edef2fc6fe46ff7135b0e8c24590d5521fb5ea [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
5cc_defaults {
6 name: "sh-defaults",
7
8 srcs: [
9 "src/lalloc.c",
10 "src/edit.c",
11 "src/eval.c",
12 "src/exec.c",
13 "src/expr.c",
14 "src/funcs.c",
15 "src/histrap.c",
16 "src/jobs.c",
17 "src/lex.c",
18 "src/main.c",
19 "src/misc.c",
20 "src/shf.c",
21 "src/syn.c",
22 "src/tree.c",
23 "src/var.c",
24 ],
25
26 local_include_dirs: ["src"],
27
28 cflags: [
29 // Compiler flags...
30 "-Wall",
31 "-Werror",
32 "-Wno-deprecated-declarations",
33 "-fno-asynchronous-unwind-tables",
34 "-fno-strict-aliasing",
Jiyong Park67090532017-09-26 09:07:54 +090035 "-fwrapv",
36
37 // ...various options we choose
38 "-DDEBUG_LEAKS",
39 "-DMKSH_ASSUME_UTF8",
40 "-DMKSH_DONT_EMIT_IDSTRING",
41 "-DKSH_VERSIONNAME_VENDOR_EXT=\" Android\"",
42
43 // ...and the defines from Build.sh.
44 "-DMKSH_BUILDSH",
45 "-D_GNU_SOURCE",
46 "-DSETUID_CAN_FAIL_WITH_EAGAIN",
47 "-DHAVE_STRING_POOLING=1",
48 "-DHAVE_ATTRIBUTE_BOUNDED=1",
49 "-DHAVE_ATTRIBUTE_FORMAT=1",
50 "-DHAVE_ATTRIBUTE_NORETURN=1",
51 "-DHAVE_ATTRIBUTE_PURE=1",
52 "-DHAVE_ATTRIBUTE_UNUSED=1",
53 "-DHAVE_ATTRIBUTE_USED=1",
54 "-DHAVE_SYS_TIME_H=1",
55 "-DHAVE_TIME_H=1",
56 "-DHAVE_BOTH_TIME_H=1",
57 "-DHAVE_SYS_BSDTYPES_H=0",
58 "-DHAVE_SYS_FILE_H=1",
59 "-DHAVE_SYS_MKDEV_H=0",
60 "-DHAVE_SYS_MMAN_H=1",
61 "-DHAVE_SYS_PARAM_H=1",
62 "-DHAVE_SYS_RESOURCE_H=1",
63 "-DHAVE_SYS_SELECT_H=1",
64 "-DHAVE_SYS_SYSMACROS_H=1",
65 "-DHAVE_BSTRING_H=0",
66 "-DHAVE_GRP_H=1",
67 "-DHAVE_IO_H=0",
68 "-DHAVE_LIBGEN_H=1",
69 "-DHAVE_LIBUTIL_H=0",
70 "-DHAVE_PATHS_H=1",
71 "-DHAVE_STDINT_H=1",
72 "-DHAVE_STRINGS_H=1",
73 "-DHAVE_TERMIOS_H=1",
74 "-DHAVE_ULIMIT_H=0",
75 "-DHAVE_VALUES_H=0",
76 "-DHAVE_CAN_INTTYPES=1",
77 "-DHAVE_CAN_UCBINTS=1",
78 "-DHAVE_CAN_INT8TYPE=1",
79 "-DHAVE_CAN_UCBINT8=1",
80 "-DHAVE_RLIM_T=1",
81 "-DHAVE_SIG_T=1",
82 "-DHAVE_SYS_ERRLIST=0",
83 "-DHAVE_SYS_SIGNAME=1",
84 "-DHAVE_SYS_SIGLIST=1",
85 "-DHAVE_FLOCK=1",
86 "-DHAVE_LOCK_FCNTL=1",
87 "-DHAVE_GETRUSAGE=1",
88 "-DHAVE_GETSID=1",
89 "-DHAVE_GETTIMEOFDAY=1",
90 "-DHAVE_KILLPG=1",
91 "-DHAVE_MEMMOVE=1",
92 "-DHAVE_MKNOD=0",
93 "-DHAVE_MMAP=1",
94 "-DHAVE_FTRUNCATE=1",
95 "-DHAVE_NICE=1",
96 "-DHAVE_REVOKE=0",
97 "-DHAVE_SETLOCALE_CTYPE=1",
98 "-DHAVE_LANGINFO_CODESET=1",
99 "-DHAVE_SELECT=1",
100 "-DHAVE_SETRESUGID=1",
101 "-DHAVE_SETGROUPS=1",
102 "-DHAVE_STRERROR=1",
103 "-DHAVE_STRSIGNAL=0",
104 "-DHAVE_STRLCPY=1",
105 "-DHAVE_FLOCK_DECL=1",
106 "-DHAVE_REVOKE_DECL=1",
107 "-DHAVE_SYS_ERRLIST_DECL=0",
108 "-DHAVE_SYS_SIGLIST_DECL=1",
109 "-DHAVE_PERSISTENT_HISTORY=0",
Elliott Hughes47086262019-03-26 12:34:31 -0700110 "-DMKSH_BUILD_R=571",
Jiyong Park67090532017-09-26 09:07:54 +0900111
112 // Additional flags
113 "-DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\"",
114 "-DMKSHRC_PATH=\"/system/etc/mkshrc\"",
115 "-DMKSH_DEFAULT_EXECSHELL=\"/system/bin/sh\"",
116 "-DMKSH_DEFAULT_TMPDIR=\"/data/local\"",
117 ],
Jiyong Park67090532017-09-26 09:07:54 +0900118}
119
120cc_binary {
121 name: "sh",
122 defaults: ["sh-defaults"],
Jiyong Park85b4d482018-06-01 12:15:25 +0900123 recovery_available: true,
Jiyong Park67090532017-09-26 09:07:54 +0900124}
125
126cc_binary {
127 name: "sh_vendor",
128 defaults: ["sh-defaults"],
129 stem: "sh",
130 vendor: true,
Sandeep Patilfa7594e2017-11-09 18:01:21 -0800131 cflags: [
132 // Additional flags for vendor variant
133 "-UMKSH_DEFAULT_PROFILEDIR",
134 "-UMKSHRC_PATH",
135 "-UMKSH_DEFAULT_EXECSHELL",
136 "-DMKSH_DEFAULT_PROFILEDIR=\"/vendor/etc\"",
137 "-DMKSHRC_PATH=\"/vendor/etc/mkshrc\"",
138 "-DMKSH_DEFAULT_EXECSHELL=\"/vendor/bin/sh\"",
139 "-DMKSH_DEFPATH_OVERRIDE=\"/vendor/bin:/vendor/xbin\"",
140 ],
Jiyong Park67090532017-09-26 09:07:54 +0900141}
Sasha Smundak0ca9e252019-01-14 16:24:22 -0800142
143// /system/etc/mkshrc
144prebuilt_etc {
145 name: "mkshrc",
146 src: "mkshrc",
147}
148
149// /vendor/etc/mkshrc
150prebuilt_etc {
151 name: "mkshrc_vendor",
152 src: "mkshrc_vendor",
153 filename: "mkshrc",
154 soc_specific: true,
155}