157 lines
5.2 KiB
Makefile
157 lines
5.2 KiB
Makefile
# Ollie monorepo build system
|
|
#
|
|
# Two paths:
|
|
# just (default) 9P frontend: core, 9p, acme, httpgw, webui + install
|
|
# just dbus D-Bus frontend: core, dbus (ollied), kde, httpgw, webui + install
|
|
#
|
|
# Build and install are separate phases. No sudo.
|
|
|
|
set dotenv-load := false
|
|
|
|
home := env_var('HOME')
|
|
cfg := home / ".config/ollie"
|
|
bin := home / "bin"
|
|
|
|
# === Default (9P) path ===
|
|
default: build-9p install-9p
|
|
|
|
# === D-Bus path ===
|
|
dbus: build-dbus install-dbus
|
|
|
|
# === Build targets ===
|
|
|
|
build-9p: core ninep acme httpgw webui
|
|
|
|
build-dbus: core dbus-bin kde httpgw webui
|
|
|
|
core:
|
|
@echo === Building ollie-core ===
|
|
cd core && go build ./...
|
|
|
|
ninep:
|
|
@echo === Building ollie-9p ===
|
|
cd 9p && go build -buildvcs=false -o {{bin}}/olliesrv .
|
|
cd 9p && go build -buildvcs=false -o {{bin}}/ollie-9p-mount ./cmd/ollie-9p-mount/
|
|
|
|
dbus-bin:
|
|
@echo === Building ollie-dbus (ollied) ===
|
|
cd dbus && go build -o ollied .
|
|
|
|
acme:
|
|
@echo === Building ollie-acme ===
|
|
cd acme && go build -o {{bin}}/Ollie .
|
|
cp acme/scripts/Kmpl {{bin}}/Kmpl
|
|
cp acme/scripts/Oi {{bin}}/Oi
|
|
chmod 755 {{bin}}/Kmpl {{bin}}/Oi
|
|
|
|
httpgw:
|
|
@echo === Building ollie-httpgw ===
|
|
cd httpgw && go build -o {{bin}}/ollie-httpgw .
|
|
|
|
webui:
|
|
@echo === Building ollie-webui ===
|
|
cd webui && npm run build
|
|
|
|
kde:
|
|
@echo === Building kde tools ===
|
|
cd kde && cmake -B build-cmake -S .
|
|
cd kde && cmake --build build-cmake -j$(nproc)
|
|
|
|
# === Install targets ===
|
|
|
|
install-9p: install-data install-scripts install-contrib
|
|
cp -f prompts/SYSTEM_PROMPT-9p.md {{cfg}}/prompts/SYSTEM_PROMPT.md
|
|
@echo === Install complete \(9P\) ===
|
|
|
|
install-dbus: install-data install-scripts install-contrib
|
|
cp -f prompts/SYSTEM_PROMPT-dbus.md {{cfg}}/prompts/SYSTEM_PROMPT.md
|
|
@echo === Install complete \(D-Bus\) ===
|
|
|
|
install-data:
|
|
@echo === Installing data ===
|
|
mkdir -p {{cfg}}/agents {{cfg}}/sandbox {{cfg}}/prompts {{cfg}}/skills {{cfg}}/tools
|
|
cp -rf agents/* {{cfg}}/agents/
|
|
cp -rf prompts/* {{cfg}}/prompts/
|
|
cp -rf sandbox/* {{cfg}}/sandbox/
|
|
cp -rf skills/* {{cfg}}/skills/
|
|
cp -rf tools/* {{cfg}}/tools/
|
|
cp doc/help.md {{cfg}}/help.md
|
|
|
|
install-scripts:
|
|
@echo === Installing scripts ===
|
|
mkdir -p {{cfg}}/scripts/s {{cfg}}/scripts/u {{cfg}}/scripts/x
|
|
cp -f scripts/s/sh {{cfg}}/scripts/s/sh
|
|
cp -f scripts/s/ls {{cfg}}/scripts/s/ls
|
|
cp -f scripts/s/kill {{cfg}}/scripts/s/kill
|
|
cp -f scripts/s/b {{cfg}}/scripts/s/b
|
|
cp -f scripts/s/bfg {{cfg}}/scripts/s/bfg
|
|
cp -f scripts/s/bbg {{cfg}}/scripts/s/bbg
|
|
cp -f scripts/s/cleanup {{cfg}}/scripts/s/cleanup
|
|
cp -f scripts/u/optimize {{cfg}}/scripts/u/optimize
|
|
cp -f scripts/u/complete {{cfg}}/scripts/u/complete
|
|
cp -f scripts/u/cascade {{cfg}}/scripts/u/cascade
|
|
cp -f scripts/x/elevate {{cfg}}/scripts/x/elevate
|
|
cp -f scripts/x/elevate-adapter-superpowerd {{cfg}}/scripts/x/elevate-adapter-superpowerd
|
|
cp -f scripts/x/elevate-adapter-start {{cfg}}/scripts/x/elevate-adapter-start
|
|
cp -f scripts/x/bd {{cfg}}/scripts/x/bd
|
|
cp -f scripts/x/prime {{cfg}}/scripts/x/prime
|
|
cp -f scripts/x/freeloader {{cfg}}/scripts/x/freeloader
|
|
chmod 755 \
|
|
{{cfg}}/scripts/s/b \
|
|
{{cfg}}/scripts/s/bfg \
|
|
{{cfg}}/scripts/s/bbg \
|
|
{{cfg}}/scripts/s/cleanup \
|
|
{{cfg}}/scripts/u/optimize \
|
|
{{cfg}}/scripts/u/complete \
|
|
{{cfg}}/scripts/u/cascade \
|
|
{{cfg}}/scripts/x/elevate \
|
|
{{cfg}}/scripts/x/elevate-adapter-superpowerd \
|
|
{{cfg}}/scripts/x/elevate-adapter-start \
|
|
{{cfg}}/scripts/x/bd \
|
|
{{cfg}}/scripts/x/prime \
|
|
{{cfg}}/scripts/x/freeloader
|
|
|
|
install-contrib:
|
|
@echo === Installing contrib scripts ===
|
|
mkdir -p {{bin}}
|
|
cp -f contrib/ollie-remount {{bin}}/ollie-remount
|
|
cp -f scripts/s/ollie-watchdog {{bin}}/ollie-watchdog
|
|
chmod 755 {{bin}}/ollie-remount {{bin}}/ollie-watchdog
|
|
|
|
# === Uninstall ===
|
|
|
|
uninstall:
|
|
@echo === Uninstalling ollie ===
|
|
rm -f {{bin}}/olliesrv {{bin}}/ollie-9p-mount
|
|
rm -f {{bin}}/ollie-httpgw
|
|
rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi
|
|
rm -f {{bin}}/ollie-remount {{bin}}/ollie-watchdog
|
|
rm -rf {{cfg}}
|
|
cd dbus && make uninstall 2>/dev/null || true
|
|
cd kde && make uninstall 2>/dev/null || true
|
|
@echo === Uninstall complete ===
|
|
|
|
# === Clean ===
|
|
|
|
clean:
|
|
cd core && go clean ./... 2>/dev/null || true
|
|
rm -f {{bin}}/olliesrv {{bin}}/ollie-9p-mount
|
|
rm -f {{bin}}/ollie-httpgw
|
|
rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi
|
|
cd dbus && rm -f ollied 2>/dev/null || true
|
|
cd kde && rm -rf build-cmake 2>/dev/null || true
|
|
|
|
# === Help ===
|
|
|
|
help:
|
|
@echo 'Ollie monorepo build targets:'
|
|
@echo ' just Build 9P path + install (default)'
|
|
@echo ' just dbus Build D-Bus path + install'
|
|
@echo ' just build-9p Build only (9P): core, 9p, acme, httpgw, webui'
|
|
@echo ' just build-dbus Build only (D-Bus): core, ollied, kde, httpgw, webui'
|
|
@echo ' just install-9p Install with 9P prompt'
|
|
@echo ' just install-dbus Install with D-Bus prompt'
|
|
@echo ' just uninstall Remove all installed files'
|
|
@echo ' just clean Clean build artifacts'
|
|
@echo ''
|
|
@echo 'Individual: just core | 9p | dbus-bin | acme | httpgw | webui | kde'
|