# Maintainer: Alexander Hill SRC_HASH="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" SRC_NAME="busybox" SRC_PATCHES=" a35fa3d6687d7cbcaa2d8675208392086d56df0c8719ddbde9f46373b189d0d4 .config " SRC_REVISION=4 SRC_URL="https://busybox.net/downloads/busybox-1.36.1.tar.bz2" SRC_VERSION="1.36.1" build() { tar xf ../$SRC_FILENAME cd busybox-$SRC_VERSION/ cp ../.config . # NOTE: Like we did with musl before, we don't set CROSS_COMPILE because # LLVM is smart and doesn't need a compiler to cross-compile code. # With that said, Busybox uses Kbuild, which hard-codes variables like # CC to GNU-based tools, which is not what we want. The following sed # hack should do the trick, but I wonder if there's a better solution. # ~ahill sed -i "s/?*= \$(CROSS_COMPILE)/?= /" Makefile # NOTE: Apparently, Busybox fails to properly check for ncurses since the # test compiles a main function without a return value type, causing # the compilation to fail. This patch fixes the issue by making the # returned type "void". This doesn't actually affect the build, but # I'm not sure where else to put this. ~ahill sed -i "s/main()/void main()/" scripts/kconfig/lxdialog/check-lxdialog.sh # NOTE: AR, CC, and HOSTCC are required here due to GNU dependencies. ~ahill make -O -j $TT_PROCS AR=ar CC=clang HOSTCC=clang } clean() { rm -rf busybox-$SRC_VERSION/ } package() { cd busybox-$SRC_VERSION/ # NOTE: Busybox doesn't have a proper DESTDIR, so we just set CONFIG_PREFIX # during the install to work around this limitation. ~ahill # NOTE: Once again, AR, CC, and HOSTCC are set because we're using LLVM and # not GCC. ~ahill make -O -j $TT_PROCS install AR=ar CC=clang CONFIG_PREFIX=$TT_INSTALLDIR HOSTCC=$CC }