1 # Copyright 2010, 2013 2 # Thorsten Glaser <t.glaser (a] tarent.de> 3 # This file is provided under the same terms as mksh. 4 5 LOCAL_PATH := $(call my-dir) 6 7 8 # /system/etc/mkshrc 9 10 include $(CLEAR_VARS) 11 12 LOCAL_MODULE := mkshrc 13 LOCAL_MODULE_CLASS := ETC 14 LOCAL_MODULE_PATH := $(TARGET_OUT)/etc 15 LOCAL_SRC_FILES := $(LOCAL_MODULE) 16 include $(BUILD_PREBUILT) 17 18 19 # /system/bin/sh 20 21 include $(CLEAR_VARS) 22 23 LOCAL_MODULE := sh 24 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk 25 26 # mksh source files 27 MKSH_SRC_FILES := \ 28 src/lalloc.c src/edit.c src/eval.c src/exec.c \ 29 src/expr.c src/funcs.c src/histrap.c src/jobs.c \ 30 src/lex.c src/main.c src/misc.c src/shf.c \ 31 src/syn.c src/tree.c src/var.c 32 33 MKSH_INCLUDES := $(LOCAL_PATH)/src 34 35 MKSH_CFLAGS += \ 36 -Wno-deprecated-declarations \ 37 -fno-asynchronous-unwind-tables \ 38 -fno-strict-aliasing \ 39 -fstack-protector -fwrapv \ 40 41 # ...and CPPFLAGS. 42 MKSH_CFLAGS += \ 43 -DDEBUG_LEAKS -DMKSH_ASSUME_UTF8 \ 44 -DMKSH_DONT_EMIT_IDSTRING \ 45 -DMKSH_BUILDSH \ 46 -D_GNU_SOURCE -DSETUID_CAN_FAIL_WITH_EAGAIN \ 47 -DHAVE_ATTRIBUTE_BOUNDED=0 -DHAVE_ATTRIBUTE_FORMAT=1 \ 48 -DHAVE_ATTRIBUTE_NORETURN=1 \ 49 -DHAVE_ATTRIBUTE_PURE=1 \ 50 -DHAVE_ATTRIBUTE_UNUSED=1 \ 51 -DHAVE_ATTRIBUTE_USED=1 -DHAVE_SYS_TIME_H=1 -DHAVE_TIME_H=1 \ 52 -DHAVE_BOTH_TIME_H=1 -DHAVE_SYS_BSDTYPES_H=0 \ 53 -DHAVE_SYS_FILE_H=1 -DHAVE_SYS_MKDEV_H=0 -DHAVE_SYS_MMAN_H=1 \ 54 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_RESOURCE_H=1 \ 55 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SYSMACROS_H=1 \ 56 -DHAVE_BSTRING_H=0 -DHAVE_GRP_H=1 -DHAVE_IO_H=0 -DHAVE_LIBGEN_H=1 \ 57 -DHAVE_LIBUTIL_H=0 -DHAVE_PATHS_H=1 -DHAVE_STDINT_H=1 \ 58 -DHAVE_STRINGS_H=1 -DHAVE_TERMIOS_H=1 -DHAVE_ULIMIT_H=0 \ 59 -DHAVE_VALUES_H=0 -DHAVE_CAN_INTTYPES=1 -DHAVE_CAN_UCBINTS=1 \ 60 -DHAVE_CAN_INT8TYPE=1 -DHAVE_CAN_UCBINT8=1 -DHAVE_RLIM_T=1 \ 61 -DHAVE_SIG_T=1 \ 62 -DHAVE_STRING_POOLING=1 \ 63 -DHAVE_SYS_ERRLIST=0 -DHAVE_SYS_SIGNAME=1 \ 64 -DHAVE_SYS_SIGLIST=1 -DHAVE_FLOCK=1 -DHAVE_LOCK_FCNTL=1 \ 65 -DHAVE_GETRUSAGE=1 \ 66 -DHAVE_GETSID=1 \ 67 -DHAVE_GETTIMEOFDAY=1 \ 68 -DHAVE_ISSETUGID=0 \ 69 -DHAVE_KILLPG=1 \ 70 -DHAVE_MEMMOVE=1 -DHAVE_MKNOD=0 -DHAVE_MMAP=1 -DHAVE_NICE=1 \ 71 -DHAVE_REVOKE=0 -DHAVE_SETLOCALE_CTYPE=0 \ 72 -DHAVE_LANGINFO_CODESET=0 -DHAVE_SELECT=1 -DHAVE_SETRESUGID=1 \ 73 -DHAVE_SETGROUPS=1 -DHAVE_STRERROR=1 -DHAVE_STRSIGNAL=0 \ 74 -DHAVE_STRLCPY=1 -DHAVE_FLOCK_DECL=1 -DHAVE_REVOKE_DECL=1 \ 75 -DHAVE_SYS_ERRLIST_DECL=0 -DHAVE_SYS_SIGLIST_DECL=1 \ 76 -DHAVE_PERSISTENT_HISTORY=0 -DMKSH_BUILD_R=551 77 78 LOCAL_SRC_FILES := $(MKSH_SRC_FILES) 79 80 LOCAL_SYSTEM_SHARED_LIBRARIES := libc 81 82 LOCAL_C_INCLUDES := $(MKSH_INCLUDES) 83 84 # Additional flags first... 85 LOCAL_CFLAGS += \ 86 -DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\" \ 87 -DMKSHRC_PATH=\"/system/etc/mkshrc\" \ 88 -DMKSH_DEFAULT_EXECSHELL=\"/system/bin/sh\" \ 89 -DMKSH_DEFAULT_TMPDIR=\"/data/local\" \ 90 91 LOCAL_CFLAGS += $(MKSH_CFLAGS) 92 93 include $(BUILD_EXECUTABLE) 94 95 # /vendor/etc/mkshrc 96 include $(CLEAR_VARS) 97 98 LOCAL_MODULE := mkshrc_vendor 99 LOCAL_MODULE_STEM := mkshrc 100 LOCAL_MODULE_CLASS := ETC 101 LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC) 102 LOCAL_SRC_FILES := $(LOCAL_MODULE) 103 include $(BUILD_PREBUILT) 104 105 # /vendor/bin/sh 106 include $(CLEAR_VARS) 107 108 LOCAL_MODULE := sh_vendor 109 LOCAL_MODULE_STEM := sh 110 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk 111 LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) 112 113 # mksh source files 114 LOCAL_SRC_FILES := $(MKSH_SRC_FILES) 115 116 LOCAL_C_INCLUDES := $(MKSH_INCLUDES) 117 118 # Additional flags first... 119 LOCAL_CFLAGS += \ 120 -DMKSH_DEFAULT_PROFILEDIR=\"/vendor/etc\" \ 121 -DMKSHRC_PATH=\"/vendor/etc/mkshrc\" \ 122 -DMKSH_DEFAULT_EXECSHELL=\"/vendor/bin/sh\" \ 123 -DMKSH_DEFPATH_OVERRIDE=\"/vendor/bin:/vendor/xbin\" \ 124 125 LOCAL_CFLAGS += $(MKSH_CFLAGS) 126 127 include $(BUILD_EXECUTABLE) 128 129 MKSH_SRC_FILES:= 130 MKSH_CFLAGS:= 131 MKSH_INCLUDES:= 132