LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
# mksh source files
-LOCAL_SRC_FILES := \
+MKSH_SRC_FILES := \
src/lalloc.c src/edit.c src/eval.c src/exec.c \
src/expr.c src/funcs.c src/histrap.c src/jobs.c \
src/lex.c src/main.c src/misc.c src/shf.c \
src/syn.c src/tree.c src/var.c
-LOCAL_SYSTEM_SHARED_LIBRARIES := libc
-
-LOCAL_C_INCLUDES := $(LOCAL_PATH)/src
-
-# Additional flags first...
-LOCAL_CFLAGS += \
- -DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\" \
- -DMKSHRC_PATH=\"/system/etc/mkshrc\" \
- -DMKSH_DEFAULT_EXECSHELL=\"/system/bin/sh\" \
- -DMKSH_DEFAULT_TMPDIR=\"/data/local\" \
+MKSH_INCLUDES := $(LOCAL_PATH)/src
-# ...then from Makefrag.inc: CFLAGS...
-LOCAL_CFLAGS += \
+MKSH_CFLAGS += \
-Wno-deprecated-declarations \
-fno-asynchronous-unwind-tables \
-fno-strict-aliasing \
-fstack-protector -fwrapv \
# ...and CPPFLAGS.
-LOCAL_CFLAGS += \
+MKSH_CFLAGS += \
-DDEBUG_LEAKS -DMKSH_ASSUME_UTF8 \
-DMKSH_DONT_EMIT_IDSTRING \
-DMKSH_BUILDSH \
-DHAVE_SYS_ERRLIST_DECL=0 -DHAVE_SYS_SIGLIST_DECL=1 \
-DHAVE_PERSISTENT_HISTORY=0 -DMKSH_BUILD_R=551
+LOCAL_SRC_FILES := $(MKSH_SRC_FILES)
+
+LOCAL_SYSTEM_SHARED_LIBRARIES := libc
+
+LOCAL_C_INCLUDES := $(MKSH_INCLUDES)
+
+# Additional flags first...
+LOCAL_CFLAGS += \
+ -DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\" \
+ -DMKSHRC_PATH=\"/system/etc/mkshrc\" \
+ -DMKSH_DEFAULT_EXECSHELL=\"/system/bin/sh\" \
+ -DMKSH_DEFAULT_TMPDIR=\"/data/local\" \
+
+LOCAL_CFLAGS += $(MKSH_CFLAGS)
+
include $(BUILD_EXECUTABLE)
+
+ifeq ($(PRODUCT_FULL_TREBLE),true)
+# /vendor/etc/mkshrc
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := mkshrc_vendor
+LOCAL_MODULE_STEM := mkshrc
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
+LOCAL_SRC_FILES := $(LOCAL_MODULE)
+include $(BUILD_PREBUILT)
+
+# /vendor/bin/sh
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := sh_vendor
+LOCAL_MODULE_STEM := sh
+LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
+
+# mksh source files
+LOCAL_SRC_FILES := $(MKSH_SRC_FILES)
+
+LOCAL_STATIC_LIBRARIES := libc
+
+LOCAL_C_INCLUDES := $(MKSH_INCLUDES)
+
+# Additional flags first...
+LOCAL_CFLAGS += \
+ -DMKSH_DEFAULT_PROFILEDIR=\"/vendor/etc\" \
+ -DMKSHRC_PATH=\"/vendor/etc/mkshrc\" \
+ -DMKSH_DEFAULT_EXECSHELL=\"/vendor/bin/sh\" \
+ -DMKSH_DEFPATH_OVERRIDE=\"/vendor/bin:/vendor/xbin\" \
+
+LOCAL_CFLAGS += $(MKSH_CFLAGS)
+
+LOCAL_FORCE_STATIC_EXECUTABLE := true
+
+include $(BUILD_EXECUTABLE)
+endif
+
+MKSH_SRC_FILES:=
+MKSH_CFLAGS:=
+MKSH_INCLUDES:=
--- /dev/null
+# Copyright (c) 2010, 2012, 2013, 2014
+# Thorsten Glaser <tg@mirbsd.org>
+# This file is provided under the same terms as mksh.
+#-
+# Minimal /system/etc/mkshrc for Android
+#
+# Support: https://launchpad.net/mksh
+
+: ${HOSTNAME:=$(getprop ro.product.device)}
+: ${HOSTNAME:=android}
+export HOSTNAME
+
+if (( USER_ID )); then PS1='$'; else PS1='#'; fi
+PS4='[$EPOCHREALTIME] '; PS1='${|
+ local e=$?
+
+ (( e )) && REPLY+="$e|"
+
+ return $e
+}$HOSTNAME:${PWD:-?} '"$PS1 "