ollie/Makefile

150 lines
5.5 KiB
Makefile

# Ollie monorepo build system
#
# Two paths:
# make (default) 9P frontend: core, 9p, acme, httpgw, webui + install
# make dbus D-Bus frontend: core, dbus (ollied), kde/*, httpgw, webui + install
#
# Build and install are separate phases. No sudo. No building during install.
.PHONY: all dbus build-9p build-dbus install install-dbus uninstall \
core 9p acme httpgw webui kde data scripts contrib help clean
# === Default (9P) path ===
all: build-9p install
build-9p: core 9p acme httpgw webui
install: data scripts contrib
cp -f prompts/SYSTEM_PROMPT-9p.md $(HOME)/.config/ollie/prompts/SYSTEM_PROMPT.md
@echo === Install complete (9P) ===
# === D-Bus path ===
dbus: build-dbus install-dbus
build-dbus: core dbus-bin kde httpgw webui
install-dbus: data scripts contrib
cp -f prompts/SYSTEM_PROMPT-dbus.md $(HOME)/.config/ollie/prompts/SYSTEM_PROMPT.md
@echo === Install complete (D-Bus) ===
# === Individual build targets ===
core:
@echo === Building ollie-core ===
$(MAKE) -C core
dbus-bin:
@echo === Building ollie-dbus (ollied) ===
$(MAKE) -C dbus
9p:
@echo === Building ollie-9p ===
$(MAKE) -C 9p
acme:
@echo === Building ollie-acme ===
$(MAKE) -C acme
httpgw:
@echo === Building ollie-httpgw ===
$(MAKE) -C httpgw
webui:
@echo === Building ollie-webui ===
cd webui && npm run build
kde:
@echo === Building kde tools ===
$(MAKE) -C kde
# === Install targets (no building!) ===
data:
@echo === Installing data ===
mkdir -p $(HOME)/.config/ollie/agents
mkdir -p $(HOME)/.config/ollie/sandbox
mkdir -p $(HOME)/.config/ollie/skills
mkdir -p $(HOME)/.config/ollie/tools
rm -rf $(HOME)/.config/ollie/prompts
mkdir -p $(HOME)/.config/ollie/prompts
cp -rf agents/* $(HOME)/.config/ollie/agents
cp -rf prompts/* $(HOME)/.config/ollie/prompts
cp -rf sandbox/* $(HOME)/.config/ollie/sandbox
cp -rf skills/* $(HOME)/.config/ollie/skills
cp -rf tools/_lib $(HOME)/.config/ollie/tools/_lib
cp -rf tools/* $(HOME)/.config/ollie/tools
cp -rf tools/cascade $(HOME)/.config/ollie/tools/cascade
cp doc/help.md $(HOME)/.config/ollie/help.md
scripts:
@echo === Installing scripts ===
mkdir -p $(HOME)/.config/ollie/scripts/s $(HOME)/.config/ollie/scripts/u $(HOME)/.config/ollie/scripts/x
cp -f scripts/s/sh $(HOME)/.config/ollie/scripts/s/sh
cp -f scripts/s/ls $(HOME)/.config/ollie/scripts/s/ls
cp -f scripts/s/kill $(HOME)/.config/ollie/scripts/s/kill
cp -f scripts/s/b $(HOME)/.config/ollie/scripts/s/b
cp -f scripts/s/bfg $(HOME)/.config/ollie/scripts/s/bfg
cp -f scripts/s/bbg $(HOME)/.config/ollie/scripts/s/bbg
cp -f scripts/s/cleanup $(HOME)/.config/ollie/scripts/s/cleanup
cp -f scripts/u/optimize $(HOME)/.config/ollie/scripts/u/optimize
cp -f scripts/u/complete $(HOME)/.config/ollie/scripts/u/complete
cp -f scripts/u/cascade $(HOME)/.config/ollie/scripts/u/cascade
cp -f scripts/x/elevate $(HOME)/.config/ollie/scripts/x/elevate
cp -f scripts/x/elevate-adapter-superpowerd $(HOME)/.config/ollie/scripts/x/elevate-adapter-superpowerd
cp -f scripts/x/elevate-adapter-start $(HOME)/.config/ollie/scripts/x/elevate-adapter-start
cp -f scripts/x/bd $(HOME)/.config/ollie/scripts/x/bd
cp -f scripts/x/prime $(HOME)/.config/ollie/scripts/x/prime
cp -f scripts/x/freeloader $(HOME)/.config/ollie/scripts/x/freeloader
chmod 755 \
$(HOME)/.config/ollie/scripts/s/b \
$(HOME)/.config/ollie/scripts/s/bfg \
$(HOME)/.config/ollie/scripts/s/bbg \
$(HOME)/.config/ollie/scripts/s/cleanup \
$(HOME)/.config/ollie/scripts/u/optimize \
$(HOME)/.config/ollie/scripts/u/complete \
$(HOME)/.config/ollie/scripts/u/cascade \
$(HOME)/.config/ollie/scripts/x/elevate \
$(HOME)/.config/ollie/scripts/x/elevate-adapter-superpowerd \
$(HOME)/.config/ollie/scripts/x/elevate-adapter-start \
$(HOME)/.config/ollie/scripts/x/bd \
$(HOME)/.config/ollie/scripts/x/prime \
$(HOME)/.config/ollie/scripts/x/freeloader
contrib:
@echo === Installing contrib scripts ===
cp -f contrib/ollie-remount $(HOME)/bin/ollie-remount
chmod 755 $(HOME)/bin/ollie-remount
uninstall:
@echo === Uninstalling ollie ===
rm -f $(HOME)/bin/olliesrv $(HOME)/bin/ollie-9p-mount
rm -f $(HOME)/bin/ollie-httpgw
rm -f $(HOME)/bin/Ollie $(HOME)/bin/Kmpl $(HOME)/bin/Oi
rm -f $(HOME)/bin/ollie-remount $(HOME)/bin/ollie-watchdog
rm -rf $(HOME)/.config/ollie
$(MAKE) -C dbus uninstall 2>/dev/null || true
$(MAKE) -C kde uninstall 2>/dev/null || true
@echo === Uninstall complete ===
clean:
$(MAKE) -C core clean 2>/dev/null || true
$(MAKE) -C 9p clean 2>/dev/null || true
$(MAKE) -C dbus clean 2>/dev/null || true
$(MAKE) -C acme clean 2>/dev/null || true
$(MAKE) -C httpgw clean 2>/dev/null || true
$(MAKE) -C kde clean 2>/dev/null || true
help:
@echo 'Ollie monorepo build targets:'
@echo ' all - Build 9P path + install (default)'
@echo ' dbus - Build D-Bus path + install'
@echo ' build-9p - Build only (9P path): core, 9p, acme, httpgw, webui'
@echo ' build-dbus - Build only (D-Bus path): core, ollied, kde, httpgw, webui'
@echo ' install - Install data/scripts/contrib (9P prompt)'
@echo ' install-dbus - Install data/scripts/contrib (D-Bus prompt)'
@echo ' data - Install agents, prompts, skills, tools to ~/.config/ollie/'
@echo ' scripts - Install shell scripts to ~/.config/ollie/scripts/'
@echo ' contrib - Install contrib scripts to ~/bin/'
@echo ' uninstall - Remove all installed files'
@echo ' clean - Clean all build artifacts'
@echo ''
@echo 'Submodules must be initialized first:'
@echo ' git submodule update --init --recursive'