Update Makefile in preparation for using it in the base recipes

This commit is contained in:
bjorn3
2026-04-19 21:14:46 +02:00
parent d49a764f2c
commit 8e2b451965
4 changed files with 24 additions and 25 deletions
+16 -15
View File
@@ -7,11 +7,12 @@ CARGO ?= redoxer
CARGO_HOST ?= env -u CARGO -u RUSTFLAGS cargo
SRC_DIR ?= $(CURDIR)
BUILD_DIR ?= $(shell pwd)
BUILD_DIR ?= $(shell pwd)/target/$(TARGET)/build
DESTDIR ?= ./sysroot
SYSROOT ?= $(BUILD_DIR)/target/$(TARGET)/sysroot
TARGET_DIR = $(BUILD_DIR)/target/$(TARGET)/$(BUILD_TYPE)
BUILD_FLAGS += --target-dir $(BUILD_DIR)/target
SYSROOT ?= $(shell pwd)/target/$(TARGET)/sysroot
export REDOXER_SYSROOT=$(SYSROOT)
TARGET_DIR = $(BUILD_DIR)/$(TARGET)/$(BUILD_TYPE)
BUILD_FLAGS += --target-dir $(BUILD_DIR)
INITFS_BINS = init logd ramfs randd zerod \
acpid fbbootlogd fbcond hwd inputd lived \
@@ -63,35 +64,36 @@ $(SYSROOT)/bin/redoxfs:
redoxer pkg redoxfs
initfs: $(SYSROOT)/bin/redoxfs
rm -rf "$(TARGET_DIR)/initfs"
mkdir -pv "$(BUILD_DIR)"
rm -rf "$(BUILD_DIR)/initfs"
# Copy config files
mkdir -p "$(TARGET_DIR)/initfs/lib/init.d" "$(TARGET_DIR)/initfs/lib/pcid.d"
cp "$(SRC_DIR)/init.initfs.d"/* "$(TARGET_DIR)/initfs/lib/init.d/"
cp "$(SRC_DIR)/drivers/initfs.toml" "$(TARGET_DIR)/initfs/lib/pcid.d/initfs.toml"
mkdir -p "$(BUILD_DIR)/initfs/lib/init.d" "$(BUILD_DIR)/initfs/lib/pcid.d"
cp "$(SRC_DIR)/init.initfs.d"/* "$(BUILD_DIR)/initfs/lib/init.d/"
cp "$(SRC_DIR)/drivers/initfs.toml" "$(BUILD_DIR)/initfs/lib/pcid.d/initfs.toml"
# Build daemons and drivers
CARGO_PROFILE_RELEASE_OPT_LEVEL=s CARGO_PROFILE_RELEASE_PANIC=abort \
$(CARGO) build $(BUILD_FLAGS) \
--manifest-path "$(SRC_DIR)/Cargo.toml" \
$(INITFS_CARGO_ARGS) $(INITFS_DRIVERS_CARGO_ARGS)
# Distribute binaries
mkdir -pv "$(TARGET_DIR)/initfs/bin" "$(TARGET_DIR)/initfs/lib/drivers"
mkdir -pv "$(BUILD_DIR)/initfs/bin" "$(BUILD_DIR)/initfs/lib/drivers"
for bin in $(INITFS_BINS); do \
cp -v "$(TARGET_DIR)/$$bin" "$(TARGET_DIR)/initfs/bin"; \
cp -v "$(TARGET_DIR)/$$bin" "$(BUILD_DIR)/initfs/bin"; \
done
for bin in $(INITFS_DRIVERS_BINS); do \
cp -v "$(TARGET_DIR)/$$bin" "$(TARGET_DIR)/initfs/lib/drivers"; \
cp -v "$(TARGET_DIR)/$$bin" "$(BUILD_DIR)/initfs/lib/drivers"; \
done
cp "$(SYSROOT)/bin/redoxfs" "$(TARGET_DIR)/initfs/bin"
cp "$(SYSROOT)/bin/redoxfs" "$(BUILD_DIR)/initfs/bin"
cd "$(SRC_DIR)/bootstrap" && $(CARGO) rustc $(BUILD_FLAGS) \
-- -Ctarget-feature=+crt-static -Clinker="$(LINKER)"
$(CARGO_HOST) run --manifest-path "$(SRC_DIR)/initfs/tools/Cargo.toml" --bin redox-initfs-ar -- \
"$(TARGET_DIR)/initfs" "$(TARGET_DIR)/bootstrap" -o "$(TARGET_DIR)/initfs.img"
"$(BUILD_DIR)/initfs" "$(TARGET_DIR)/bootstrap" -o "$(BUILD_DIR)/initfs.img"
install-initfs: initfs
@mkdir -pv "$(DESTDIR)/usr/lib/boot"
@cp -v "$(TARGET_DIR)/initfs.img" "$(DESTDIR)/usr/lib/boot/initfs"
@cp -v "$(BUILD_DIR)/initfs.img" "$(DESTDIR)/usr/lib/boot/initfs"
# -----------------------------------------------------------------------------
# base
@@ -113,7 +115,6 @@ install-base: base
@for bin in $(DRIVERS_BINS); do \
cp -v "$(TARGET_DIR)/$$bin" "$(DESTDIR)/usr/lib/drivers"; \
done
@mv -v $(DESTDIR)/usr/bin/netstack $(DESTDIR)/usr/bin/smolnetd
# Copy configurations
@cp -v "$(SRC_DIR)/init.d"/* "$(DESTDIR)/usr/lib/init.d/"
@find "$(SRC_DIR)/drivers" -maxdepth 3 -type f -name 'config.toml' | while read -r conf; do \
+5 -4
View File
@@ -71,11 +71,12 @@ done
run_redoxer() {
export TARGET=$1
export REDOXER_SYSROOT="target/${CURRENT_TARGET}/sysroot"
redoxer toolchain || { echo -e "${RED}Fail: redoxer toolchain for: $target.${NC}" && exit 1; }
echo "----------------------------------------"
echo "Running make $CMD_ACTION for: $TARGET"
if make "$CMD_ACTION"; then
return 0
else
@@ -86,15 +87,15 @@ run_redoxer() {
if [ "$CHECK_ALL" = true ]; then
echo "Running $CMD_ACTION for all supported Redox targets..."
has_error=false
for target in "${SUPPORTED_TARGETS[@]}"; do
if ! run_redoxer "$target"; then
has_error=true
fi
done
echo "----------------------------------------"
if [ "$has_error" = true ]; then
echo -e "${RED}Summary: One or more targets failed.${NC}"
+3 -1
View File
@@ -1,3 +1,5 @@
# FIXME rename to 10_netstack.service
[unit]
description = "Network stack"
requires_weak = [
@@ -5,5 +7,5 @@ requires_weak = [
]
[service]
cmd = "smolnetd"
cmd = "netstack"
type = "notify"
-5
View File
@@ -8,11 +8,6 @@ edition = "2021"
name = "netstack"
path = "src/main.rs"
# FIXME remove
[[bin]]
name = "smolnetd"
path = "src/main.rs"
[dependencies]
redox_event.workspace = true
daemon = { path = "../daemon" }