43fd088349
Replace all 'rbos'/'RBOS' references with 'redbear'/'Red Bear OS' across the build system, scripts, docs, and configs. Renamed files: rbos.ipxe → redbear.ipxe assets/rbos-icon.png → assets/redbear-icon.png recipes/system/rbos-info → recipes/system/redbear-info Added redbear-info: a system tool that enumerates all Red Bear OS custom components, checks runtime availability via scheme paths and binary presence, and prints status/test info. Supports --verbose, --json, and --test output modes. Zero external dependencies.
72 lines
2.9 KiB
Makefile
72 lines
2.9 KiB
Makefile
# Configuration file of the build system commands for the build server
|
|
|
|
IMG_TAG?=$(shell git describe --tags)
|
|
IMG_SEPARATOR?=_
|
|
IMG_DIR?=build/img/$(ARCH)
|
|
OS_TEST_DIR?=build/os-test/$(ARCH)
|
|
CI_COOKBOOK_CONFIG?=CI=1 COOKBOOK_LOGS=true COOKBOOK_CLEAN_BUILD=true COOKBOOK_VERBOSE=false COOKBOOK_COMPRESSED=true
|
|
|
|
# CI image target - build standard images
|
|
# To leave out the build tag, set both IMG_TAG and IMG_SEPARATOR to null
|
|
ci-img: FORCE
|
|
rm -rf $(IMG_DIR)
|
|
mkdir -p $(IMG_DIR)
|
|
$(MAKE) server desktop demo
|
|
cd $(IMG_DIR) && zstd --rm *
|
|
cd $(IMG_DIR) && sha256sum -b * > SHA256SUM
|
|
|
|
# The name of the target must match the name of the filesystem config file
|
|
server desktop demo: FORCE
|
|
rm -f "build/$(ARCH)/$@/harddrive.img" "build/$(ARCH)/$@/redbear-live.iso"
|
|
export $(CI_COOKBOOK_CONFIG) REPO_NONSTOP=0 && \
|
|
$(MAKE) CONFIG_NAME=$@ build/$(ARCH)/$@/harddrive.img build/$(ARCH)/$@/redbear-live.iso
|
|
mkdir -p $(IMG_DIR)
|
|
cp "build/$(ARCH)/$@/harddrive.img" "$(IMG_DIR)/redbear_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_harddrive.img"
|
|
cp "build/$(ARCH)/$@/redbear-live.iso" "$(IMG_DIR)/redbear_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_livedisk.iso"
|
|
|
|
ci-os-test: FORCE
|
|
make CONFIG_NAME=os-test unmount
|
|
rm -f "build/$(ARCH)/os-test/harddrive.img"
|
|
$(MAKE) CONFIG_NAME=os-test qemu gpu=no
|
|
rm -rf $(OS_TEST_DIR)
|
|
mkdir -p $(OS_TEST_DIR)
|
|
$(MAKE) CONFIG_NAME=os-test mount
|
|
cp -rv build/$(ARCH)/os-test/filesystem/usr/share/os-test/html $(OS_TEST_DIR)
|
|
cp -v build/$(ARCH)/os-test/filesystem/usr/share/os-test/os-test.json $(OS_TEST_DIR)
|
|
tar \
|
|
--create \
|
|
--gzip \
|
|
--file "$(OS_TEST_DIR)/out.tar.gz" \
|
|
--directory="build/$(ARCH)/os-test/filesystem/usr/share/os-test" \
|
|
out
|
|
$(MAKE) CONFIG_NAME=os-test unmount
|
|
|
|
# CI packaging target
|
|
ci-pkg: prefix $(FSTOOLS_TAG) $(CONTAINER_TAG) FORCE
|
|
ifeq ($(PODMAN_BUILD),1)
|
|
$(PODMAN_RUN) make $@
|
|
else
|
|
$(HOST_CARGO) build --manifest-path Cargo.toml --release
|
|
export $(CI_COOKBOOK_CONFIG) REPO_NONSTOP=1 PATH="$(PREFIX_PATH):$$PATH" COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \
|
|
$(REPO_BIN) cook --with-package-deps "--filesystem=config/$(ARCH)/ci.toml"
|
|
endif
|
|
|
|
# CI toolchain
|
|
ci-toolchain: $(CONTAINER_TAG) FORCE
|
|
ifeq ($(PODMAN_BUILD),1)
|
|
$(PODMAN_RUN) make $@
|
|
else
|
|
$(MAKE) PREFIX_BINARY=0 \
|
|
"prefix/$(TARGET)/gcc-install.tar.gz" \
|
|
"prefix/$(TARGET)/relibc-install.tar.gz" \
|
|
"prefix/$(TARGET)/rust-install.tar.gz" \
|
|
"prefix/$(TARGET)/clang-install.tar.gz"
|
|
rm -rf "build/toolchain/$(HOST_TARGET)/$(TARGET)"
|
|
mkdir -p "build/toolchain/$(HOST_TARGET)/$(TARGET)"
|
|
cp "prefix/$(TARGET)/gcc-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/gcc-install.tar.gz"
|
|
cp "prefix/$(TARGET)/relibc-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/relibc-install.tar.gz"
|
|
cp "prefix/$(TARGET)/rust-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/rust-install.tar.gz"
|
|
cp "prefix/$(TARGET)/clang-install.tar.gz" "build/toolchain/$(HOST_TARGET)/$(TARGET)/clang-install.tar.gz"
|
|
cd "build/toolchain/$(HOST_TARGET)/$(TARGET)" && sha256sum -b * > SHA256SUM
|
|
endif
|