BINARY_NAME=lambda TEST=simple .PHONY: help build run profile explain graph docs test bench clean .DEFAULT_GOAL := help .SILENT: help: echo "Available targets:" echo " build - Build the lambda executable" echo " run - Build and run the lambda runtime (use TEST= to specify sample)" echo " profile - Build and run with CPU profiling enabled" echo " explain - Build and run with explanation mode and profiling" echo " graph - Generate and open CPU profile visualization" echo " docs - Start local godoc server on port 6060" echo " test - Run tests for all samples" echo " bench - Run benchmarks for all samples" echo " clean - Remove all build artifacts" build: go build -o ${BINARY_NAME} ./cmd/lambda chmod +x ${BINARY_NAME} run: build ./${BINARY_NAME} -s -f ./tests/$(TEST).test -o program.out profile: build ./${BINARY_NAME} -p profile/cpu.prof -f ./tests/$(TEST).test -o program.out explain: build ./${BINARY_NAME} -x -p profile/cpu.prof -f ./tests/$(TEST).test -o program.out > explain.out graph: go tool pprof -raw -output=profile/cpu.raw profile/cpu.prof go tool pprof -svg profile/cpu.prof > profile/cpu.svg echo ">>> View at 'file://$(PWD)/profile/cpu.svg'" docs: echo ">>> View at 'http://localhost:6060/pkg/git.maximhutz.com/max/lambda/'" go run golang.org/x/tools/cmd/godoc@latest -http=:6060 test: go test -v ./cmd/lambda bench: go test -bench=. -benchtime=10x -cpu=4 ./cmd/lambda clean: rm -f ${BINARY_NAME} rm -f program.out rm -rf profile/