# PodTui — Makefile # # Development targets: # make install install dependencies (bun install) + build native lib # make dev run with hot reload # make test run the test suite # make build produce the JS bundle + native libs in dist/ # make native build the cavacore FFI library from C source # make lint run typecheck-style checks (lsp), not eslint # # Packaging / release targets: # make dist build a standalone compiled binary + tarball for the # CURRENT platform (see dist/ for podtui + libs + tarball) # make dist-mac alias for `dist` targeting macOS (run on macOS) # make dist-linux alias for `dist` targeting Linux (run on Linux) # make clean remove dist/ output # # Cross-platform binaries are produced by CI (GitHub Actions) with one runner # per OS/arch — Bun cannot cross-compile, so dist:mac / dist:linux only produce # the binary for the OS they run on. Each runner runs `make dist` and uploads # its podtui--.tar.gz artifact. SHELL := /bin/bash .PHONY: install dev build native dist dist-mac dist-linux test clean ## Install dependencies and build the native runtime library. install: bun install make native ## Run the dev server with hot reload. dev: bun run dev ## Type-check the whole project. (See AGENTS.md: `bun run lint` points at a ## nonexistent lint.ts; LSP diagnostics are the maintained clean bar.) lint: bun tsc --noEmit ## Build the JS bundle + native libs into dist/ (the `podtui` npm bin target). build: bun run build ## Build the cavacore FFI library from src/native/cavacore.c. native: scripts/build-cavacore.sh ## Standalone binary + native-libs tarball for the current platform. ## Unaffected by bunfig.toml at build time. Note: the compiled runtime reads ## the launching process's CWD bunfig.toml, so smoke tests must run the binary ## from a bunfig-free dir (see release.yml). dist: bun run build.ts --compile ## macOS build (run on a macOS runner / host). dist-mac: bun run build.ts --compile ## Linux build (run on a Linux runner / host). dist-linux: bun run build.ts --compile ## Remove build artifacts. clean: rm -rf dist