mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-29 16:18:44 +08:00
40 lines
1.2 KiB
TOML
40 lines
1.2 KiB
TOML
[source]
|
|
same_as = "../base"
|
|
|
|
[build]
|
|
template = "custom"
|
|
script = """
|
|
mkdir -pv "${COOKBOOK_STAGE}/usr/bin"
|
|
for package in init logd ramfs randd zerod; 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
|
|
|
|
# TODO: symlinks aren't supported by redox-initfs
|
|
#ln -sv zerod "${COOKBOOK_STAGE}/usr/bin/nulld"
|
|
|
|
cp "${COOKBOOK_STAGE}/usr/bin/zerod" "${COOKBOOK_STAGE}/usr/bin/nulld"
|
|
|
|
ARCH="$(echo "${GNU_TARGET}" | cut -d - -f1)"
|
|
cargo \
|
|
-Zbuild-std=core,alloc,compiler_builtins \
|
|
-Zbuild-std-features=compiler-builtins-mem rustc \
|
|
--target "${TARGET}" \
|
|
--manifest-path "${COOKBOOK_SOURCE}/bootstrap/Cargo.toml" \
|
|
--release \
|
|
--target-dir "${COOKBOOK_BUILD}" \
|
|
-- \
|
|
--emit link="${COOKBOOK_BUILD}/${TARGET}/release/libbootstrap.a"
|
|
mkdir -v "${COOKBOOK_STAGE}/boot"
|
|
"${GNU_TARGET}-ld" \
|
|
-o "${COOKBOOK_STAGE}/boot/bootstrap" \
|
|
--gc-sections \
|
|
-T "${COOKBOOK_SOURCE}/bootstrap/src/${ARCH}.ld" \
|
|
-z max-page-size=4096 \
|
|
"${COOKBOOK_BUILD}/${TARGET}/release/libbootstrap.a"
|
|
"""
|