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 getevent \ 20dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project sendevent \ 21dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project date \ 22dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project wipe \ 23dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project sync \ 24dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project umount \ 25dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project start \ 26dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project stop \ 27dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project notify \ 28dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project cmp \ 29dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project dmesg \ 30dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project route \ 31dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project hd \ 32dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project dd \ 33dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project df \ 34dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project getprop \ 35dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project setprop \ 36dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project watchprops \ 37dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project log \ 38dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project sleep \ 39dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project renice \ 40dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project printenv \ 41dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project smd \ 42dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project chmod \ 432a743730c7d1a8adba8a922f7af46cef0b35363aDries Harnie chown \ 4472eead43c7711ca97b2d7f578e6b8854a2856ce0San Mehat newfs_msdos \ 45dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project netstat \ 46dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ioctl \ 47dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project mv \ 48dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project schedtop \ 49dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project top \ 50dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project iftop \ 51dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project id \ 52a699d6256fca0336b173c524c5b3d8f7d4fcdc25Mike Lockwood uptime \ 537c953d04bcc9070a1bce171e979c5201dd39325bArve Hjønnevåg vmstat \ 5410d469bff9031e857c7a290dae7d6ccf7b3a18f8San Mehat nandread \ 558b9b105bc7bf6428591d55462b3e727ba7504b29Kenny Root ionice \ 56795165bc1512faa121083c6bf3ce6f6d83ce59e6Ken Sumrall touch \ 57d0455c952d61d36e662f4a95d5e03689ecedca8fScott Anderson lsof \ 5857df14c654a968e5b85d508cbd0871632011cb0eJeff Sharkey du \ 5952abb4b1ef5f0a0939f1485433cf817523caf779Michael Wright md5 \ 60efb5e3c709214cfc45beec5fcc66c93223ffc744Kenny Root clear \ 618290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley getenforce \ 628290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley setenforce \ 638290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley chcon \ 648290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley restorecon \ 658290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley runcon \ 668290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley getsebool \ 678290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley setsebool \ 68367297c3d764eaf6e60880964e1739df13f0b703Rom Lemarchand load_policy \ 69367297c3d764eaf6e60880964e1739df13f0b703Rom Lemarchand swapon \ 70367297c3d764eaf6e60880964e1739df13f0b703Rom Lemarchand swapoff \ 719f50abdee00a9571393ce4a589080b4d6129aaf3Michael Wright mkswap \ 729f50abdee00a9571393ce4a589080b4d6129aaf3Michael Wright readlink 738290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley 74b76f0ff7005bde136c2e2f7d19359abe320ab90bErik Gillingifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) 75b76f0ff7005bde136c2e2f7d19359abe320ab90bErik GillingTOOLS += r 76b76f0ff7005bde136c2e2f7d19359abe320ab90bErik Gillingendif 77b76f0ff7005bde136c2e2f7d19359abe320ab90bErik Gilling 7857df14c654a968e5b85d508cbd0871632011cb0eJeff SharkeyALL_TOOLS = $(TOOLS) 7957df14c654a968e5b85d508cbd0871632011cb0eJeff SharkeyALL_TOOLS += \ 803e8b1581ff0f2daa934eb9d6362dfe4e2b4fa8c9Jeff Sharkey cp \ 813e8b1581ff0f2daa934eb9d6362dfe4e2b4fa8c9Jeff Sharkey grep 8257df14c654a968e5b85d508cbd0871632011cb0eJeff Sharkey 8357df14c654a968e5b85d508cbd0871632011cb0eJeff SharkeyLOCAL_SRC_FILES := \ 84a8d1afb3e91b043fcd303a40ca4ac9293bbd2781David 'Digit' Turner dynarray.c \ 85dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project toolbox.c \ 8657df14c654a968e5b85d508cbd0871632011cb0eJeff Sharkey $(patsubst %,%.c,$(TOOLS)) \ 873e8b1581ff0f2daa934eb9d6362dfe4e2b4fa8c9Jeff Sharkey cp/cp.c cp/utils.c \ 883e8b1581ff0f2daa934eb9d6362dfe4e2b4fa8c9Jeff Sharkey grep/grep.c grep/fastgrep.c grep/file.c grep/queue.c grep/util.c 89dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 90d0455c952d61d36e662f4a95d5e03689ecedca8fScott AndersonLOCAL_C_INCLUDES := bionic/libc/bionic 91d0455c952d61d36e662f4a95d5e03689ecedca8fScott Anderson 92b83c09812f30d36285cacdf5cf824c56c267f8e5Kenny RootLOCAL_SHARED_LIBRARIES := \ 93b83c09812f30d36285cacdf5cf824c56c267f8e5Kenny Root libcutils \ 94083b5ccba345ed2b4950454f16bd89c5d86b6b27Ying Wang liblog \ 95b83c09812f30d36285cacdf5cf824c56c267f8e5Kenny Root libc \ 96b83c09812f30d36285cacdf5cf824c56c267f8e5Kenny Root libusbhost \ 97b83c09812f30d36285cacdf5cf824c56c267f8e5Kenny Root libselinux 988290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley 9957df14c654a968e5b85d508cbd0871632011cb0eJeff SharkeyLOCAL_MODULE := toolbox 100dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 101dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Including this will define $(intermediates). 102dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# 103dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectinclude $(BUILD_EXECUTABLE) 104dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 105dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h 106dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 107dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectTOOLS_H := $(intermediates)/tools.h 10857df14c654a968e5b85d508cbd0871632011cb0eJeff Sharkey$(TOOLS_H): PRIVATE_TOOLS := $(ALL_TOOLS) 109dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done 110dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H): $(LOCAL_PATH)/Android.mk 111dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H): 112dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project $(transform-generated-source) 113dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 114dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Make #!/system/bin/toolbox launchers for each tool. 115dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# 11657df14c654a968e5b85d508cbd0871632011cb0eJeff SharkeySYMLINKS := $(addprefix $(TARGET_OUT)/bin/,$(ALL_TOOLS)) 117dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE) 118dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk 119dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project @echo "Symlink: $@ -> $(TOOLBOX_BINARY)" 120dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project @mkdir -p $(dir $@) 121dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project @rm -rf $@ 122dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project $(hide) ln -sf $(TOOLBOX_BINARY) $@ 123dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 124dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS) 125dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 126dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# We need this so that the installed files could be picked up based on the 127dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# local module name 128dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectALL_MODULES.$(LOCAL_MODULE).INSTALLED := \ 129dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS) 130