Home | History | Annotate | Download | only in toolbox
      1 LOCAL_PATH:= $(call my-dir)
      2 
      3 
      4 common_cflags := \
      5     -std=gnu99 \
      6     -Werror -Wno-unused-parameter \
      7     -I$(LOCAL_PATH)/upstream-netbsd/include/ \
      8     -include bsd-compatibility.h \
      9 
     10 
     11 include $(CLEAR_VARS)
     12 LOCAL_SRC_FILES := upstream-netbsd/bin/cat/cat.c
     13 LOCAL_CFLAGS += $(common_cflags) -Dmain=cat_main
     14 LOCAL_MODULE := libtoolbox_cat
     15 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     16 include $(BUILD_STATIC_LIBRARY)
     17 
     18 include $(CLEAR_VARS)
     19 LOCAL_SRC_FILES := upstream-netbsd/sbin/chown/chown.c
     20 LOCAL_CFLAGS += $(common_cflags) -Dmain=chown_main
     21 LOCAL_MODULE := libtoolbox_chown
     22 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     23 include $(BUILD_STATIC_LIBRARY)
     24 
     25 include $(CLEAR_VARS)
     26 LOCAL_SRC_FILES := \
     27     upstream-netbsd/bin/cp/cp.c \
     28     upstream-netbsd/bin/cp/utils.c
     29 LOCAL_CFLAGS += $(common_cflags) -Dmain=cp_main
     30 LOCAL_MODULE := libtoolbox_cp
     31 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     32 include $(BUILD_STATIC_LIBRARY)
     33 
     34 include $(CLEAR_VARS)
     35 LOCAL_SRC_FILES := \
     36     upstream-netbsd/bin/dd/args.c \
     37     upstream-netbsd/bin/dd/conv.c \
     38     upstream-netbsd/bin/dd/dd.c \
     39     upstream-netbsd/bin/dd/dd_hostops.c \
     40     upstream-netbsd/bin/dd/misc.c \
     41     upstream-netbsd/bin/dd/position.c
     42 LOCAL_CFLAGS += $(common_cflags) -Dmain=dd_main -DNO_CONV
     43 LOCAL_MODULE := libtoolbox_dd
     44 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     45 include $(BUILD_STATIC_LIBRARY)
     46 
     47 include $(CLEAR_VARS)
     48 LOCAL_SRC_FILES := upstream-netbsd/usr.bin/du/du.c
     49 LOCAL_CFLAGS += $(common_cflags) -Dmain=du_main
     50 LOCAL_MODULE := libtoolbox_du
     51 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     52 include $(BUILD_STATIC_LIBRARY)
     53 
     54 include $(CLEAR_VARS)
     55 LOCAL_SRC_FILES := \
     56     upstream-netbsd/usr.bin/grep/fastgrep.c \
     57     upstream-netbsd/usr.bin/grep/file.c \
     58     upstream-netbsd/usr.bin/grep/grep.c \
     59     upstream-netbsd/usr.bin/grep/queue.c \
     60     upstream-netbsd/usr.bin/grep/util.c
     61 LOCAL_CFLAGS += $(common_cflags) -Dmain=grep_main
     62 LOCAL_MODULE := libtoolbox_grep
     63 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     64 include $(BUILD_STATIC_LIBRARY)
     65 
     66 include $(CLEAR_VARS)
     67 LOCAL_SRC_FILES := upstream-netbsd/bin/kill/kill.c
     68 LOCAL_CFLAGS += $(common_cflags) -Dmain=kill_main
     69 LOCAL_MODULE := libtoolbox_kill
     70 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     71 include $(BUILD_STATIC_LIBRARY)
     72 
     73 include $(CLEAR_VARS)
     74 LOCAL_SRC_FILES := upstream-netbsd/bin/ln/ln.c
     75 LOCAL_CFLAGS += $(common_cflags) -Dmain=ln_main
     76 LOCAL_MODULE := libtoolbox_ln
     77 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     78 include $(BUILD_STATIC_LIBRARY)
     79 
     80 include $(CLEAR_VARS)
     81 LOCAL_SRC_FILES := upstream-netbsd/bin/mv/mv.c
     82 LOCAL_CFLAGS += $(common_cflags) -Dmain=mv_main -D__SVR4
     83 LOCAL_MODULE := libtoolbox_mv
     84 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     85 include $(BUILD_STATIC_LIBRARY)
     86 
     87 include $(CLEAR_VARS)
     88 LOCAL_SRC_FILES := upstream-netbsd/usr.bin/printenv/printenv.c
     89 LOCAL_CFLAGS += $(common_cflags) -Dmain=printenv_main
     90 LOCAL_MODULE := libtoolbox_printenv
     91 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     92 include $(BUILD_STATIC_LIBRARY)
     93 
     94 include $(CLEAR_VARS)
     95 LOCAL_SRC_FILES := upstream-netbsd/bin/rm/rm.c
     96 LOCAL_CFLAGS += $(common_cflags) -Dmain=rm_main
     97 LOCAL_MODULE := libtoolbox_rm
     98 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
     99 include $(BUILD_STATIC_LIBRARY)
    100 
    101 include $(CLEAR_VARS)
    102 LOCAL_SRC_FILES := upstream-netbsd/bin/rmdir/rmdir.c
    103 LOCAL_CFLAGS += $(common_cflags) -Dmain=rmdir_main
    104 LOCAL_MODULE := libtoolbox_rmdir
    105 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
    106 include $(BUILD_STATIC_LIBRARY)
    107 
    108 include $(CLEAR_VARS)
    109 LOCAL_SRC_FILES := upstream-netbsd/bin/sleep/sleep.c
    110 LOCAL_CFLAGS += $(common_cflags) -Dmain=sleep_main
    111 LOCAL_MODULE := libtoolbox_sleep
    112 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
    113 include $(BUILD_STATIC_LIBRARY)
    114 
    115 include $(CLEAR_VARS)
    116 LOCAL_SRC_FILES := upstream-netbsd/bin/sync/sync.c
    117 LOCAL_CFLAGS += $(common_cflags) -Dmain=sync_main
    118 LOCAL_MODULE := libtoolbox_sync
    119 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
    120 include $(BUILD_STATIC_LIBRARY)
    121 
    122 
    123 include $(CLEAR_VARS)
    124 
    125 BSD_TOOLS := \
    126     cat \
    127     chown \
    128     cp \
    129     dd \
    130     du \
    131     grep \
    132     kill \
    133     ln \
    134     mv \
    135     printenv \
    136     rm \
    137     rmdir \
    138     sleep \
    139     sync \
    140 
    141 OUR_TOOLS := \
    142     chcon \
    143     chmod \
    144     clear \
    145     cmp \
    146     date \
    147     df \
    148     dmesg \
    149     getenforce \
    150     getevent \
    151     getprop \
    152     getsebool \
    153     hd \
    154     id \
    155     ifconfig \
    156     iftop \
    157     insmod \
    158     ioctl \
    159     ionice \
    160     load_policy \
    161     log \
    162     ls \
    163     lsmod \
    164     lsof \
    165     md5 \
    166     mkdir \
    167     mknod \
    168     mkswap \
    169     mount \
    170     nandread \
    171     netstat \
    172     newfs_msdos \
    173     nohup \
    174     notify \
    175     ps \
    176     readlink \
    177     renice \
    178     restorecon \
    179     rmmod \
    180     route \
    181     runcon \
    182     schedtop \
    183     sendevent \
    184     setenforce \
    185     setprop \
    186     setsebool \
    187     smd \
    188     start \
    189     stop \
    190     swapoff \
    191     swapon \
    192     top \
    193     touch \
    194     umount \
    195     uptime \
    196     vmstat \
    197     watchprops \
    198     wipe \
    199 
    200 ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
    201 OUR_TOOLS += r
    202 endif
    203 
    204 ALL_TOOLS = $(BSD_TOOLS) $(OUR_TOOLS)
    205 
    206 LOCAL_SRC_FILES := \
    207     upstream-netbsd/lib/libc/gen/getbsize.c \
    208     upstream-netbsd/lib/libc/gen/humanize_number.c \
    209     upstream-netbsd/lib/libc/stdlib/strsuftoll.c \
    210     upstream-netbsd/lib/libc/string/swab.c \
    211     upstream-netbsd/lib/libutil/raise_default_signal.c \
    212     dynarray.c \
    213     pwcache.c \
    214     $(patsubst %,%.c,$(OUR_TOOLS)) \
    215     toolbox.c \
    216 
    217 LOCAL_CFLAGS += $(common_cflags)
    218 
    219 LOCAL_C_INCLUDES += external/openssl/include
    220 
    221 LOCAL_SHARED_LIBRARIES := \
    222     libcrypto \
    223     libcutils \
    224     libselinux \
    225 
    226 # libusbhost is only used by lsusb, and that isn't usually included in toolbox.
    227 # The linker strips out all the unused library code in the normal case.
    228 LOCAL_STATIC_LIBRARIES := \
    229     libusbhost \
    230 
    231 LOCAL_WHOLE_STATIC_LIBRARIES := $(patsubst %,libtoolbox_%,$(BSD_TOOLS))
    232 
    233 LOCAL_MODULE := toolbox
    234 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
    235 
    236 # Including this will define $(intermediates).
    237 #
    238 include $(BUILD_EXECUTABLE)
    239 
    240 $(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h
    241 
    242 TOOLS_H := $(intermediates)/tools.h
    243 $(TOOLS_H): PRIVATE_TOOLS := $(ALL_TOOLS)
    244 $(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done
    245 $(TOOLS_H): $(LOCAL_PATH)/Android.mk
    246 $(TOOLS_H):
    247 	$(transform-generated-source)
    248 
    249 # Make #!/system/bin/toolbox launchers for each tool.
    250 #
    251 SYMLINKS := $(addprefix $(TARGET_OUT)/bin/,$(ALL_TOOLS))
    252 $(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE)
    253 $(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk
    254 	@echo "Symlink: $@ -> $(TOOLBOX_BINARY)"
    255 	@mkdir -p $(dir $@)
    256 	@rm -rf $@
    257 	$(hide) ln -sf $(TOOLBOX_BINARY) $@
    258 
    259 ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS)
    260 
    261 # We need this so that the installed files could be picked up based on the
    262 # local module name
    263 ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
    264     $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS)
    265