Android.mk revision 584c654efead9619e5a08b387f715882709c3a54
1d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#
2d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# Copyright (C) 2014 The Android Open Source Project
3d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#
4d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# Licensed under the Apache License, Version 2.0 (the "License");
5d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# you may not use this file except in compliance with the License.
6d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# You may obtain a copy of the License at
7d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#
8d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#      http://www.apache.org/licenses/LICENSE-2.0
9d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#
10d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# Unless required by applicable law or agreed to in writing, software
11d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# distributed under the License is distributed on an "AS IS" BASIS,
12d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# See the License for the specific language governing permissions and
14d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# limitations under the License.
15d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#
16d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
17d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott HughesLOCAL_PATH := $(call my-dir)
18d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
19d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#
20d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# To update:
21d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#
22d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
23a67bfecfec95624d0aa65a4284db23446c2106f9Elliott Hughes#  git remote add toybox https://github.com/landley/toybox.git
24d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#  git fetch toybox
25d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#  git merge toybox/master
26d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#  mm -j32
27d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#  # (Make any necessary Android.mk changes and test the new toybox.)
28d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#  git push aosp HEAD:master  # Push directly, avoiding gerrit.
29d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#  git push aosp HEAD:refs/for/master  # Push to gerrit.
30d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#
31d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#  # Now commit any necessary Android.mk changes like normal:
32d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#  repo start post-sync .
33d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes#  git commit -a
34d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
35d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
36361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes#
37361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes# To add a toy:
38361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes#
39361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes
40361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes#  make menuconfig
41361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes#  # (Select the toy you want to add.)
42361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes#  make clean && make  # Regenerate the generated files.
43361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes#  # Edit LOCAL_SRC_FILES below to add the toy.
44361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes#  # If you just want to use it as "toybox x" rather than "x", you can stop now.
45361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes#  # If you want this toy to have a symbolic link in /system/bin, add the toy to ALL_TOOLS.
46361d6abc4ac4781247106e4694231b3b6971b3fcElliott Hughes
47d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughesinclude $(CLEAR_VARS)
48d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
49d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott HughesLOCAL_SRC_FILES := \
50d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lib/args.c \
51d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lib/dirtree.c \
52d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lib/getmountlist.c \
53d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lib/help.c \
54584c654efead9619e5a08b387f715882709c3a54Elliott Hughes    lib/interestingtimes.c \
55d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lib/lib.c \
56d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lib/llist.c \
57d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lib/net.c \
58d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lib/portability.c \
59d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lib/xwrap.c \
60d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    main.c \
610e6551acb8c8c19592896a260f0b873c88df2646Elliott Hughes    toys/android/getenforce.c \
6285cda1a44a0b00f13a49fd7c606e43cfd1328057Elliott Hughes    toys/android/getprop.c \
630e6551acb8c8c19592896a260f0b873c88df2646Elliott Hughes    toys/android/load_policy.c \
64e0953ac316d2f9f1fbe9a167d33083873524de3fElliott Hughes    toys/android/restorecon.c \
65cfbb8c14dc7b10e7ece0094b0cead2500661aa72Elliott Hughes    toys/android/runcon.c \
660e6551acb8c8c19592896a260f0b873c88df2646Elliott Hughes    toys/android/setenforce.c \
674b39d13e8cadb98ca41dcb88303bf5846890fd59Elliott Hughes    toys/android/setprop.c \
68d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/dmesg.c \
69d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/hostname.c \
70d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/killall.c \
71d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/md5sum.c \
72d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/mknod.c \
73d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/mktemp.c \
74d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/mount.c \
75d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/pidof.c \
76d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/seq.c \
77d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/sync.c \
78d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/lsb/umount.c \
79d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/acpi.c \
80148622383ae45985d4b44de5a5dd3674a354e0ccElliott Hughes    toys/other/base64.c \
81d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/blkid.c \
82d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/blockdev.c \
83d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/bzcat.c \
84bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughes    toys/other/chcon.c \
85d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/chroot.c \
86d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/clear.c \
87d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/dos2unix.c \
88d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/fallocate.c \
89d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/free.c \
90d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/freeramdisk.c \
91d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/fsfreeze.c \
92d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/help.c \
93d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/ifconfig.c \
94d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/inotifyd.c \
95d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/insmod.c \
96d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/losetup.c \
97d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/lsattr.c \
98d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/lsmod.c \
99d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/lspci.c \
100d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/lsusb.c \
101d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/makedevs.c \
102d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/mkswap.c \
103d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/modinfo.c \
104d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/mountpoint.c \
105d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/nbd_client.c \
106d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/netcat.c \
107d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/partprobe.c \
108d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/pivot_root.c \
109d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/pmap.c \
110d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/printenv.c \
111d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/pwdx.c \
112d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/readlink.c \
113d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/realpath.c \
114d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/rev.c \
115d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/rfkill.c \
116d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/rmmod.c \
117d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/setsid.c \
118d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/stat.c \
119d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/swapoff.c \
120d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/swapon.c \
121d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/switch_root.c \
122d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/sysctl.c \
123d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/tac.c \
124d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/taskset.c \
125d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/timeout.c \
126d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/truncate.c \
127d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/usleep.c \
128d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/vconfig.c \
129d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/vmstat.c \
130d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/which.c \
131d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/other/yes.c \
1323c3e83a74c613a46c6120e1dc613f57035e1699dElliott Hughes    toys/pending/dd.c \
13388db412ddca32cd2bb7d2c2a5926ef3fbc56e93eElliott Hughes    toys/pending/expr.c \
1349aaeff3e0283196b4ed3eaf6ced0f4b224ac24e2Elliott Hughes    toys/pending/hwclock.c \
13553a43da9b450261eba4490781c734cda29a75b09Elliott Hughes    toys/pending/more.c \
1365d2ad2398b7cc6ab6f761c9900e46efe163c1521Elliott Hughes    toys/pending/pgrep.c \
1373c3e83a74c613a46c6120e1dc613f57035e1699dElliott Hughes    toys/pending/netstat.c \
1383c3e83a74c613a46c6120e1dc613f57035e1699dElliott Hughes    toys/pending/route.c \
13988db412ddca32cd2bb7d2c2a5926ef3fbc56e93eElliott Hughes    toys/pending/tar.c \
1403c3e83a74c613a46c6120e1dc613f57035e1699dElliott Hughes    toys/pending/top.c \
141347e42b7f7fe968710337ee4343c1412761f31cfElliott Hughes    toys/pending/tr.c \
1423c3e83a74c613a46c6120e1dc613f57035e1699dElliott Hughes    toys/pending/traceroute.c \
143d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/basename.c \
144d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/cal.c \
145d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/cat.c \
146d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/chgrp.c \
147d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/chmod.c \
148d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/cksum.c \
149d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/cmp.c \
150d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/comm.c \
151d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/cp.c \
152bfa8d0633f4c2950d1efb6e65d47614d2c9b2179Elliott Hughes    toys/posix/cpio.c \
153d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/cut.c \
154d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/date.c \
155d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/df.c \
156d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/dirname.c \
157d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/du.c \
158d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/echo.c \
159d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/env.c \
160d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/expand.c \
161d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/false.c \
162d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/find.c \
163d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/grep.c \
164d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/head.c \
165d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/id.c \
166d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/kill.c \
167d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/ln.c \
168d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/ls.c \
169d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/mkdir.c \
170d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/mkfifo.c \
171d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/nice.c \
172d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/nl.c \
173d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/nohup.c \
174d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/od.c \
175d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/paste.c \
176d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/patch.c \
1770e6551acb8c8c19592896a260f0b873c88df2646Elliott Hughes    toys/posix/printf.c \
178d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/pwd.c \
179d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/renice.c \
180d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/rm.c \
181d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/rmdir.c \
182347e42b7f7fe968710337ee4343c1412761f31cfElliott Hughes    toys/posix/sed.c \
183d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/sleep.c \
184d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/sort.c \
185d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/split.c \
186d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/strings.c \
187d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/tail.c \
188d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/tee.c \
189d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/time.c \
190d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/touch.c \
191d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/true.c \
192d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/tty.c \
193d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/uname.c \
194d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/uniq.c \
195d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/wc.c \
196d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    toys/posix/xargs.c \
197d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
198d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott HughesLOCAL_CFLAGS += \
1994b39d13e8cadb98ca41dcb88303bf5846890fd59Elliott Hughes    -std=c99 \
200d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    -Os \
201d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    -Wno-char-subscripts \
202d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    -Wno-sign-compare \
2030e6551acb8c8c19592896a260f0b873c88df2646Elliott Hughes    -Wno-string-plus-int \
204d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    -Wno-uninitialized \
205d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    -Wno-unused-parameter \
206d353398914d251e9dd2e84a3bbe61ba3a834b511Elliott Hughes    -funsigned-char \
207d353398914d251e9dd2e84a3bbe61ba3a834b511Elliott Hughes    -ffunction-sections -fdata-sections \
208d353398914d251e9dd2e84a3bbe61ba3a834b511Elliott Hughes    -fno-asynchronous-unwind-tables \
209d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
210ec275a9a59a986b927788cc0d8a4c4aad3e6e4a0Elliott Hughestoybox_version := $(shell git -C $(LOCAL_PATH) rev-parse --short=12 HEAD 2>/dev/null)-android
211ec275a9a59a986b927788cc0d8a4c4aad3e6e4a0Elliott HughesLOCAL_CFLAGS += -DTOYBOX_VERSION='"$(toybox_version)"'
212ec275a9a59a986b927788cc0d8a4c4aad3e6e4a0Elliott Hughes
2134b39d13e8cadb98ca41dcb88303bf5846890fd59Elliott HughesLOCAL_CLANG := true
2144b39d13e8cadb98ca41dcb88303bf5846890fd59Elliott Hughes
2154b39d13e8cadb98ca41dcb88303bf5846890fd59Elliott HughesLOCAL_SHARED_LIBRARIES := libcutils libselinux
216761156322f0c7d57a5860daf6b582b78a1d8c993Elliott Hughes
217d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott HughesLOCAL_MODULE := toybox
218d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
219cc6fc1742d903ec4da7688a6b3d0215343e4609cElliott Hughes# dupes: dd df du ls mount renice
220d67730eb9ae4f387fc2d50a8210e789b1509288eElliott Hughes# useless?: freeramdisk fsfreeze install makedevs mkfifo nbd-client
221bf65a2e0c8cf53f35ba0ecb7cedc470d51315d94Elliott Hughes#           partprobe pivot_root pwdx rev rfkill switch_root tty vconfig
2225eec03a13b5218715922f778f27e6e9596b7c244Elliott Hughes# prefer BSD netcat instead?: nc netcat
223d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes# prefer efs2progs instead?: blkid chattr lsattr
224d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
225d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott HughesALL_TOOLS := \
226d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    acpi \
227d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    basename \
228d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    blockdev \
229d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    bzcat \
230d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    cal \
2311e0e5eab47a186b53d225727c4f2ed3f5e68f2d7Elliott Hughes    cat \
232761156322f0c7d57a5860daf6b582b78a1d8c993Elliott Hughes    chcon \
233d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    chgrp \
2345c7cca028966933d5d18b4de5c961b816ad5b3dfElliott Hughes    chmod \
2356ee70fc004112d422e7b2fb8706df9b385c88e30Elliott Hughes    chown \
236d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    chroot \
237d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    cksum \
23803275a865cd0481a74d09951295455c6e706e085Elliott Hughes    clear \
239d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    comm \
240d353398914d251e9dd2e84a3bbe61ba3a834b511Elliott Hughes    cmp \
2416b4d05c1dccaef7415dd17ae939e291b3f85cc50Elliott Hughes    cp \
242bfa8d0633f4c2950d1efb6e65d47614d2c9b2179Elliott Hughes    cpio \
243d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    cut \
2449aaeff3e0283196b4ed3eaf6ced0f4b224ac24e2Elliott Hughes    date \
245d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    dirname \
246c99e20b967d0786c330310bec95715db76b6e2e2Elliott Hughes    dmesg \
247d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    dos2unix \
248d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    echo \
249d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    env \
250d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    expand \
25188db412ddca32cd2bb7d2c2a5926ef3fbc56e93eElliott Hughes    expr \
252d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    fallocate \
25303275a865cd0481a74d09951295455c6e706e085Elliott Hughes    false \
254d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    find \
255d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    free \
2569250c95a8c471981e2ba1aedb401a75f42e1293bElliott Hughes    getenforce \
25785cda1a44a0b00f13a49fd7c606e43cfd1328057Elliott Hughes    getprop \
258d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    groups \
259d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    head \
260d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    hostname \
2619aaeff3e0283196b4ed3eaf6ced0f4b224ac24e2Elliott Hughes    hwclock \
262c8fa5ee959bc35d728e8ff39f84abb085c92d235Elliott Hughes    id \
2634f060a32b287fbb945e55b4a83d311eafde2764dElliott Hughes    ifconfig \
264123aecf242ba8d732653904e7fe256bd58d4677fElliott Hughes    inotifyd \
2656a646ef606d959342614cd7a54aa44b1d592f596Elliott Hughes    insmod \
26695211ea79a02f3b40bcfcb0e65056e65894121e2Elliott Hughes    kill \
267d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    killall \
2680e6551acb8c8c19592896a260f0b873c88df2646Elliott Hughes    load_policy \
269d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    ln \
270d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    logname \
271d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    losetup \
2726a646ef606d959342614cd7a54aa44b1d592f596Elliott Hughes    lsmod \
273d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lspci \
274d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    lsusb \
275d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    md5sum \
276d13bf6a7b53157c721bd381cc6e0b5c2ab30119cElliott Hughes    mkdir \
2770a0435c394fead623eac1495d1c4148d92bd4ae1Elliott Hughes    mknod \
278620bc1a345c5f8ce4ef2e58599199a7361590d28Elliott Hughes    mkswap \
27979984b400ef6bcec74d1599c8a2f71f65ff1441eElliott Hughes    mktemp \
280d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    modinfo \
28153a43da9b450261eba4490781c734cda29a75b09Elliott Hughes    more \
282d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    mountpoint \
283dbcacc6f01ed3c4a7eafc0ef34db4e7b35cdd2cdElliott Hughes    mv \
2845f9893b6b218710ba22fbdd3e0adc51e644b369aElliott Hughes    netstat \
285d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    nice \
286d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    nl \
2879f9894131c5914ed75a02f839c1698f654940ca6Elliott Hughes    nohup \
288d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    od \
289d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    paste \
290d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    patch \
2915d2ad2398b7cc6ab6f761c9900e46efe163c1521Elliott Hughes    pgrep \
292d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    pidof \
2935d2ad2398b7cc6ab6f761c9900e46efe163c1521Elliott Hughes    pkill \
294d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    pmap \
29568e18cd5aa4a3a319a4b3b5f23384c6841f54067Elliott Hughes    printenv \
2960e6551acb8c8c19592896a260f0b873c88df2646Elliott Hughes    printf \
297d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    pwd \
2988f7bc7a63b419318928c66ed936b828607ab8668Elliott Hughes    readlink \
299d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    realpath \
300e0953ac316d2f9f1fbe9a167d33083873524de3fElliott Hughes    restorecon \
301f5275f9e2b9bd2d5fd95a17e0c1165503193985dElliott Hughes    rm \
302d4a6d66e84b5c47bdd5ac53b55a559191f2300d9Elliott Hughes    rmdir \
3036a646ef606d959342614cd7a54aa44b1d592f596Elliott Hughes    rmmod \
30484974ece9439dc5091c9502c68211649a79ada36Elliott Hughes    route \
305cfbb8c14dc7b10e7ece0094b0cead2500661aa72Elliott Hughes    runcon \
306347e42b7f7fe968710337ee4343c1412761f31cfElliott Hughes    sed \
307d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    seq \
3089250c95a8c471981e2ba1aedb401a75f42e1293bElliott Hughes    setenforce \
309176eae9c391bf381c675260062d6aa78cb5c22ceElliott Hughes    setprop \
310d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    setsid \
311d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    sha1sum \
31262cf8d653994ffae64d39873eb5d6e0901a1c9b5Elliott Hughes    sleep \
313d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    sort \
314d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    split \
315d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    stat \
316d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    strings \
317620bc1a345c5f8ce4ef2e58599199a7361590d28Elliott Hughes    swapoff \
318620bc1a345c5f8ce4ef2e58599199a7361590d28Elliott Hughes    swapon \
31985368288de25655a3c3ee065238c652d702e091aElliott Hughes    sync \
320d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    sysctl \
321d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    tac \
322d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    tail \
32388db412ddca32cd2bb7d2c2a5926ef3fbc56e93eElliott Hughes    tar \
324d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    taskset \
325d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    tee \
326d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    time \
327d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    timeout \
3285eec03a13b5218715922f778f27e6e9596b7c244Elliott Hughes    touch \
329347e42b7f7fe968710337ee4343c1412761f31cfElliott Hughes    tr \
33003275a865cd0481a74d09951295455c6e706e085Elliott Hughes    true \
331d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    truncate \
332cc6fc1742d903ec4da7688a6b3d0215343e4609cElliott Hughes    umount \
333d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    uname \
334d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    uniq \
335d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    unix2dos \
33610bd49ec5e24231eb94746e601349f1d5a3c0658Elliott Hughes    usleep \
3372080060f8e4a053b13bc11b44928a85f48172ec5Elliott Hughes    vmstat \
338d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    wc \
339d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    which \
340d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    whoami \
341d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    xargs \
342d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes    yes \
343d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
344331b22de00b1dd749169f84ccf92c77f0036dfc8Ying Wang# Install the symlinks.
345331b22de00b1dd749169f84ccf92c77f0036dfc8Ying WangLOCAL_POST_INSTALL_CMD := $(hide) $(foreach t,$(ALL_TOOLS),ln -sf toybox $(TARGET_OUT)/bin/$(t);)
346d8d2d3c44e552f4e53708db5ea60a7f91a382c0fElliott Hughes
347331b22de00b1dd749169f84ccf92c77f0036dfc8Ying Wanginclude $(BUILD_EXECUTABLE)
348