LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
alias.c \
arith.c \
arith_lex.c \
builtins.c \
cd.c \
error.c \
eval.c \
exec.c \
expand.c \
input.c \
jobs.c \
main.c \
memalloc.c \
miscbltin.c \
mystring.c \
nodes.c \
options.c \
parser.c \
redir.c \
show.c \
syntax.c \
trap.c \
output.c \
var.c \
bltin/echo.c \
init.c
LOCAL_MODULE:= ash
LOCAL_MODULE_TAGS:= shell_ash
LOCAL_CFLAGS += -DSHELL -DWITH_LINENOISE
LOCAL_STATIC_LIBRARIES := liblinenoise
LOCAL_C_INCLUDES += system/core/liblinenoise
make_ash_files: PRIVATE_SRC_FILES := $(SRC_FILES)
make_ash_files: PRIVATE_CFLAGS := $(LOCAL_CFLAGS)
make_ash_files:
p4 edit arith.c arith_lex.c arith.h builtins.h builtins.c
p4 edit init.c nodes.c nodes.h token.h
sh ./mktokens
bison -o arith.c arith.y
flex -o arith_lex.c arith_lex.l
perl -ne 'print if ( /^\#\s*define\s+ARITH/ );' < arith.c > arith.h
sh ./mkbuiltins shell.h builtins.def . -Wall -O2
sh ./mknodes.sh nodetypes nodes.c.pat .
sh ./mkinit.sh $(PRIVATE_SRC_FILES)
include $(BUILD_EXECUTABLE)
# create /system/bin/sh symlink to $(TARGET_SHELL)
# not the optimal place for this, but a fitting one
OUTSYSTEMBINSH := $(TARGET_OUT)/bin/sh
LOCAL_MODULE := systembinsh
$(OUTSYSTEMBINSH): | $(TARGET_SHELL)
$(OUTSYSTEMBINSH): LOCAL_MODULE := $(LOCAL_MODULE)
$(OUTSYSTEMBINSH):
@echo "Symlink: $@ -> $(TARGET_SHELL)"
@rm -rf $@
$(hide) ln -sf $(TARGET_SHELL) $@
ALL_DEFAULT_INSTALLED_MODULES += $(OUTSYSTEMBINSH)
ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(OUTSYSTEMBINSH)