Home | History | Annotate | Download | only in toolbox
      1 LOCAL_PATH:= $(call my-dir)
      2 include $(CLEAR_VARS)
      3 
      4 TOOLS := \
      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 	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 \
     43 	chown \
     44 	newfs_msdos \
     45 	netstat \
     46 	ioctl \
     47 	mv \
     48 	schedtop \
     49 	top \
     50 	iftop \
     51 	id \
     52 	uptime \
     53 	vmstat \
     54 	nandread \
     55 	ionice \
     56 	touch \
     57 	lsof \
     58 	du \
     59 	md5 \
     60 	clear \
     61 	getenforce \
     62 	setenforce \
     63 	chcon \
     64 	restorecon \
     65 	runcon \
     66 	getsebool \
     67 	setsebool \
     68 	load_policy \
     69 	swapon \
     70 	swapoff \
     71 	mkswap \
     72 	readlink
     73 
     74 ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
     75 TOOLS += r
     76 endif
     77 
     78 ALL_TOOLS = $(TOOLS)
     79 ALL_TOOLS += \
     80 	cp \
     81 	grep
     82 
     83 LOCAL_SRC_FILES := \
     84 	dynarray.c \
     85 	toolbox.c \
     86 	$(patsubst %,%.c,$(TOOLS)) \
     87 	cp/cp.c cp/utils.c \
     88 	grep/grep.c grep/fastgrep.c grep/file.c grep/queue.c grep/util.c
     89 
     90 LOCAL_C_INCLUDES := bionic/libc/bionic
     91 
     92 LOCAL_SHARED_LIBRARIES := \
     93 	libcutils \
     94 	liblog \
     95 	libc \
     96 	libusbhost \
     97 	libselinux
     98 
     99 LOCAL_MODULE := toolbox
    100 
    101 # Including this will define $(intermediates).
    102 #
    103 include $(BUILD_EXECUTABLE)
    104 
    105 $(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
    106 
    107 TOOLS_H := $(intermediates)/tools.h
    108 $(TOOLS_H): PRIVATE_TOOLS := $(ALL_TOOLS)
    109 $(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
    110 $(TOOLS_H): $(LOCAL_PATH)/Android.mk
    111 $(TOOLS_H):
    112 	$(transform-generated-source)
    113 
    114 # Make #!/system/bin/toolbox launchers for each tool.
    115 #
    116 SYMLINKS := $(addprefix $(TARGET_OUT)/bin/,$(ALL_TOOLS))
    117 $(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE)
    118 $(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
    119 	@echo "Symlink: $@ -> $(TOOLBOX_BINARY)"
    120 	@mkdir -p $(dir $@)
    121 	@rm -rf $@
    122 	$(hide) ln -sf $(TOOLBOX_BINARY) $@
    123 
    124 ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
    125 
    126 # We need this so that the installed files could be picked up based on the
    127 # local module name
    128 ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
    129     $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)
    130