Android.mk revision 3f6b63e74d78ab259b55513a933bab3c5c1cc165
1LOCAL_PATH:= $(call my-dir)
2include $(CLEAR_VARS)
3
4TOOLS := \
5	ls \
6	mount \
7	cat \
8	ps \
9	kill \
10	ln \
11	insmod \
12	rmmod \
13	lsmod \
14	ifconfig \
15	rm \
16	mkdir \
17	rmdir \
18	getevent \
19	sendevent \
20	date \
21	wipe \
22	sync \
23	umount \
24	start \
25	stop \
26	notify \
27	cmp \
28	dmesg \
29	route \
30	hd \
31	dd \
32	df \
33	getprop \
34	setprop \
35	watchprops \
36	log \
37	sleep \
38	renice \
39	printenv \
40	smd \
41	chmod \
42	chown \
43	newfs_msdos \
44	netstat \
45	ioctl \
46	mv \
47	schedtop \
48	top \
49	iftop \
50	id \
51	uptime \
52	vmstat \
53	nandread \
54	ionice \
55	touch \
56	lsof \
57	du \
58	md5 \
59	clear \
60	getenforce \
61	setenforce \
62	chcon \
63	restorecon \
64	runcon \
65	getsebool \
66	setsebool \
67	load_policy \
68	swapon \
69	swapoff \
70	mkswap \
71	readlink
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_C_INCLUDES := bionic/libc/bionic
96
97LOCAL_CFLAGS += \
98    -Wno-unused-parameter \
99    -include bsd-compatibility.h \
100
101LOCAL_SHARED_LIBRARIES := \
102	libcutils \
103	liblog \
104	libc \
105	libusbhost \
106	libselinux
107
108LOCAL_MODULE := toolbox
109
110# Including this will define $(intermediates).
111#
112include $(BUILD_EXECUTABLE)
113
114$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
115
116TOOLS_H := $(intermediates)/tools.h
117$(TOOLS_H): PRIVATE_TOOLS := $(ALL_TOOLS)
118$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
119$(TOOLS_H): $(LOCAL_PATH)/Android.mk
120$(TOOLS_H):
121	$(transform-generated-source)
122
123# Make #!/system/bin/toolbox launchers for each tool.
124#
125SYMLINKS := $(addprefix $(TARGET_OUT)/bin/,$(ALL_TOOLS))
126$(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE)
127$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
128	@echo "Symlink: $@ -> $(TOOLBOX_BINARY)"
129	@mkdir -p $(dir $@)
130	@rm -rf $@
131	$(hide) ln -sf $(TOOLBOX_BINARY) $@
132
133ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
134
135# We need this so that the installed files could be picked up based on the
136# local module name
137ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
138    $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)
139