blob: 565ec2aa52bd90205838a3841f3b8c2864d93bf9 [file] [log] [blame]
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -08001LOCAL_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 \
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080019 getevent \
20 sendevent \
21 date \
22 wipe \
23 sync \
24 umount \
25 start \
26 stop \
27 notify \
28 cmp \
29 dmesg \
30 route \
31 hd \
32 dd \
33 df \
34 getprop \
35 setprop \
36 watchprops \
37 log \
38 sleep \
39 renice \
40 printenv \
41 smd \
42 chmod \
Dries Harnie2a743732010-01-18 17:44:33 +010043 chown \
San Mehat72eead42009-07-06 11:10:03 -070044 newfs_msdos \
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080045 netstat \
46 ioctl \
47 mv \
48 schedtop \
49 top \
50 iftop \
51 id \
Mike Lockwooda699d622010-04-09 15:27:16 -040052 uptime \
Arve Hjønnevåg7c953d02009-09-17 17:30:55 -070053 vmstat \
San Mehat10d469b2010-02-25 14:02:55 -080054 nandread \
Kenny Root8b9b1052010-07-27 09:20:02 -070055 ionice \
Ken Sumrall795165b2011-04-05 20:46:30 -070056 touch \
Scott Andersond0455c92012-01-11 18:13:26 -080057 lsof \
Jeff Sharkey57df14c2012-07-13 16:25:33 -070058 du \
Michael Wright52abb4b2012-07-15 15:52:50 -070059 md5 \
Kenny Rootefb5e3c2012-10-16 18:00:29 -070060 clear \
Stephen Smalley8290d102012-01-13 08:53:56 -050061 getenforce \
62 setenforce \
63 chcon \
64 restorecon \
65 runcon \
66 getsebool \
67 setsebool \
68 load_policy
69
Erik Gillingb76f0ff2011-04-28 14:23:26 -070070ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
71TOOLS += r
72endif
73
Jeff Sharkey57df14c2012-07-13 16:25:33 -070074ALL_TOOLS = $(TOOLS)
75ALL_TOOLS += \
Jeff Sharkey3e8b1582012-07-13 16:37:13 -070076 cp \
77 grep
Jeff Sharkey57df14c2012-07-13 16:25:33 -070078
79LOCAL_SRC_FILES := \
David 'Digit' Turnera8d1afb2011-01-06 08:39:44 +010080 dynarray.c \
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080081 toolbox.c \
Jeff Sharkey57df14c2012-07-13 16:25:33 -070082 $(patsubst %,%.c,$(TOOLS)) \
Jeff Sharkey3e8b1582012-07-13 16:37:13 -070083 cp/cp.c cp/utils.c \
84 grep/grep.c grep/fastgrep.c grep/file.c grep/queue.c grep/util.c
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080085
Scott Andersond0455c92012-01-11 18:13:26 -080086LOCAL_C_INCLUDES := bionic/libc/bionic
87
Kenny Rootb83c0982012-10-10 11:26:33 -070088LOCAL_SHARED_LIBRARIES := \
89 libcutils \
Ying Wang083b5cc2013-04-09 22:03:45 -070090 liblog \
Kenny Rootb83c0982012-10-10 11:26:33 -070091 libc \
92 libusbhost \
93 libselinux
Stephen Smalley8290d102012-01-13 08:53:56 -050094
Jeff Sharkey57df14c2012-07-13 16:25:33 -070095LOCAL_MODULE := toolbox
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080096
97# Including this will define $(intermediates).
98#
99include $(BUILD_EXECUTABLE)
100
101$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
102
103TOOLS_H := $(intermediates)/tools.h
Jeff Sharkey57df14c2012-07-13 16:25:33 -0700104$(TOOLS_H): PRIVATE_TOOLS := $(ALL_TOOLS)
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800105$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
106$(TOOLS_H): $(LOCAL_PATH)/Android.mk
107$(TOOLS_H):
108 $(transform-generated-source)
109
110# Make #!/system/bin/toolbox launchers for each tool.
111#
Jeff Sharkey57df14c2012-07-13 16:25:33 -0700112SYMLINKS := $(addprefix $(TARGET_OUT)/bin/,$(ALL_TOOLS))
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800113$(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE)
114$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
115 @echo "Symlink: $@ -> $(TOOLBOX_BINARY)"
116 @mkdir -p $(dir $@)
117 @rm -rf $@
118 $(hide) ln -sf $(TOOLBOX_BINARY) $@
119
120ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
121
122# We need this so that the installed files could be picked up based on the
123# local module name
124ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
125 $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)