Android.mk revision 5922d3b5be786d768515043a818413f890814094
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    -std=gnu99 \
99    -Wno-unused-parameter \
100    -include bsd-compatibility.h \
101
102LOCAL_SHARED_LIBRARIES := \
103	libcutils \
104	liblog \
105	libc \
106	libusbhost \
107	libselinux
108
109LOCAL_MODULE := toolbox
110
111# Including this will define $(intermediates).
112#
113include $(BUILD_EXECUTABLE)
114
115$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
116
117TOOLS_H := $(intermediates)/tools.h
118$(TOOLS_H): PRIVATE_TOOLS := $(ALL_TOOLS)
119$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
120$(TOOLS_H): $(LOCAL_PATH)/Android.mk
121$(TOOLS_H):
122	$(transform-generated-source)
123
124# Make #!/system/bin/toolbox launchers for each tool.
125#
126SYMLINKS := $(addprefix $(TARGET_OUT)/bin/,$(ALL_TOOLS))
127$(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE)
128$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
129	@echo "Symlink: $@ -> $(TOOLBOX_BINARY)"
130	@mkdir -p $(dir $@)
131	@rm -rf $@
132	$(hide) ln -sf $(TOOLBOX_BINARY) $@
133
134ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
135
136# We need this so that the installed files could be picked up based on the
137# local module name
138ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
139    $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)
140