Files
SparkOS/Makefile
2025-12-28 15:03:31 +00:00

51 lines
1.2 KiB
Makefile

# SparkOS Makefile
# Builds the minimal Linux distribution
CC = gcc
CFLAGS = -Wall -O2 -static
DESTDIR = rootfs
IMAGE = sparkos.img
IMAGE_SIZE = 512M
.PHONY: all clean init image help install
all: init
help:
@echo "SparkOS Build System"
@echo "===================="
@echo "Targets:"
@echo " make init - Build the init system"
@echo " make install - Install init to rootfs"
@echo " make image - Create bootable dd-able image (requires root)"
@echo " make clean - Clean build artifacts"
@echo ""
@echo "Note: Creating a bootable image requires root privileges"
@echo " and various tools (debootstrap, syslinux, etc.)"
init: src/init.c
@echo "Building SparkOS init system..."
$(CC) $(CFLAGS) -o init src/init.c
@echo "Init system built successfully: ./init"
install: init
@echo "Installing init to rootfs..."
install -D -m 755 init $(DESTDIR)/sbin/init
@echo "Init installed to $(DESTDIR)/sbin/init"
image: install
@echo "Creating bootable image..."
@if [ "$$(id -u)" -ne 0 ]; then \
echo "ERROR: Image creation requires root privileges"; \
echo "Run: sudo make image"; \
exit 1; \
fi
@./scripts/create_image.sh
clean:
@echo "Cleaning build artifacts..."
rm -f init
rm -f $(IMAGE)
rm -rf build/
@echo "Clean complete"