Android.mk revision 8290d1083ec7eee3f32265012f5d6be2774c4afc
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	setconsole \
16	rm \
17	mkdir \
18	rmdir \
19	reboot \
20	getevent \
21	sendevent \
22	date \
23	wipe \
24	sync \
25	umount \
26	start \
27	stop \
28	notify \
29	cmp \
30	dmesg \
31	route \
32	hd \
33	dd \
34	df \
35	getprop \
36	setprop \
37	watchprops \
38	log \
39	sleep \
40	renice \
41	printenv \
42	smd \
43	chmod \
44	chown \
45	newfs_msdos \
46	netstat \
47	ioctl \
48	mv \
49	schedtop \
50	top \
51	iftop \
52	id \
53	uptime \
54	vmstat \
55	nandread \
56	ionice \
57	touch \
58	lsof
59
60ifeq ($(HAVE_SELINUX),true)
61
62TOOLS += \
63	getenforce \
64	setenforce \
65	chcon \
66	restorecon \
67	runcon \
68	getsebool \
69	setsebool \
70	load_policy
71
72endif
73
74
75ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
76TOOLS += r
77endif
78
79LOCAL_SRC_FILES:= \
80	dynarray.c \
81	toolbox.c \
82	$(patsubst %,%.c,$(TOOLS))
83
84LOCAL_SHARED_LIBRARIES := libcutils libc libusbhost
85
86ifeq ($(HAVE_SELINUX),true)
87
88LOCAL_CFLAGS += -DHAVE_SELINUX
89LOCAL_SHARED_LIBRARIES += libselinux
90LOCAL_C_INCLUDES += external/libselinux/include
91
92endif
93
94LOCAL_MODULE:= toolbox
95
96# Including this will define $(intermediates).
97#
98include $(BUILD_EXECUTABLE)
99
100$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
101
102TOOLS_H := $(intermediates)/tools.h
103$(TOOLS_H): PRIVATE_TOOLS := $(TOOLS)
104$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
105$(TOOLS_H): $(LOCAL_PATH)/Android.mk
106$(TOOLS_H):
107	$(transform-generated-source)
108
109# Make #!/system/bin/toolbox launchers for each tool.
110#
111SYMLINKS := $(addprefix $(TARGET_OUT)/bin/,$(TOOLS))
112$(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE)
113$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
114	@echo "Symlink: $@ -> $(TOOLBOX_BINARY)"
115	@mkdir -p $(dir $@)
116	@rm -rf $@
117	$(hide) ln -sf $(TOOLBOX_BINARY) $@
118
119ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
120
121# We need this so that the installed files could be picked up based on the
122# local module name
123ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
124    $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)
125