Files
lambda/Makefile
M.V. Hutz 3158c35df2 fix: add profile dependency to graph target
Makes graph target depend on profile to ensure cpu.prof exists
before attempting to generate visualizations.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 16:29:25 -05:00

40 lines
1.1 KiB
Makefile

BINARY_NAME=lambda
.PHONY: help it run profile explain graph clean
help:
@ echo "Available targets:"
@ echo " it - Build the lambda binary"
@ echo " run - Build and run with sample input (default: simple.txt)"
@ echo " profile - Build and run with CPU profiling enabled"
@ echo " explain - Run with explanation mode and profiling"
@ echo " graph - Generate CPU profile visualization"
@ echo " clean - Remove build artifacts"
@ echo ""
@ echo "Usage: make run TEST=<sample-name>"
it:
@ go build -o ${BINARY_NAME} ./cmd/lambda
TEST=simple
run: it
@ ./lambda - < ./samples/$(TEST).txt > program.out
profile: it
@ mkdir -p profile
@ ./lambda -p profile/cpu.prof - < ./samples/$(TEST).txt > program.out
explain: it
@ mkdir -p profile
@ ./lambda -x -p profile/cpu.prof - < ./samples/$(TEST).txt > program.out
graph: profile
@ go tool pprof -raw -output=profile/cpu.raw profile/cpu.prof
@ go tool pprof -svg profile/cpu.prof > profile/cpu.svg
@ echo "Profile graph saved to 'file://profile/cpu.svg'"
clean:
rm -f ${BINARY_NAME} program.out
rm -rf profile/