/*
   --- 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.

*/

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/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/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/cpio.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/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/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/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/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/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/file.c",
    "toys/posix/iconv.c",
    "toys/posix/kill.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",
    "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",
    "rtcwake",
    "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",
    "uclampset",
    "ulimit",
    "umount",
    "uname",
    "uniq",
    "unix2dos",
    "unlink",
    "unshare",
    "uptime",
    "usleep",
    "uudecode",
    "uuencode",
    "uuidgen",
    "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-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: {
        linux_glibc: {
            local_include_dirs: ["android/linux"],
        },

        linux_bionic: {
            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",
            ],
            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",

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

    target: {
        android: {
            shared_libs: [
                "liblog",
                "libprocessgroup",
                "libselinux",
            ],
            symlinks: toybox_symlinks,
        },
    },
}

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",
    ],
}
