OSDN Git Service

mksh: Build a static library
[android-x86/external-mksh.git] / Android.mk
1 # Copyright © 2010, 2013
2 #    Thorsten Glaser <t.glaser@tarent.de>
3 # This file is provided under the same terms as mksh.
4
5 LOCAL_PATH := $(call my-dir)
6
7 # ...then from Makefrag.inc: CFLAGS...
8 common_cflags += \
9     -Wno-deprecated-declarations \
10     -fno-asynchronous-unwind-tables \
11     -fno-strict-aliasing \
12     -fstack-protector -fwrapv \
13
14 # ...and CPPFLAGS.
15 common_cflags += \
16     -DDEBUG_LEAKS -DMKSH_ASSUME_UTF8 -DMKSH_CONSERVATIVE_FDS \
17     -DMKSH_DONT_EMIT_IDSTRING -DMKSH_NOPWNAM -DMKSH_BUILDSH \
18     -D_GNU_SOURCE -DSETUID_CAN_FAIL_WITH_EAGAIN \
19     -DHAVE_ATTRIBUTE_BOUNDED=0 -DHAVE_ATTRIBUTE_FORMAT=1 \
20     -DHAVE_ATTRIBUTE_NORETURN=1 \
21     -DHAVE_ATTRIBUTE_PURE=1 \
22     -DHAVE_ATTRIBUTE_UNUSED=1 \
23     -DHAVE_ATTRIBUTE_USED=1 -DHAVE_SYS_TIME_H=1 -DHAVE_TIME_H=1 \
24     -DHAVE_BOTH_TIME_H=1 -DHAVE_SYS_BSDTYPES_H=0 \
25     -DHAVE_SYS_FILE_H=1 -DHAVE_SYS_MKDEV_H=0 -DHAVE_SYS_MMAN_H=1 \
26     -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_RESOURCE_H=1 \
27     -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SYSMACROS_H=1 \
28     -DHAVE_BSTRING_H=0 -DHAVE_GRP_H=1 -DHAVE_IO_H=0 -DHAVE_LIBGEN_H=1 \
29     -DHAVE_LIBUTIL_H=0 -DHAVE_PATHS_H=1 -DHAVE_STDINT_H=1 \
30     -DHAVE_STRINGS_H=1 -DHAVE_TERMIOS_H=1 -DHAVE_ULIMIT_H=0 \
31     -DHAVE_VALUES_H=0 -DHAVE_CAN_INTTYPES=1 -DHAVE_CAN_UCBINTS=1 \
32     -DHAVE_CAN_INT8TYPE=1 -DHAVE_CAN_UCBINT8=1 -DHAVE_RLIM_T=1 \
33     -DHAVE_SIG_T=1 -DHAVE_SYS_ERRLIST=0 -DHAVE_SYS_SIGNAME=1 \
34     -DHAVE_SYS_SIGLIST=1 -DHAVE_FLOCK=1 -DHAVE_LOCK_FCNTL=1 \
35     -DHAVE_GETRUSAGE=1 \
36     -DHAVE_GETSID=1 \
37     -DHAVE_GETTIMEOFDAY=1 \
38     -DHAVE_ISSETUGID=0 \
39     -DHAVE_KILLPG=1 \
40     -DHAVE_MEMMOVE=1 -DHAVE_MKNOD=0 -DHAVE_MMAP=1 -DHAVE_NICE=1 \
41     -DHAVE_REVOKE=0 -DHAVE_SETLOCALE_CTYPE=0 \
42     -DHAVE_LANGINFO_CODESET=0 -DHAVE_SELECT=1 -DHAVE_SETRESUGID=1 \
43     -DHAVE_SETGROUPS=1 -DHAVE_STRERROR=1 -DHAVE_STRSIGNAL=0 \
44     -DHAVE_STRLCPY=1 -DHAVE_FLOCK_DECL=1 -DHAVE_REVOKE_DECL=1 \
45     -DHAVE_SYS_ERRLIST_DECL=0 -DHAVE_SYS_SIGLIST_DECL=1 \
46     -DHAVE_PERSISTENT_HISTORY=0 -DMKSH_BUILD_R=521
47
48
49 # /system/etc/mkshrc
50 include $(CLEAR_VARS)
51 LOCAL_MODULE := mkshrc
52 LOCAL_MODULE_CLASS := ETC
53 LOCAL_MODULE_PATH := $(TARGET_OUT)/etc
54 LOCAL_SRC_FILES := $(LOCAL_MODULE)
55 include $(BUILD_PREBUILT)
56
57
58 # build a static library first
59 include $(CLEAR_VARS)
60 LOCAL_MODULE := libmksh
61 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
62
63 # mksh source files
64 LOCAL_SRC_FILES := \
65     src/lalloc.c src/edit.c src/eval.c src/exec.c \
66     src/expr.c src/funcs.c src/histrap.c src/jobs.c \
67     src/lex.c src/misc.c src/shf.c \
68     src/syn.c src/tree.c src/var.c
69
70 LOCAL_C_INCLUDES := $(LOCAL_PATH)/src
71 LOCAL_CFLAGS := $(common_cflags)
72 LOCAL_CLANG := true
73 include $(BUILD_STATIC_LIBRARY)
74
75
76 # /system/bin/sh
77 include $(CLEAR_VARS)
78 LOCAL_MODULE := sh
79 LOCAL_MODULE_TAGS := optional
80 LOCAL_SRC_FILES := src/main.c
81 LOCAL_STATIC_LIBRARIES := libmksh
82 LOCAL_SYSTEM_SHARED_LIBRARIES := libc
83 LOCAL_CFLAGS := $(common_cflags)
84 LOCAL_CFLAGS += \
85     -DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\" \
86     -DMKSHRC_PATH=\"/system/etc/mkshrc\" \
87     -DMKSH_DEFAULT_EXECSHELL=\"/system/bin/sh\" \
88     -DMKSH_DEFAULT_TMPDIR=\"/data/local\"
89 LOCAL_CLANG := true
90 include $(BUILD_EXECUTABLE)
91
92 # recovery shell: /sbin/sh
93 # this is built into a single-call binary
94 include $(CLEAR_VARS)
95 LOCAL_MODULE := libmksh_static
96 LOCAL_MODULE_TAGS := optional
97 LOCAL_SRC_FILES := src/main.c
98 LOCAL_WHOLE_STATIC_LIBRARIES := libmksh
99 LOCAL_CFLAGS := $(common_cflags)
100 LOCAL_CFLAGS += -Dmain=mksh_main
101 LOCAL_CFLAGS += \
102     -DMKSH_DEFAULT_PROFILEDIR=\"/etc\" \
103     -DMKSHRC_PATH=\"/etc/mkshrc\" \
104     -DMKSH_DEFAULT_EXECSHELL=\"/sbin/sh\" \
105     -DMKSH_DEFAULT_TMPDIR=\"/tmp\"
106 LOCAL_CLANG := true
107 include $(BUILD_STATIC_LIBRARY)