1dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_PATH:= $(call my-dir)
2dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectinclude $(CLEAR_VARS)
3dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
4dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectTOOLS := \
5dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	ls \
6dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	mount \
7dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	cat \
8dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	ps \
9dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	kill \
10dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	ln \
11dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	insmod \
12dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	rmmod \
13dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	lsmod \
14dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	ifconfig \
15dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	setconsole \
16dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	rm \
17dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	mkdir \
18dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	rmdir \
19dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	reboot \
20dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	getevent \
21dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	sendevent \
22dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	date \
23dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	wipe \
24dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	sync \
25dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	umount \
26dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	start \
27dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	stop \
28dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	notify \
29dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	cmp \
30dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	dmesg \
31dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	route \
32dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	hd \
33dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	dd \
34dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	df \
35dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	getprop \
36dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	setprop \
37dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	watchprops \
38dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	log \
39dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	sleep \
40dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	renice \
41dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	printenv \
42dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	smd \
43dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	chmod \
442a743730c7d1a8adba8a922f7af46cef0b35363aDries Harnie	chown \
4572eead43c7711ca97b2d7f578e6b8854a2856ce0San Mehat	newfs_msdos \
46dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	netstat \
47dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	ioctl \
48dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	mv \
49dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	schedtop \
50dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	top \
51dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	iftop \
52dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	id \
53a699d6256fca0336b173c524c5b3d8f7d4fcdc25Mike Lockwood	uptime \
547c953d04bcc9070a1bce171e979c5201dd39325bArve Hjønnevåg	vmstat \
5510d469bff9031e857c7a290dae7d6ccf7b3a18f8San Mehat	nandread \
568b9b105bc7bf6428591d55462b3e727ba7504b29Kenny Root	ionice \
57795165bc1512faa121083c6bf3ce6f6d83ce59e6Ken Sumrall	touch \
588b9b105bc7bf6428591d55462b3e727ba7504b29Kenny Root	lsof
59dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
60b76f0ff7005bde136c2e2f7d19359abe320ab90bErik Gillingifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
61b76f0ff7005bde136c2e2f7d19359abe320ab90bErik GillingTOOLS += r
62b76f0ff7005bde136c2e2f7d19359abe320ab90bErik Gillingendif
63b76f0ff7005bde136c2e2f7d19359abe320ab90bErik Gilling
64dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_SRC_FILES:= \
65a8d1afb3e91b043fcd303a40ca4ac9293bbd2781David 'Digit' Turner	dynarray.c \
66dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	toolbox.c \
67dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	$(patsubst %,%.c,$(TOOLS))
68dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
69123538954b9c8ad8fe7c2d755391f0b7cbaa1d6fMike LockwoodLOCAL_SHARED_LIBRARIES := libcutils libc libusbhost
70fd1e8553232aa6f3bfbb609158b24fa2e1c3d40bErik Gilling
71dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_MODULE:= toolbox
72dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
73dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Including this will define $(intermediates).
74dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#
75dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectinclude $(BUILD_EXECUTABLE)
76dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
77dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
78dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
79dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectTOOLS_H := $(intermediates)/tools.h
80dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H): PRIVATE_TOOLS := $(TOOLS)
81dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
82dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H): $(LOCAL_PATH)/Android.mk
83dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H):
84dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	$(transform-generated-source)
85dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
86dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Make #!/system/bin/toolbox launchers for each tool.
87dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#
88dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectSYMLINKS := $(addprefix $(TARGET_OUT)/bin/,$(TOOLS))
89dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE)
90dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
91dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	@echo "Symlink: $@ -> $(TOOLBOX_BINARY)"
92dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	@mkdir -p $(dir $@)
93dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	@rm -rf $@
94dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project	$(hide) ln -sf $(TOOLBOX_BINARY) $@
95dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
96dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
97dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
98dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# We need this so that the installed files could be picked up based on the
99dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# local module name
100dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
101dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project    $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)
102