# OrionOS — top-level build
# Usage:
#   make          — build all components
#   make install  — install binaries + theme to /usr/local
#   make clean    — remove build artifacts
#   make iso      — build the bootable ISO (requires Arch Linux + archiso)

.PHONY: all wm deskbar launcher installer nebula orionpkg skykit rigel quill lens orionnotify orionlock orionshot orionclip clean install iso

all: wm deskbar launcher installer nebula orionpkg skykit rigel quill lens orionnotify orionlock orionshot orionclip

wm:
	$(MAKE) -C wm

deskbar:
	$(MAKE) -C deskbar

launcher:
	$(MAKE) -C launcher

installer:
	$(MAKE) -C installer

nebula:
	$(MAKE) -C nebula

orionpkg:
	$(MAKE) -C orionpkg

skykit:
	$(MAKE) -C skykit

rigel:
	$(MAKE) -C rigel

quill:
	$(MAKE) -C quill

lens:
	$(MAKE) -C lens

orionnotify:
	$(MAKE) -C orionnotify

orionlock:
	$(MAKE) -C orionlock

orionshot:
	$(MAKE) -C orionshot

orionclip:
	$(MAKE) -C orionclip

clean:
	$(MAKE) -C wm        clean
	$(MAKE) -C deskbar   clean
	$(MAKE) -C launcher  clean
	$(MAKE) -C installer clean
	$(MAKE) -C nebula    clean
	$(MAKE) -C orionpkg  clean
	$(MAKE) -C skykit    clean
	$(MAKE) -C rigel     clean
	$(MAKE) -C quill     clean
	$(MAKE) -C lens         clean
	$(MAKE) -C orionnotify  clean
	$(MAKE) -C orionlock    clean
	$(MAKE) -C orionshot    clean
	$(MAKE) -C orionclip    clean

install: all
	# binaries
	install -Dm755 wm/orionwm              /usr/local/bin/orionwm
	install -Dm755 deskbar/oriondeskbar    /usr/local/bin/oriondeskbar
	install -Dm755 launcher/orionlauncher  /usr/local/bin/orionlauncher
	install -Dm755 themes/orionwallpaper   /usr/local/bin/orionwallpaper
	install -Dm755 nebula/nebula           /usr/local/bin/nebula
	install -Dm755 orionpkg/orionpkg       /usr/local/bin/orionpkg
	install -Dm755 rigel/rigel             /usr/local/bin/rigel
	install -Dm755 quill/quill             /usr/local/bin/quill
	install -Dm755 lens/lens               /usr/local/bin/lens
	install -Dm755 orionnotify/orionnotify /usr/local/bin/orionnotify
	install -Dm755 orionlock/orionlock     /usr/local/bin/orionlock
	install -Dm755 orionshot/orionshot     /usr/local/bin/orionshot
	install -Dm755 orionclip/orionclip     /usr/local/bin/orionclip
	# GTK theme
	mkdir -p /usr/share/themes
	cp -r themes/OrionOS /usr/share/themes/
	# picom config
	install -Dm644 themes/picom.conf /etc/orionos/picom.conf
	# wallpaper
	mkdir -p /usr/share/orionos/wallpapers
	bash themes/wallpapers/generate-default.sh || true
	cp -f themes/wallpapers/orionos-default.png /usr/share/orionos/wallpapers/ 2>/dev/null || true
	@echo ""
	@echo "OrionOS installed. Add this to ~/.xinitrc to start:"
	@echo ""
	@echo "  orionwallpaper"
	@echo "  picom --config /etc/orionos/picom.conf &"
	@echo "  oriondeskbar &"
	@echo "  orionnotify &"
	@echo "  orionclip &"
	@echo "  exec orionwm"

iso:
	@echo "Building OrionOS ISO via Docker..."
	docker build -t orionos-iso-builder -f iso/docker/Dockerfile .
	mkdir -p iso/output
	docker run --rm --privileged -v "$(PWD)/iso/output:/output" orionos-iso-builder
