# Copyright (c) Huawei Technologies Co., Ltd. 2020-2022. All rights reserved. # Must do steps below manually after getting the sources code # from official website: # 1. make defconfig or make menuconfig # ==> To generate .config file. # 2. NOBUILD=1 scripts/make.sh # ==> To generate neccesary files like heades in generated # direcotory. # To add a toy: # 1. Edit .config to enable the toy you want to add. # 2. Edit toybox'sources below if neccesary. # e. Add th toy to the symlinks. if (defined(ohos_lite)) { executable("toybox") { # from middleware file build.sh sources = [ "lib/args.c", "lib/commas.c", "lib/deflate.c", "lib/dirtree.c", "lib/env.c", "lib/help.c", "lib/lib.c", "lib/linestack.c", "lib/llist.c", "lib/net.c", "lib/password.c", "lib/portability.c", "lib/tty.c", "lib/xwrap.c", "main.c", "toys/lsb/dmesg.c", "toys/lsb/gzip.c", "toys/lsb/hostname.c", "toys/lsb/killall.c", "toys/lsb/md5sum.c", "toys/lsb/mknod.c", "toys/lsb/mktemp.c", "toys/lsb/mount.c", "toys/lsb/passwd.c", "toys/lsb/pidof.c", "toys/lsb/seq.c", "toys/lsb/su.c", "toys/lsb/sync.c", "toys/lsb/umount.c", "toys/net/ftpget.c", "toys/net/ifconfig.c", "toys/net/microcom.c", "toys/net/netcat.c", "toys/net/netstat.c", "toys/net/ping.c", "toys/net/rfkill.c", "toys/net/sntp.c", "toys/net/tunctl.c", "toys/other/acpi.c", "toys/other/ascii.c", "toys/other/base64.c", "toys/other/blkid.c", "toys/other/blockdev.c", "toys/other/bzcat.c", "toys/other/chroot.c", "toys/other/chrt.c", "toys/other/chvt.c", "toys/other/clear.c", "toys/other/count.c", "toys/other/devmem.c", "toys/other/dos2unix.c", "toys/other/eject.c", "toys/other/factor.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/hexedit.c", "toys/other/hwclock.c", "toys/other/i2ctools.c", "toys/other/inotifyd.c", "toys/other/insmod.c", "toys/other/ionice.c", "toys/other/login.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/mcookie.c", "toys/other/mix.c", "toys/other/mkpasswd.c", "toys/other/mkswap.c", "toys/other/modinfo.c", "toys/other/mountpoint.c", "toys/other/nbd_client.c", "toys/other/nsenter.c", "toys/other/oneit.c", "toys/other/partprobe.c", "toys/other/pivot_root.c", "toys/other/pmap.c", "toys/other/printenv.c", "toys/other/pwdx.c", "toys/other/readahead.c", "toys/other/readlink.c", "toys/other/realpath.c", "toys/other/reboot.c", "toys/other/reset.c", "toys/other/rev.c", "toys/other/rmmod.c", "toys/other/setfattr.c", "toys/other/setsid.c", "toys/other/shred.c", "toys/other/stat.c", "toys/other/swapoff.c", "toys/other/swapon.c", "toys/other/switch_root.c", "toys/other/sysctl.c", "toys/other/tac.c", "toys/other/taskset.c", "toys/other/timeout.c", "toys/other/truncate.c", "toys/other/uptime.c", "toys/other/usleep.c", "toys/other/uuidgen.c", "toys/other/vconfig.c", "toys/other/vmstat.c", "toys/other/w.c", "toys/other/watch.c", "toys/other/which.c", "toys/other/xxd.c", "toys/other/yes.c", "toys/pending/bootchartd.c", "toys/pending/dd.c", "toys/pending/diff.c", "toys/pending/getty.c", "toys/pending/mdev.c", "toys/pending/more.c", "toys/pending/route.c", "toys/pending/telnetd.c", "toys/posix/basename.c", "toys/posix/cal.c", "toys/posix/cat.c", "toys/posix/chgrp.c", "toys/posix/chmod.c", "toys/posix/cksum.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/df.c", "toys/posix/dirname.c", "toys/posix/du.c", "toys/posix/echo.c", "toys/posix/env.c", "toys/posix/expand.c", "toys/posix/false.c", "toys/posix/file.c", "toys/posix/find.c", "toys/posix/getconf.c", "toys/posix/grep.c", "toys/posix/head.c", "toys/posix/iconv.c", "toys/posix/id.c", "toys/posix/kill.c", "toys/posix/link.c", "toys/posix/ln.c", "toys/posix/logger.c", "toys/posix/ls.c", "toys/posix/mkdir.c", "toys/posix/mkfifo.c", "toys/posix/nice.c", "toys/posix/nl.c", "toys/posix/nohup.c", "toys/posix/od.c", "toys/posix/paste.c", "toys/posix/patch.c", "toys/posix/printf.c", "toys/posix/ps.c", "toys/posix/pwd.c", "toys/posix/renice.c", "toys/posix/rm.c", "toys/posix/rmdir.c", "toys/posix/sed.c", "toys/posix/sleep.c", "toys/posix/sort.c", "toys/posix/split.c", "toys/posix/strings.c", "toys/posix/tail.c", "toys/posix/tar.c", "toys/posix/tee.c", "toys/posix/test.c", "toys/posix/time.c", "toys/posix/touch.c", "toys/posix/true.c", "toys/posix/tty.c", "toys/posix/ulimit.c", "toys/posix/uname.c", "toys/posix/uniq.c", "toys/posix/unlink.c", "toys/posix/uudecode.c", "toys/posix/uuencode.c", "toys/posix/wc.c", "toys/posix/who.c", "toys/posix/xargs.c", ] include_dirs = [ "./" ] defines = [ "_DEFAULT_SOURCE" ] configs -= [ "//build/lite/config:language_c" ] cflags_c = [ "-std=gnu11", "-Wall", "-Wundef", "-Wno-char-subscripts", "-Wno-implicit-function-declaration", "-Wno-unused-variable", "-Wno-unused-value", "-Wno-incompatible-pointer-types", "-Wno-int-conversion", "-Wno-sign-compare", "-Wno-format", "-Wno-unused-result", "-Os", "-ffunction-sections", "-fdata-sections", "-fno-asynchronous-unwind-tables", "-fPIE", "-funsigned-char", ] ldflags = [ "-pie", "-Wl,-z,relro", "-Wl,-z,now", "-Wl,-z,noexecstack", "-lm", "-lcrypt", ] } cmd_long_path = [ "bin/chmod", "bin/chown", "bin/chroot", "bin/chrt", "bin/chvt", "bin/cksum", "bin/clear", "bin/cmp", "bin/comm", "bin/count", "bin/cp", "bin/cpio", "bin/crc32", "bin/cut", "bin/date", "bin/devmem", "bin/df", "bin/diff", "bin/dirname", "bin/dmesg", "bin/dnsdomainname", "bin/dos2unix", "bin/du", "bin/echo", "bin/egrep", "bin/eject", "bin/env", "bin/expand", "bin/factor", "bin/fallocate", "bin/false", "bin/fgrep", "bin/file", "bin/find", "bin/flock", "bin/fmt", "bin/free", "bin/freeramdisk", "bin/fsfreeze", "bin/fstype", "bin/fsync", "bin/ftpget", "bin/ftpput", "bin/getconf", "sbin/getty", "bin/grep", "bin/groups", "bin/gunzip", "bin/halt", "bin/head", "bin/help", "bin/hexedit", "bin/hostname", "bin/hwclock", "bin/i2cdetect", "bin/i2cdump", "bin/i2cget", "bin/i2cset", "bin/iconv", "bin/id", "bin/ifconfig", "bin/inotifyd", "bin/insmod", "bin/install", "bin/ionice", "bin/iorenice", "bin/iotop", "bin/kill", "bin/killall", "bin/killall5", "bin/link", "bin/ln", "bin/logger", "bin/login", "bin/logname", "bin/losetup", "bin/ls", "bin/lsattr", "bin/lsmod", "bin/lspci", "bin/lsusb", "bin/makedevs", "bin/mcookie", "bin/md5sum", "bin/microcom", "bin/mix", "bin/mkdir", "bin/mkfifo", "bin/mknod", "bin/mkpasswd", "bin/mkswap", "bin/mktemp", "bin/modinfo", "bin/more", "bin/mount", "bin/mountpoint", "bin/mv", "bin/nbd-client", "bin/nc", "bin/netcat", "bin/netstat", "bin/nice", "bin/nl", "bin/nohup", "bin/nproc", "bin/nsenter", "bin/od", "bin/oneit", "bin/partprobe", "bin/passwd", "bin/paste", "bin/patch", "bin/pgrep", "bin/pidof", "bin/ping", "bin/ping6", "bin/pivot_root", "bin/pkill", "bin/pmap", "bin/poweroff", "bin/printenv", "bin/printf", "bin/prlimit", "bin/ps", "bin/pwd", "bin/pwdx", "bin/readahead", "bin/readlink", "bin/realpath", "bin/reboot", "bin/renice", "bin/reset", "bin/rev", "bin/rfkill", "bin/rm", "bin/rmdir", "bin/rmmod", "bin/sed", "bin/seq", "bin/setfattr", "bin/setsid", "bin/shalsum", "bin/shred", "bin/sleep", "bin/sntp", "bin/sort", "bin/split", "bin/stat", "bin/strings", "bin/su", "bin/swapoff", "bin/swapon", "bin/switch_root", "bin/sync", "bin/sysctrl", "bin/tac", "bin/tail", "bin/tar", "bin/taskset", "bin/tee", "bin/test", "bin/time", "bin/timeout", "bin/top", "bin/touch", "bin/true", "bin/truncate", "bin/tty", "bin/tunctl", "bin/ulimit", "bin/umount", "bin/uname", "bin/uniq", "bin/unix2dos", "bin/unlink", "bin/unshare", "bin/uptime", "bin/usleep", "bin/uudecode", "bin/uuencode", "bin/uuidgen", "bin/vconfig", "bin/vmstat", "bin/w", "bin/watch", "bin/wc", "bin/which", "bin/who", "bin/whoami", "bin/xargs", "bin/xxd", "bin/yes", "bin/zcat", "bin/mdev", "bin/telnetd", "bin/route", ] foreach(path, cmd_long_path) { exec_script("install.py", [ "--long_path", path, "--out_dir", rebase_path("$root_out_dir"), ]) } } else { import("//build/ohos.gni") ohos_executable("toybox") { sources = [ "lib/args.c", "lib/commas.c", "lib/deflate.c", "lib/dirtree.c", "lib/env.c", "lib/help.c", "lib/lib.c", "lib/linestack.c", "lib/llist.c", "lib/net.c", "lib/password.c", "lib/portability.c", "lib/tty.c", "lib/xwrap.c", "main.c", "toys/lsb/dmesg.c", "toys/lsb/gzip.c", "toys/lsb/hostname.c", "toys/lsb/killall.c", "toys/lsb/md5sum.c", "toys/lsb/mknod.c", "toys/lsb/mktemp.c", "toys/lsb/mount.c", "toys/lsb/passwd.c", "toys/lsb/pidof.c", "toys/lsb/seq.c", "toys/lsb/su.c", "toys/lsb/sync.c", "toys/lsb/umount.c", "toys/net/ftpget.c", "toys/net/ifconfig.c", "toys/net/microcom.c", "toys/net/netcat.c", "toys/net/netstat.c", "toys/net/ping.c", "toys/net/rfkill.c", "toys/net/sntp.c", "toys/net/tunctl.c", "toys/other/acpi.c", "toys/other/ascii.c", "toys/other/base64.c", "toys/other/blkid.c", "toys/other/blockdev.c", "toys/other/bzcat.c", "toys/other/chroot.c", "toys/other/chrt.c", "toys/other/chvt.c", "toys/other/clear.c", "toys/other/count.c", "toys/other/devmem.c", "toys/other/dos2unix.c", "toys/other/eject.c", "toys/other/factor.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/hexedit.c", "toys/other/hwclock.c", "toys/other/i2ctools.c", "toys/other/inotifyd.c", "toys/other/insmod.c", "toys/other/ionice.c", "toys/other/login.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/mcookie.c", "toys/other/mix.c", "toys/other/mkpasswd.c", "toys/other/mkswap.c", "toys/other/modinfo.c", "toys/other/mountpoint.c", "toys/other/nbd_client.c", "toys/other/nsenter.c", "toys/other/oneit.c", "toys/other/partprobe.c", "toys/other/pivot_root.c", "toys/other/pmap.c", "toys/other/printenv.c", "toys/other/pwdx.c", "toys/other/readahead.c", "toys/other/readlink.c", "toys/other/realpath.c", "toys/other/reboot.c", "toys/other/reset.c", "toys/other/rev.c", "toys/other/rmmod.c", "toys/other/setfattr.c", "toys/other/setsid.c", "toys/other/shred.c", "toys/other/stat.c", "toys/other/swapoff.c", "toys/other/swapon.c", "toys/other/switch_root.c", "toys/other/sysctl.c", "toys/other/tac.c", "toys/other/taskset.c", "toys/other/timeout.c", "toys/other/truncate.c", "toys/other/uptime.c", "toys/other/usleep.c", "toys/other/uuidgen.c", "toys/other/vconfig.c", "toys/other/vmstat.c", "toys/other/w.c", "toys/other/watch.c", "toys/other/which.c", "toys/other/xxd.c", "toys/other/yes.c", "toys/pending/bootchartd.c", "toys/pending/dd.c", "toys/pending/diff.c", "toys/pending/getty.c", "toys/pending/mdev.c", "toys/pending/more.c", "toys/pending/route.c", "toys/pending/telnetd.c", "toys/posix/basename.c", "toys/posix/cal.c", "toys/posix/cat.c", "toys/posix/chgrp.c", "toys/posix/chmod.c", "toys/posix/cksum.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/df.c", "toys/posix/dirname.c", "toys/posix/du.c", "toys/posix/echo.c", "toys/posix/env.c", "toys/posix/expand.c", "toys/posix/false.c", "toys/posix/file.c", "toys/posix/find.c", "toys/posix/getconf.c", "toys/posix/grep.c", "toys/posix/head.c", "toys/posix/iconv.c", "toys/posix/id.c", "toys/posix/kill.c", "toys/posix/link.c", "toys/posix/ln.c", "toys/posix/logger.c", "toys/posix/ls.c", "toys/posix/mkdir.c", "toys/posix/mkfifo.c", "toys/posix/nice.c", "toys/posix/nl.c", "toys/posix/nohup.c", "toys/posix/od.c", "toys/posix/paste.c", "toys/posix/patch.c", "toys/posix/printf.c", "toys/posix/ps.c", "toys/posix/pwd.c", "toys/posix/renice.c", "toys/posix/rm.c", "toys/posix/rmdir.c", "toys/posix/sed.c", "toys/posix/sleep.c", "toys/posix/sort.c", "toys/posix/split.c", "toys/posix/strings.c", "toys/posix/tail.c", "toys/posix/tar.c", "toys/posix/tee.c", "toys/posix/test.c", "toys/posix/time.c", "toys/posix/touch.c", "toys/posix/true.c", "toys/posix/tty.c", "toys/posix/ulimit.c", "toys/posix/uname.c", "toys/posix/uniq.c", "toys/posix/unlink.c", "toys/posix/uudecode.c", "toys/posix/uuencode.c", "toys/posix/wc.c", "toys/posix/who.c", "toys/posix/xargs.c", ] include_dirs = [ "./" ] deps = [] if (build_selinux) { sources += [ "toys/other/chcon.c" ] include_dirs += [ "//third_party/selinux/libselinux/include" ] deps += [ "//third_party/selinux:libselinux" ] } defines = [ "_DEFAULT_SOURCE" ] cflags_c = [ "-std=gnu11", "-Wall", "-Wundef", "-Wno-char-subscripts", "-Wno-implicit-function-declaration", "-Wno-unused-variable", "-Wno-unused-value", "-Wno-incompatible-pointer-types", "-Wno-int-conversion", "-Wno-sign-compare", "-Wno-format", "-Wno-unused-result", "-Os", "-ffunction-sections", "-fdata-sections", "-fno-asynchronous-unwind-tables", "-fPIE", "-funsigned-char", "-Wno-string-plus-int", "-Wno-tautological-constant-compare", "-Wno-string-conversion", ] ldflags = [ "-pie", "-Wl,-z,relro", "-Wl,-z,now", "-Wl,-z,noexecstack", "-lm", "-lcrypt", ] if (build_selinux) { cflags_c += [ "-D_GUN_SOURCE", "-DUSE_PCRE2", "-w", "-DWITH_SELINUX", "-DCUSTOM_GET_CONTEXT", ] } symlink_target_name = [ "base64", "basename", "blockdev", "cal", "cat", "chgrp", "chmod", "chown", "chroot", "chrt", "chvt", "cksum", "clear", "cmp", "comm", "count", "cp", "cpio", "crc32", "cut", "date", "dd", "devmem", "df", "diff", "dirname", "dmesg", "dnsdomainname", "dos2unix", "du", "echo", "egrep", "eject", "env", "expand", "expr", "factor", "fallocate", "false", "fgrep", "file", "find", "flock", "fmt", "free", "freeramdisk", "fsfreeze", "fstype", "fsync", "ftpget", "ftpput", "getconf", "grep", "groups", "gunzip", "gzip", "halt", "head", "help", "hexedit", "hostname", "hwclock", "i2cdetect", "i2cdump", "i2cget", "i2cset", "iconv", "id", "ifconfig", "inotifyd", "insmod", "install", "ionice", "iorenice", "iotop", "kill", "killall", "killall5", "link", "ln", "logger", "login", "logname", "losetup", "ls", "lsattr", "lsmod", "lspci", "lsusb", "makedevs", "mcookie", "md5sum", "mdev", "microcom", "mix", "mkdir", "mkfifo", "mknod", "mkpasswd", "mkswap", "mktemp", "modinfo", "more", "mount", "mountpoint", "mv", "nbd-client", "netcat", "netstat", "nice", "nl", "nohup", "nproc", "nsenter", "od", "oneit", "partprobe", "passwd", "paste", "patch", "pgrep", "pidof", "ping", "ping6", "pivot_root", "pkill", "pmap", "poweroff", "printenv", "printf", "prlimit", "ps", "pwd", "pwdx", "readahead", "readlink", "realpath", "renice", "reset", "restorecon", "rev", "rfkill", "rm", "rmdir", "rmmod", "route", "runcon", "sed", "sendevent", "seq", "setfattr", "setsid", "sha1sum", "sha224sum", "sha256sum", "sha384sum", "sha512sum", "shalsum", "shred", "sleep", "sntp", "sort", "split", "stat", "strings", "su", "swapoff", "swapon", "switch_root", "sync", "sysctl", "sysctrl", "tac", "tail", "tar", "taskset", "tee", "test", "time", "timeout", "top", "touch", "tr", "true", "truncate", "tty", "tunctl", "ulimit", "umount", "uname", "uniq", "unix2dos", "unlink", "unshare", "uptime", "usleep", "uudecode", "uuencode", "uuidgen", "vconfig", "vmstat", "w", "watch", "wc", "which", "who", "whoami", "xargs", "xxd", "yes", "zcat", ] if (build_selinux) { symlink_target_name -= [ "restorecon" ] } part_name = "init" install_images = [ "system", "updater", ] install_enable = true } }