diff --git a/Makefile b/Makefile index 4a0702ea07..14862de45a 100644 --- a/Makefile +++ b/Makefile @@ -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 \ diff --git a/check.sh b/check.sh index 61ce212bb7..3054190383 100755 --- a/check.sh +++ b/check.sh @@ -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}" diff --git a/init.d/10_smolnetd.service b/init.d/10_smolnetd.service index e82f24785d..1ee54ad0e7 100644 --- a/init.d/10_smolnetd.service +++ b/init.d/10_smolnetd.service @@ -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" diff --git a/netstack/Cargo.toml b/netstack/Cargo.toml index 3a38e60de0..df6d9d82ba 100644 --- a/netstack/Cargo.toml +++ b/netstack/Cargo.toml @@ -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" }