1// Copyright © 2010, 2013 2// Thorsten Glaser <[email protected]> 3// This file is provided under the same terms as mksh. 4 5package { 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 23cc_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/ulimit.c", 42 "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", 54 "-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 62 // ...and the defines from src/Rebuild.sh after running src/Build.sh. 63 "-DMKSH_BUILDSH", 64 "-D_GNU_SOURCE", 65 "-DSETUID_CAN_FAIL_WITH_EAGAIN", 66 "-DHAVE_STRING_POOLING=2", 67 "-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", 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_RLIMIT=1", 106 "-DHAVE_RLIM_T=1", 107 "-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", 123 "-DHAVE_STRSIGNAL=1", 124 "-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", 129 "-DHAVE_ST_MTIM=1", 130 "-DHAVE_ST_MTIMENSEC=0", 131 "-DHAVE_PERSISTENT_HISTORY=0", 132 "-DMKSH_BUILD_R=593", 133 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 ], 140 141 stl: "none", 142 system_shared_libs: ["libc"], 143} 144 145cc_binary { 146 name: "sh", 147 defaults: ["sh-defaults"], 148 vendor_ramdisk_available: true, 149} 150 151cc_binary { 152 name: "sh.recovery", 153 defaults: ["sh-defaults"], 154 recovery: true, 155 stem: "sh", 156} 157 158cc_binary { 159 name: "sh_vendor", 160 defaults: ["sh-defaults"], 161 stem: "sh", 162 vendor: true, 163 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 ], 173} 174 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} 188