Home | History | Annotate | Download | only in mksh
      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=541
     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 ifeq ($(PRODUCT_FULL_TREBLE),true)
     96 # /vendor/etc/mkshrc
     97 include $(CLEAR_VARS)
     98 
     99 LOCAL_MODULE := mkshrc_vendor
    100 LOCAL_MODULE_STEM := mkshrc
    101 LOCAL_MODULE_CLASS := ETC
    102 LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
    103 LOCAL_SRC_FILES := $(LOCAL_MODULE)
    104 include $(BUILD_PREBUILT)
    105 
    106 # /vendor/bin/sh
    107 include $(CLEAR_VARS)
    108 
    109 LOCAL_MODULE := sh_vendor
    110 LOCAL_MODULE_STEM := sh
    111 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
    112 LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
    113 
    114 # mksh source files
    115 LOCAL_SRC_FILES := $(MKSH_SRC_FILES)
    116 
    117 LOCAL_STATIC_LIBRARIES := libc
    118 
    119 LOCAL_C_INCLUDES := $(MKSH_INCLUDES)
    120 
    121 # Additional flags first...
    122 LOCAL_CFLAGS += \
    123     -DMKSH_DEFAULT_PROFILEDIR=\"/vendor/etc\" \
    124     -DMKSHRC_PATH=\"/vendor/etc/mkshrc\" \
    125     -DMKSH_DEFAULT_EXECSHELL=\"/vendor/bin/sh\" \
    126     -DMKSH_DEFPATH_OVERRIDE=\"/vendor/bin:/vendor/xbin\" \
    127 
    128 LOCAL_CFLAGS += $(MKSH_CFLAGS)
    129 
    130 LOCAL_FORCE_STATIC_EXECUTABLE := true
    131 
    132 include $(BUILD_EXECUTABLE)
    133 endif
    134 
    135 MKSH_SRC_FILES:=
    136 MKSH_CFLAGS:=
    137 MKSH_INCLUDES:=
    138