//
// Copyright (C) 2014 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

/*

   --- To sync with upstream:

    # Update source and regenerate generated files.
    git remote add toybox https://github.com/landley/toybox.git
    git fetch toybox && git merge toybox/master && ./regenerate.sh

    # Make any necessary Android.bp changes and rebuild.
    mm -j32

    # Run all the tests.
    ./run-tests-on-android.sh
    # Run a single test.
    ./run-tests-on-android.sh wc

    # Upload changes.
    git commit -a --amend
    git push aosp HEAD:refs/for/master  # Push to gerrit for review.
    git push aosp HEAD:master           # Push directly, avoiding gerrit.


   --- To add a toy:

    # Edit the three .config-* files to enable the toy you want for the targets
    # you want it on, and regenerate the generated files:
    ./regenerate.sh

    # Edit the relevant `srcs` below, depending on where the toy should be
    # available.

    # If you just want to use the toy via "toybox x" rather than "x", you can
    # stop now. If you want this toy to have a symbolic link in /system/bin,
    # add the toy to symlinks.

*/

cc_defaults {
    name: "toybox-defaults",
    srcs: [
        "lib/args.c",
        "lib/commas.c",
        "lib/dirtree.c",
        "lib/env.c",
        "lib/help.c",
        "lib/lib.c",
        "lib/linestack.c",
        "lib/llist.c",
        "lib/net.c",
        "lib/portability.c",
        "lib/tty.c",
        "lib/xwrap.c",
        "main.c",
        "toys/lsb/gzip.c",
        "toys/lsb/hostname.c",
        "toys/lsb/md5sum.c",
        "toys/lsb/mktemp.c",
        "toys/lsb/seq.c",
        "toys/net/microcom.c",
        "toys/other/dos2unix.c",
        "toys/other/readlink.c",
        "toys/other/realpath.c",
        "toys/other/setsid.c",
        "toys/other/stat.c",
        "toys/other/timeout.c",
        "toys/other/truncate.c",
        "toys/other/which.c",
        "toys/other/xxd.c",
        "toys/other/yes.c",
        "toys/pending/dd.c",
        "toys/pending/diff.c",
        "toys/pending/expr.c",
        "toys/pending/getopt.c",
        "toys/pending/tr.c",
        "toys/posix/basename.c",
        "toys/posix/cat.c",
        "toys/posix/chmod.c",
        "toys/posix/cmp.c",
        "toys/posix/comm.c",
        "toys/posix/cp.c",
        "toys/posix/cut.c",
        "toys/posix/date.c",
        "toys/posix/dirname.c",
        "toys/posix/du.c",
        "toys/posix/echo.c",
        "toys/posix/env.c",
        "toys/posix/find.c",
        "toys/posix/getconf.c",
        "toys/posix/grep.c",
        "toys/posix/head.c",
        "toys/posix/id.c",
        "toys/posix/ln.c",
        "toys/posix/ls.c",
        "toys/posix/mkdir.c",
        "toys/posix/od.c",
        "toys/posix/paste.c",
        "toys/posix/patch.c",
        "toys/posix/pwd.c",
        "toys/posix/rm.c",
        "toys/posix/rmdir.c",
        "toys/posix/sed.c",
        "toys/posix/sleep.c",
        "toys/posix/sort.c",
        "toys/posix/tail.c",
        "toys/posix/tar.c",
        "toys/posix/tee.c",
        "toys/posix/test.c",
        "toys/posix/touch.c",
        "toys/posix/true.c",
        "toys/posix/uname.c",
        "toys/posix/uniq.c",
        "toys/posix/wc.c",
        "toys/posix/xargs.c",
    ],

    cflags: [
        "-std=gnu11",
        "-Os",
        "-Wall",
        "-Werror",
        "-Wno-char-subscripts",
        "-Wno-deprecated-declarations",
        "-Wno-missing-field-initializers",
        "-Wno-pointer-arith",
        "-Wno-sign-compare",
        "-Wno-string-plus-int",
        "-Wno-unused-parameter",
        "-Wno-unused-variable",
        "-funsigned-char",
        "-ffunction-sections",
        "-fdata-sections",
        "-fno-asynchronous-unwind-tables",
        "-DTOYBOX_VENDOR=\"-android\"",
    ],

    // This doesn't actually prevent us from dragging in libc++ at runtime
    // because libnetd_client.so is C++.
    stl: "none",

    shared_libs: [
        "libcrypto",
        "libz",
    ],

    target: {
        linux_glibc: {
            local_include_dirs: ["android/linux"],
        },

        darwin: {
            local_include_dirs: ["android/mac"],
            cflags: [
                // You can't have toybox cp(1) on macOS before 10.13.
                "-mmacosx-version-min=10.13",
                "-UMACOSX_DEPLOYMENT_TARGET",
                "-DMACOSX_DEPLOYMENT_TARGET=10.13",
                // macOS' getgroups(3) signature differs.
                "-Wno-pointer-sign",
                // diff.c defines MIN and MAX which (only on macOS) we're
                // also getting from <sys/param.h>.
                "-Wno-macro-redefined",
            ],
        },

        linux: {
            srcs: [
                "toys/posix/ps.c",
                "toys/other/taskset.c",
            ],
        },

        android: {
            local_include_dirs: ["android/device"],
            srcs: [
                "toys/android/getenforce.c",
                "toys/android/load_policy.c",
                "toys/android/log.c",
                "toys/android/restorecon.c",
                "toys/android/runcon.c",
                "toys/android/sendevent.c",
                "toys/android/setenforce.c",
                "toys/lsb/dmesg.c",
                "toys/lsb/killall.c",
                "toys/lsb/mknod.c",
                "toys/lsb/mount.c",
                "toys/lsb/pidof.c",
                "toys/lsb/sync.c",
                "toys/lsb/umount.c",
                "toys/net/ifconfig.c",
                "toys/net/netcat.c",
                "toys/net/netstat.c",
                "toys/net/ping.c",
                "toys/net/rfkill.c",
                "toys/net/tunctl.c",
                "toys/other/acpi.c",
                "toys/other/base64.c",
                "toys/other/blkid.c",
                "toys/other/blockdev.c",
                "toys/other/chcon.c",
                "toys/other/chroot.c",
                "toys/other/chrt.c",
                "toys/other/clear.c",
                "toys/other/devmem.c",
                "toys/other/fallocate.c",
                "toys/other/flock.c",
                "toys/other/fmt.c",
                "toys/other/free.c",
                "toys/other/freeramdisk.c",
                "toys/other/fsfreeze.c",
                "toys/other/fsync.c",
                "toys/other/help.c",
                "toys/other/hwclock.c",
                "toys/other/i2ctools.c",
                "toys/other/inotifyd.c",
                "toys/other/insmod.c",
                "toys/other/ionice.c",
                "toys/other/losetup.c",
                "toys/other/lsattr.c",
                "toys/other/lsmod.c",
                "toys/other/lspci.c",
                "toys/other/lsusb.c",
                "toys/other/makedevs.c",
                "toys/other/mkswap.c",
                "toys/other/modinfo.c",
                "toys/other/mountpoint.c",
                "toys/other/nbd_client.c",
                "toys/other/nsenter.c",
                "toys/other/partprobe.c",
                "toys/other/pivot_root.c",
                "toys/other/pmap.c",
                "toys/other/printenv.c",
                "toys/other/pwdx.c",
                "toys/other/rev.c",
                "toys/other/rmmod.c",
                "toys/other/setfattr.c",
                "toys/other/swapoff.c",
                "toys/other/swapon.c",
                "toys/other/sysctl.c",
                "toys/other/tac.c",
                "toys/other/uptime.c",
                "toys/other/usleep.c",
                "toys/other/uuidgen.c",
                "toys/other/vconfig.c",
                "toys/other/vmstat.c",
                "toys/other/watch.c",
                "toys/pending/getfattr.c",
                "toys/pending/lsof.c",
                "toys/pending/modprobe.c",
                "toys/pending/more.c",
                "toys/pending/readelf.c",
                "toys/pending/stty.c",
                "toys/pending/traceroute.c",
                "toys/pending/vi.c",
                "toys/posix/cal.c",
                "toys/posix/chgrp.c",
                "toys/posix/cksum.c",
                "toys/posix/cpio.c",
                "toys/posix/df.c",
                "toys/posix/expand.c",
                "toys/posix/false.c",
                "toys/posix/file.c",
                "toys/posix/iconv.c",
                "toys/posix/kill.c",
                "toys/posix/mkfifo.c",
                "toys/posix/nice.c",
                "toys/posix/nl.c",
                "toys/posix/nohup.c",
                "toys/posix/printf.c",
                "toys/posix/renice.c",
                "toys/posix/split.c",
                "toys/posix/strings.c",
                "toys/posix/time.c",
                "toys/posix/tty.c",
                "toys/posix/ulimit.c",
                "toys/posix/unlink.c",
                "toys/posix/uudecode.c",
                "toys/posix/uuencode.c",
            ],

            // not usable on Android?: freeramdisk fsfreeze makedevs nbd-client
            //                         partprobe pivot_root pwdx rev rfkill vconfig
            // currently prefer external/e2fsprogs: blkid
            // currently prefer external/iputils: ping ping6

            symlinks: [
                "acpi",
                "base64",
                "basename",
                "blockdev",
                "cal",
                "cat",
                "chattr",
                "chcon",
                "chgrp",
                "chmod",
                "chown",
                "chroot",
                "chrt",
                "cksum",
                "clear",
                "comm",
                "cmp",
                "cp",
                "cpio",
                "cut",
                "date",
                "dd",
                "devmem",
                "df",
                "diff",
                "dirname",
                "dmesg",
                "dos2unix",
                "du",
                "echo",
                "egrep",
                "env",
                "expand",
                "expr",
                "fallocate",
                "false",
                "fgrep",
                "file",
                "find",
                "flock",
                "fmt",
                "free",
                "fsync",
                "getconf",
                "getenforce",
                "grep",
                "groups",
                "gunzip",
                "gzip",
                "head",
                "hostname",
                "hwclock",
                "i2cdetect",
                "i2cdump",
                "i2cget",
                "i2cset",
                "iconv",
                "id",
                "ifconfig",
                "inotifyd",
                "insmod",
                "install",
                "ionice",
                "iorenice",
                "kill",
                "killall",
                "load_policy",
                "ln",
                "log",
                "logname",
                "losetup",
                "ls",
                "lsattr",
                "lsmod",
                "lsof",
                "lspci",
                "lsusb",
                "md5sum",
                "mkdir",
                "mkfifo",
                "mknod",
                "mkswap",
                "mktemp",
                "microcom",
                "modinfo",
                "more",
                "mount",
                "mountpoint",
                "mv",
                "nc",
                "netcat",
                "netstat",
                "nice",
                "nl",
                "nohup",
                "nproc",
                "nsenter",
                "od",
                "paste",
                "patch",
                "pgrep",
                "pidof",
                "pkill",
                "pmap",
                "printenv",
                "printf",
                "ps",
                "pwd",
                "readelf",
                "readlink",
                "realpath",
                "renice",
                "restorecon",
                "rm",
                "rmdir",
                "rmmod",
                "runcon",
                "sed",
                "sendevent",
                "seq",
                "setenforce",
                "setsid",
                "sha1sum",
                "sha224sum",
                "sha256sum",
                "sha384sum",
                "sha512sum",
                "sleep",
                "sort",
                "split",
                "stat",
                "strings",
                "stty",
                "swapoff",
                "swapon",
                "sync",
                "sysctl",
                "tac",
                "tail",
                "tar",
                "taskset",
                "tee",
                "test",
                "time",
                "timeout",
                "top",
                "touch",
                "tr",
                "true",
                "truncate",
                "tty",
                "ulimit",
                "umount",
                "uname",
                "uniq",
                "unix2dos",
                "unlink",
                "unshare",
                "uptime",
                "usleep",
                "uudecode",
                "uuencode",
                "uuidgen",
                "vmstat",
                "watch",
                "wc",
                "which",
                "whoami",
                "xargs",
                "xxd",
                "yes",
                "zcat",
            ],

            shared_libs: [
                "liblog",
                "libprocessgroup",
                "libselinux",
            ],
        },
    },
}

//###########################################
// toybox for /system, /vendor, and /recovery
//###########################################

cc_binary {
    name: "toybox",
    defaults: ["toybox-defaults"],
    host_supported: true,
    recovery_available: true,
}

cc_binary {
    name: "toybox_vendor",
    defaults: ["toybox-defaults"],
    vendor: true,
}

//###########################################
// Running the toybox tests
//###########################################

sh_test {
    name: "toybox-tests",
    src: "run-tests-on-android.sh",
    filename: "run-tests-on-android.sh",
    test_suites: ["general-tests"],
    host_supported: true,
    device_supported: false,
    test_config: "toybox-tests.xml",
    data: [
        "tests/**/*",
        "scripts/runtest.sh",
    ],
}

