/*
   --- 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:
    ./post_update.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` below.

*/

package {
    default_applicable_licenses: ["external_toybox_license"],
}

license {
    name: "external_toybox_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-0BSD",
        "SPDX-license-identifier-CC0-1.0",
        "SPDX-license-identifier-Unlicense",
        "legacy_unencumbered",
    ],
    license_text: [
        "LICENSE",
    ],
}

all_srcs = [
    "lib/args.c",
    "lib/commas.c",
    "lib/dirtree.c",
    "lib/elf.c",
    "lib/env.c",
    "lib/hash.c",
    "lib/lib.c",
    "lib/llist.c",
    "lib/net.c",
    "lib/portability.c",
    "lib/tty.c",
    "lib/utf8.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/getopt.c",
    "toys/other/readlink.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/diff.c",
    "toys/pending/expr.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/cpio.c",
    "toys/posix/cut.c",
    "toys/posix/date.c",
    "toys/posix/dd.c",
    "toys/posix/dirname.c",
    "toys/posix/du.c",
    "toys/posix/echo.c",
    "toys/posix/env.c",
    "toys/posix/file.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/nl.c",
    "toys/posix/od.c",
    "toys/posix/paste.c",
    "toys/posix/patch.c",
    "toys/posix/printf.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",
]

linux_srcs = [
    "toys/posix/ps.c",
    "toys/other/flock.c",
    "toys/other/taskset.c",
]

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/blkdiscard.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/fmt.c",
    "toys/other/free.c",
    "toys/other/freeramdisk.c",
    "toys/other/fsfreeze.c",
    "toys/other/fsync.c",
    "toys/other/gpiod.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/lsusb.c",
    "toys/other/makedevs.c",
    "toys/other/memeater.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/readelf.c",
    "toys/other/rev.c",
    "toys/other/rmmod.c",
    "toys/other/rtcwake.c",
    "toys/other/setfattr.c",
    "toys/other/swapoff.c",
    "toys/other/swapon.c",
    "toys/other/sysctl.c",
    "toys/other/tac.c",
    "toys/other/uclampset.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/brctl.c",
    "toys/pending/getfattr.c",
    "toys/pending/lsof.c",
    "toys/pending/modprobe.c",
    "toys/pending/more.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/df.c",
    "toys/posix/expand.c",
    "toys/posix/false.c",
    "toys/posix/iconv.c",
    "toys/posix/kill.c",
    "toys/posix/logger.c",
    "toys/posix/mkfifo.c",
    "toys/posix/nice.c",
    "toys/posix/nohup.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",
]

toybox_symlinks = [
    "[",
    "acpi",
    "base64",
    "basename",
    "blockdev",
    "brctl",
    "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",
    "getfattr",
    "getopt",
    "gpiodetect",
    "gpiofind",
    "gpioget",
    "gpioinfo",
    "gpioset",
    "grep",
    "groups",
    "gunzip",
    "gzip",
    "head",
    "hostname",
    "hwclock",
    "i2cdetect",
    "i2cdump",
    "i2cget",
    "i2cset",
    "i2ctransfer",
    "iconv",
    "id",
    "ifconfig",
    "inotifyd",
    "insmod",
    "install",
    "ionice",
    "iorenice",
    "kill",
    "killall",
    "load_policy",
    "ln",
    "log",
    "logger",
    "logname",
    "losetup",
    "ls",
    "lsattr",
    "lsmod",
    "lsof",
    "lspci",
    "lsusb",
    "md5sum",
    "memeater",
    "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",
    "rtcwake",
    "runcon",
    "sed",
    "sendevent",
    "seq",
    "setenforce",
    "setfattr",
    "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",
    "uclampset",
    "ulimit",
    "umount",
    "uname",
    "uniq",
    "unix2dos",
    "unlink",
    "unshare",
    "uptime",
    "usleep",
    "uudecode",
    "uuencode",
    "uuidgen",
    "vi",
    "vmstat",
    "watch",
    "wc",
    "which",
    "whoami",
    "xargs",
    "xxd",
    "yes",
    "zcat",
]

cc_defaults {
    name: "toybox-defaults",
    srcs: all_srcs,

    cflags: [
        "-Os",
        "-Wall",
        "-Werror",
        "-Wno-char-subscripts",
        "-Wno-deprecated-declarations",
        "-Wno-invalid-source-encoding",
        "-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\"",
    ],

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

        darwin: {
            local_include_dirs: ["android/mac"],
            cflags: [
                // 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",
            ],
            ldflags: [
                "-Wl,-dead_strip",
            ],
        },

        linux: {
            srcs: linux_srcs,
        },

        android: {
            local_include_dirs: ["android/device"],
            srcs: device_srcs,
        },
    },
}

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

cc_defaults {
    name: "toybox-shared-defaults",
    defaults: ["toybox-defaults"],

    // This doesn't actually prevent us from dragging in libc++ at runtime
    // on the device because libnetd_client.so is C++, but it improves host
    // startup time.
    stl: "none",

    target: {
        android: {
            shared_libs: [
                "libcrypto",
                "liblog",
                "libprocessgroup",
                "libselinux",
                "libz",
            ],
            symlinks: toybox_symlinks,
        },
        host: {
            static_libs: [
                "libcrypto",
                "libz",
            ],
        },
    },
}

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

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

//###########################################
// Static toybox binaries for legacy devices
//###########################################

cc_binary {
    name: "toybox-static",
    defaults: ["toybox-defaults"],
    static_executable: true,
    compile_multilib: "both",
    multilib: {
        lib32: {
            suffix: "32",
        },
        lib64: {
            suffix: "64",
        },
    },
    stl: "libc++_static",
    static_libs: [
        "libc",
        "libm",
        "libz",
        "libbase",
        "libcgrouprc",
        "libcgrouprc_format",
        "libcrypto_static",
        "liblog",
        "libprocessgroup",
        "libselinux",
    ],
    dist: {
        targets: [
            "sdk",
        ],
    },
}

//###########################################
// 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,
    require_root: true,
    data: [
        "tests/**/*",
        "scripts/runtest.sh",
    ],
}

cc_test {
    name: "toybox-gtests",
    compile_multilib: "first",
    srcs: [
        "toybox-gtests.cpp",
    ],
    static_libs: [
        "libbase",
        "liblog",
    ],
    test_suites: ["device-tests"],
    require_root: true,
    data: [
        "tests/**/*",
        "scripts/runtest.sh",
    ],
}
