blob: 02add7cf764da84c513946329b684630ffc7d439 [file] [log] [blame]
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +02001LOCAL_PATH := $(call my-dir)
2
Koushik Dutta129a7982011-11-16 18:27:02 -08003
Tanguy Pruvot36efc942011-11-20 14:41:41 +01004# Bionic Branches Switches (CM7/AOSP/ICS)
5BIONIC_ICS := true
Tanguy Pruvoteba45192011-07-15 20:38:12 +02006
Tanguy Pruvot29d8ebe2011-10-29 15:15:34 +02007
Tanguy Pruvot36efc942011-11-20 14:41:41 +01008# Make a static library for regex.
9include $(CLEAR_VARS)
10LOCAL_SRC_FILES := android/regex/regex.c
11LOCAL_C_INCLUDES := android/regex
12LOCAL_MODULE := libclearsilverregex
13include $(BUILD_STATIC_LIBRARY)
14
Tanguy Pruvot29d8ebe2011-10-29 15:15:34 +020015
Tanguy Pruvotb2ccaf32011-07-05 18:22:26 +020016# Execute make clean, make prepare and copy profiles required for normal & static busybox (recovery)
17
18include $(CLEAR_VARS)
Tanguy Pruvoteba45192011-07-15 20:38:12 +020019KERNEL_MODULES_DIR ?= /system/lib/modules
20BUSYBOX_CONFIG := minimal full
Tanguy Pruvotb2ccaf32011-07-05 18:22:26 +020021$(BUSYBOX_CONFIG):
22 @echo GENERATE INCLUDES FOR BUSYBOX $@
23 @cd $(LOCAL_PATH) && make clean
24 cp $(LOCAL_PATH)/.config-$@ $(LOCAL_PATH)/.config
25 cd $(LOCAL_PATH) && make prepare
26 @#cp $(LOCAL_PATH)/.config $(LOCAL_PATH)/.config-$@
27 @mkdir -p $(LOCAL_PATH)/include-$@
28 cp $(LOCAL_PATH)/include/*.h $(LOCAL_PATH)/include-$@/
29 @rm $(LOCAL_PATH)/include/usage_compressed.h
Tanguy Pruvoteba45192011-07-15 20:38:12 +020030 @rm -f $(LOCAL_PATH)/.config-old
Tanguy Pruvotb2ccaf32011-07-05 18:22:26 +020031
32busybox_prepare: $(BUSYBOX_CONFIG)
33LOCAL_MODULE := busybox_prepare
34LOCAL_MODULE_TAGS := eng
35include $(BUILD_STATIC_LIBRARY)
36
37
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +020038include $(CLEAR_VARS)
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +020039
Tanguy Pruvoteba45192011-07-15 20:38:12 +020040KERNEL_MODULES_DIR ?= /system/lib/modules
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +020041
Tanguy Pruvoteba45192011-07-15 20:38:12 +020042SUBMAKE := make -s -C $(LOCAL_PATH) CC=$(CC)
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +020043
44BUSYBOX_SRC_FILES = $(shell cat $(LOCAL_PATH)/busybox-$(BUSYBOX_CONFIG).sources) \
45 libbb/android.c
46
47ifeq ($(TARGET_ARCH),arm)
48 BUSYBOX_SRC_FILES += \
Tanguy Pruvot36efc942011-11-20 14:41:41 +010049 android/libc/arch-arm/syscalls/adjtimex.S \
50 android/libc/arch-arm/syscalls/getsid.S \
51 android/libc/arch-arm/syscalls/stime.S \
52 android/libc/arch-arm/syscalls/swapon.S \
53 android/libc/arch-arm/syscalls/swapoff.S \
54 android/libc/arch-arm/syscalls/sysinfo.S
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +020055endif
56
Rocky Zhang8f997da2011-10-03 21:11:37 +080057ifeq ($(TARGET_ARCH),mips)
58 BUSYBOX_SRC_FILES += \
59 android/libc/arch-mips/syscalls/adjtimex.S \
60 android/libc/arch-mips/syscalls/getsid.S \
61 android/libc/arch-mips/syscalls/stime.S \
62 android/libc/arch-mips/syscalls/swapon.S \
63 android/libc/arch-mips/syscalls/swapoff.S \
64 android/libc/arch-mips/syscalls/sysinfo.S
65endif
66
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +020067BUSYBOX_C_INCLUDES = \
68 $(LOCAL_PATH)/include-$(BUSYBOX_CONFIG) \
69 $(LOCAL_PATH)/include $(LOCAL_PATH)/libbb \
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +020070 bionic/libc/private \
71 bionic/libm/include \
72 bionic/libm \
Tanguy Pruvot36efc942011-11-20 14:41:41 +010073 libc/kernel/common \
74 $(LOCAL_PATH)/android/regex
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +020075
76BUSYBOX_CFLAGS = \
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +020077 -Werror=implicit \
78 -DNDEBUG \
Tanguy Pruvotc81b2cf2011-07-04 10:18:25 +020079 -DANDROID \
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +020080 -include include-$(BUSYBOX_CONFIG)/autoconf.h \
81 -D'CONFIG_DEFAULT_MODULES_DIR="$(KERNEL_MODULES_DIR)"' \
82 -D'BB_VER="$(strip $(shell $(SUBMAKE) kernelversion)) $(BUSYBOX_SUFFIX)"' -DBB_BT=AUTOCONF_TIMESTAMP
83
Tanguy Pruvot36efc942011-11-20 14:41:41 +010084# to handle differences in ICS (ipv6)
85ifeq ($(BIONIC_ICS),true)
86BUSYBOX_CFLAGS += -DBIONIC_ICS
87endif
Tanguy Pruvot64baaf52011-07-04 09:41:45 +020088
Tanguy Pruvotd0fce6d2011-07-04 04:46:06 +020089
90# Build the static lib for the recovery tool
91
Tanguy Pruvotd0fce6d2011-07-04 04:46:06 +020092BUSYBOX_CONFIG:=minimal
93BUSYBOX_SUFFIX:=static
94LOCAL_SRC_FILES := $(BUSYBOX_SRC_FILES)
95LOCAL_C_INCLUDES := $(BUSYBOX_C_INCLUDES)
96LOCAL_CFLAGS := -Dmain=busybox_driver $(BUSYBOX_CFLAGS)
97LOCAL_CFLAGS += \
98 -Dgetusershell=busybox_getusershell \
99 -Dsetusershell=busybox_setusershell \
100 -Dendusershell=busybox_endusershell \
101 -Dttyname_r=busybox_ttyname_r \
102 -Dgetmntent=busybox_getmntent \
103 -Dgetmntent_r=busybox_getmntent_r \
104 -Dgenerate_uuid=busybox_generate_uuid
105LOCAL_MODULE := libbusybox
106LOCAL_MODULE_TAGS := eng
Tanguy Pruvot36efc942011-11-20 14:41:41 +0100107LOCAL_STATIC_LIBRARIES := libcutils libc libm
Tanguy Pruvot985c4112011-10-10 21:28:29 +0200108$(LOCAL_MODULE): busybox_prepare
Tanguy Pruvotd0fce6d2011-07-04 04:46:06 +0200109include $(BUILD_STATIC_LIBRARY)
110
111
112# Bionic Busybox /system/xbin
113
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +0200114include $(CLEAR_VARS)
115BUSYBOX_CONFIG:=full
116BUSYBOX_SUFFIX:=bionic
Tanguy Pruvot36efc942011-11-20 14:41:41 +0100117LOCAL_SRC_FILES := $(BUSYBOX_SRC_FILES)
118ifeq ($(BIONIC_ICS),true)
119LOCAL_SRC_FILES += android/libc/__set_errno.c
120endif
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +0200121LOCAL_C_INCLUDES := $(BUSYBOX_C_INCLUDES)
122LOCAL_CFLAGS := $(BUSYBOX_CFLAGS)
123LOCAL_MODULE := busybox
124LOCAL_MODULE_TAGS := eng
125LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
Tanguy Pruvot36efc942011-11-20 14:41:41 +0100126LOCAL_SHARED_LIBRARIES := libc libcutils libm
Koushik Dutta129a7982011-11-16 18:27:02 -0800127LOCAL_STATIC_LIBRARIES := libclearsilverregex
Tanguy Pruvot985c4112011-10-10 21:28:29 +0200128$(LOCAL_MODULE): busybox_prepare
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +0200129include $(BUILD_EXECUTABLE)
130
131BUSYBOX_LINKS := $(shell cat $(LOCAL_PATH)/busybox-$(BUSYBOX_CONFIG).links)
132# nc is provided by external/netcat
133exclude := nc
134SYMLINKS := $(addprefix $(TARGET_OUT_OPTIONAL_EXECUTABLES)/,$(filter-out $(exclude),$(notdir $(BUSYBOX_LINKS))))
135$(SYMLINKS): BUSYBOX_BINARY := $(LOCAL_MODULE)
136$(SYMLINKS): $(LOCAL_INSTALLED_MODULE)
137 @echo "Symlink: $@ -> $(BUSYBOX_BINARY)"
138 @mkdir -p $(dir $@)
139 @rm -rf $@
140 $(hide) ln -sf $(BUSYBOX_BINARY) $@
141
142ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
143
144# We need this so that the installed files could be picked up based on the
145# local module name
146ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
147 $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)
148
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +0200149
codeworkx258ba0c2011-09-08 21:25:43 +0200150# Static Busybox
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +0200151
152include $(CLEAR_VARS)
153BUSYBOX_CONFIG:=full
154BUSYBOX_SUFFIX:=static
155LOCAL_SRC_FILES := $(BUSYBOX_SRC_FILES)
156LOCAL_C_INCLUDES := $(BUSYBOX_C_INCLUDES)
157LOCAL_CFLAGS := $(BUSYBOX_CFLAGS)
158LOCAL_CFLAGS += \
159 -Dgetusershell=busybox_getusershell \
160 -Dsetusershell=busybox_setusershell \
161 -Dendusershell=busybox_endusershell \
162 -Dttyname_r=busybox_ttyname_r \
163 -Dgetmntent=busybox_getmntent \
164 -Dgetmntent_r=busybox_getmntent_r \
165 -Dgenerate_uuid=busybox_generate_uuid
166LOCAL_FORCE_STATIC_EXECUTABLE := true
Tanguy Pruvot985c4112011-10-10 21:28:29 +0200167LOCAL_MODULE := static_busybox
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +0200168LOCAL_MODULE_TAGS := optional
Tanguy Pruvot36efc942011-11-20 14:41:41 +0100169LOCAL_STATIC_LIBRARIES := libclearsilverregex libc libcutils libm
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +0200170LOCAL_MODULE_CLASS := UTILITY_EXECUTABLES
codeworkx258ba0c2011-09-08 21:25:43 +0200171LOCAL_MODULE_PATH := $(PRODUCT_OUT)/utilities
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +0200172LOCAL_UNSTRIPPED_PATH := $(PRODUCT_OUT)/symbols/utilities
173LOCAL_MODULE_STEM := busybox
Tanguy Pruvot985c4112011-10-10 21:28:29 +0200174$(LOCAL_MODULE): busybox_prepare
Tanguy Pruvot8aeb3712011-06-30 08:59:26 +0200175include $(BUILD_EXECUTABLE)