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