Android.mk revision 7fc47129cf6a25b01b551816ac58ff3f53320123
1LOCAL_PATH:= $(call my-dir)
2include $(CLEAR_VARS)
3
4TOOLS := \
5	cat \
6	chcon \
7	chmod \
8	chown \
9	clear \
10	cmp \
11	date \
12	dd \
13	df \
14	dmesg \
15	du \
16	getenforce \
17	getevent \
18	getprop \
19	getsebool \
20	hd \
21	id \
22	ifconfig \
23	iftop \
24	insmod \
25	ioctl \
26	ionice \
27	kill \
28	ln \
29	load_policy \
30	log \
31	ls \
32	lsmod \
33	lsof \
34	md5 \
35	mkdir \
36	mkswap \
37	mount \
38	mv \
39	nandread \
40	netstat \
41	newfs_msdos \
42	notify \
43	printenv \
44	ps \
45	readlink \
46	renice \
47	restorecon \
48	rm \
49	rmdir \
50	rmmod \
51	route \
52	runcon \
53	schedtop \
54	sendevent \
55	setenforce \
56	setprop \
57	setsebool \
58	sleep \
59	smd \
60	start \
61	stop \
62	swapoff \
63	swapon \
64	sync \
65	top \
66	touch \
67	umount \
68	uptime \
69	vmstat \
70	watchprops \
71	wipe \
72
73ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
74TOOLS += r
75endif
76
77ALL_TOOLS = $(TOOLS)
78ALL_TOOLS += \
79	cp \
80	grep
81
82LOCAL_SRC_FILES := \
83	cp/cp.c \
84	cp/utils.c \
85	dynarray.c \
86	grep/fastgrep.c \
87	grep/file.c \
88	grep/grep.c \
89	grep/queue.c \
90	grep/util.c \
91	$(patsubst %,%.c,$(TOOLS)) \
92	toolbox.c \
93	uid_from_user.c \
94
95LOCAL_CFLAGS += \
96    -std=gnu99 \
97    -Werror -Wno-unused-parameter \
98    -include bsd-compatibility.h \
99
100LOCAL_C_INCLUDES += external/openssl/include
101
102LOCAL_SHARED_LIBRARIES := \
103    libcrypto \
104    libcutils \
105    libselinux \
106
107# libusbhost is only used by lsusb, and that isn't usually included in toolbox.
108# The linker strips out all the unused library code in the normal case.
109LOCAL_STATIC_LIBRARIES := \
110    libusbhost \
111
112LOCAL_MODULE := toolbox
113LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
114
115# Including this will define $(intermediates).
116#
117include $(BUILD_EXECUTABLE)
118
119$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
120
121TOOLS_H := $(intermediates)/tools.h
122$(TOOLS_H): PRIVATE_TOOLS := $(ALL_TOOLS)
123$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
124$(TOOLS_H): $(LOCAL_PATH)/Android.mk
125$(TOOLS_H):
126	$(transform-generated-source)
127
128# Make #!/system/bin/toolbox launchers for each tool.
129#
130SYMLINKS := $(addprefix $(TARGET_OUT)/bin/,$(ALL_TOOLS))
131$(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE)
132$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
133	@echo "Symlink: $@ -> $(TOOLBOX_BINARY)"
134	@mkdir -p $(dir $@)
135	@rm -rf $@
136	$(hide) ln -sf $(TOOLBOX_BINARY) $@
137
138ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
139
140# We need this so that the installed files could be picked up based on the
141# local module name
142ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
143    $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)
144