blob: ef0593a0413d691ee8e5f39f166f3f8403b5066b [file] [log] [blame]
Dees Troy8d66f8b2013-10-08 14:04:55 +00001LOCAL_PATH:= system/core/toolbox/
2include $(CLEAR_VARS)
3
4TOOLS := \
5 start \
6 stop \
7 getprop \
8 setprop
9
10ifeq ($(TWHAVE_SELINUX), true)
11 TOOLS += \
12 ls \
13 getenforce \
14 setenforce \
15 chcon \
16 restorecon \
17 runcon \
18 getsebool \
19 setsebool \
20 load_policy
21endif
22
23LOCAL_SRC_FILES := \
24 dynarray.c \
25 toolbox.c \
26 $(patsubst %,%.c,$(TOOLS))
27
28TOOLS += reboot
29
30ifeq ($(BOARD_USES_BOOTMENU),true)
31 LOCAL_SRC_FILES += ../../../external/bootmenu/libreboot/reboot.c
32else
33 LOCAL_SRC_FILES += reboot.c
34endif
35
36LOCAL_C_INCLUDES := bionic/libc/bionic
37
38LOCAL_SHARED_LIBRARIES := \
39 libcutils \
40 liblog \
41 libc
42
43ifeq ($(TWHAVE_SELINUX), true)
44 LOCAL_SHARED_LIBRARIES += libselinux
45endif
46
47LOCAL_MODULE := toolbox_recovery
48LOCAL_MODULE_STEM := toolbox
49LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
50LOCAL_MODULE_TAGS := optional
51
52# Including this will define $(intermediates).
53#
54include $(BUILD_EXECUTABLE)
55
56$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
57
58TOOLS_H := $(intermediates)/tools.h
59$(TOOLS_H): PRIVATE_TOOLS := $(TOOLS)
60$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
61$(TOOLS_H): $(LOCAL_PATH)/Android.mk
62$(TOOLS_H):
63 $(transform-generated-source)
64
65# Make #!/system/bin/toolbox launchers for each tool.
66#
67SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(TOOLS))
68$(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE_STEM)
69$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
70 @echo "Symlink: $@ -> $(TOOLBOX_BINARY)"
71 @mkdir -p $(dir $@)
72 @rm -rf $@
73 $(hide) ln -sf $(TOOLBOX_BINARY) $@
74
75ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
76
77# We need this so that the installed files could be picked up based on the
78# local module name
79ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
80 $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)