From c3dfcce1e73042d4d52ff5fe6adbf31851a6ea98 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Mon, 20 Apr 2026 22:17:21 +0200 Subject: [PATCH] Use make for building the base and base-initfs recipes --- recipes/core/base-initfs/recipe.toml | 86 ++-------------------------- recipes/core/base/recipe.toml | 76 ++---------------------- 2 files changed, 8 insertions(+), 154 deletions(-) diff --git a/recipes/core/base-initfs/recipe.toml b/recipes/core/base-initfs/recipe.toml index 6dd0b99b..ac5ce116 100644 --- a/recipes/core/base-initfs/recipe.toml +++ b/recipes/core/base-initfs/recipe.toml @@ -7,86 +7,8 @@ dependencies = [ "redoxfs", ] script = """ -BINS=( - init - logd - ramfs - randd - zerod - - acpid - fbbootlogd - fbcond - hwd - inputd - lived - nvmed - pcid - pcid-spawner - rtcd - vesad - virtio-blkd - virtio-gpud -) - -aarch64_bins() -{ - case "${BOARD}" in - raspi3b*) - BINS+=(bcm2835-sdhcid) - ;; - *) - ;; - esac -} - -case "${TARGET}" in - i586-unknown-redox | i686-unknown-redox | x86_64-unknown-redox) - BINS+=(ahcid ided ps2d) - ;; - aarch64-unknown-redox) - aarch64_bins - ;; - *) - ;; -esac - -rm -rf "${COOKBOOK_BUILD}/initfs" - -# Copy config files -mkdir -p "${COOKBOOK_BUILD}/initfs/lib/init.d" "${COOKBOOK_BUILD}/initfs/lib/pcid.d" -cp "${COOKBOOK_SOURCE}/init.initfs.d"/* "${COOKBOOK_BUILD}/initfs/lib/init.d/" -cp "${COOKBOOK_SOURCE}/drivers/initfs.toml" "${COOKBOOK_BUILD}/initfs/lib/pcid.d/initfs.toml" - -# Build daemons and drivers -CARGO_PROFILE_RELEASE_OPT_LEVEL=s CARGO_PROFILE_RELEASE_PANIC=abort \ - "${COOKBOOK_CARGO}" build ${build_flags} \ - --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ - $(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done) - -mkdir -pv "${COOKBOOK_BUILD}/initfs/bin" "${COOKBOOK_BUILD}/initfs/lib/drivers" -for bin in "${BINS[@]}" -do - case "${bin}" in - init | logd | ramfs | randd | zerod | pcid | pcid-spawner | fbbootlogd | fbcond | inputd | vesad | lived | ps2d | acpid | bcm2835-sdhcid | rtcd | hwd) - cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_BUILD}/initfs/bin" - ;; - *) - cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_BUILD}/initfs/lib/drivers" - ;; - esac -done - -cp "${COOKBOOK_SYSROOT}/usr/bin/redoxfs" "${COOKBOOK_BUILD}/initfs/bin" - -# Build bootstrap -ARCH="$(echo "${GNU_TARGET}" | cut -d - -f1)" -(cd "${COOKBOOK_SOURCE}/bootstrap" && "${COOKBOOK_CARGO}" rustc \ - --release -- -Ctarget-feature=+crt-static -Clinker="${GNU_TARGET}-ld") -cp "${COOKBOOK_BUILD}/target/${TARGET}/release/bootstrap" "${COOKBOOK_BUILD}/bootstrap" - -# Assemble initfs -env -u CARGO -u RUSTFLAGS cargo run --manifest-path "${COOKBOOK_SOURCE}/initfs/tools/Cargo.toml" --bin redox-initfs-ar -- "${COOKBOOK_BUILD}/initfs" "${COOKBOOK_BUILD}/bootstrap" -o "${COOKBOOK_BUILD}/initfs.img" -mkdir -pv "${COOKBOOK_STAGE}/usr/lib/boot" -cp "${COOKBOOK_BUILD}/initfs.img" "${COOKBOOK_STAGE}/usr/lib/boot/initfs" +cd "${COOKBOOK_SOURCE}" && make install-initfs \ + SRC_DIR="${COOKBOOK_SOURCE}" SYSROOT="${COOKBOOK_SYSROOT}" \ + LINKER="${GNU_TARGET}-ld" CARGO="${COOKBOOK_CARGO}" \ + BUILD_DIR="${COOKBOOK_BUILD}" DESTDIR="${COOKBOOK_STAGE}" """ diff --git a/recipes/core/base/recipe.toml b/recipes/core/base/recipe.toml index ad41d379..aed81605 100644 --- a/recipes/core/base/recipe.toml +++ b/recipes/core/base/recipe.toml @@ -4,76 +4,8 @@ git = "https://gitlab.redox-os.org/redox-os/base.git" [build] template = "custom" script = """ -mkdir -pv "${COOKBOOK_STAGE}/usr/bin" -for package in audiod dhcpd ipcd ptyd; do - "${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/${package}/Cargo.toml" \ - ${build_flags} - cp -v \ - "target/${TARGET}/${build_type}/${package}" \ - "${COOKBOOK_STAGE}/usr/bin/${package}" -done - -"${COOKBOOK_CARGO}" build \ - --manifest-path "${COOKBOOK_SOURCE}/netstack/Cargo.toml" \ - ${build_flags} -cp -v \ - "target/${TARGET}/${build_type}/smolnetd" \ - "${COOKBOOK_STAGE}/usr/bin/smolnetd" - -# Drivers that are built on all architectures, and NOT in drivers-initfs -BINS=( - e1000d - ihdad - ihdgd - ixgbed - pcid - pcid-spawner - rtl8139d - rtl8168d - usbctl - usbhidd - usbhubd - usbscsid - virtio-netd - xhcid - inputd - redoxerd -) - -# Add additional drivers to the list to build, that are not in drivers-initfs -# depending on the target architecture -case "${TARGET}" in - i586-unknown-redox | i686-unknown-redox | x86_64-unknown-redox) - BINS+=(ac97d sb16d vboxd) - ;; - *) - ;; -esac - -#Build each driver in the list -mkdir -pv "${COOKBOOK_STAGE}/usr/bin" "${COOKBOOK_STAGE}/usr/lib/drivers" -export CARGO_PROFILE_RELEASE_OPT_LEVEL=s -export CARGO_PROFILE_RELEASE_PANIC=abort -"${COOKBOOK_CARGO}" build ${build_flags} \ - --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ - $(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done) -for bin in "${BINS[@]}" -do - if [[ "${bin}" == "inputd" || "${bin}" == "pcid" || "${bin}" == "pcid-spawner" || "${bin}" == "redoxerd" ]]; then - cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/bin" - else - cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/lib/drivers" - fi -done - -mkdir -pv "${COOKBOOK_STAGE}/usr/lib/init.d/" -cp "${COOKBOOK_SOURCE}/init.d"/* "${COOKBOOK_STAGE}/usr/lib/init.d/" - -mkdir -pv "${COOKBOOK_STAGE}/usr/lib/pcid.d" -${FIND} "${COOKBOOK_SOURCE}/drivers" -maxdepth 3 -type f -name 'config.toml' | while read conf -do - driver="$(basename "$(dirname "$conf")")" - cp -v "$conf" "${COOKBOOK_STAGE}/usr/lib/pcid.d/$driver.toml" -done +cd "${COOKBOOK_SOURCE}" && make install-base \ + SRC_DIR="${COOKBOOK_SOURCE}" SYSROOT="${COOKBOOK_SYSROOT}" \ + LINKER="${GNU_TARGET}-ld" CARGO="${COOKBOOK_CARGO}" \ + BUILD_DIR="${COOKBOOK_BUILD}" DESTDIR="${COOKBOOK_STAGE}" """