on master help sign in
prybar/Makefile
42 lines 1.3 kB history raw
1.PHONY: all
2all: $(addprefix prybar-,$(filter-out R,$(shell ls languages))) ## Build all Prybar binaries
4# Avoid depending on the subdirectories of 'languages', because their
5# mtimes are updated every time we build.
6prybar-%: utils/*.go languages/%/* ## Build the Prybar binary for LANG
7 @echo "build prybar-$(*)"
8 @if [ -f "languages/$(*)/compile" ]; then languages/$(*)/compile; fi
9 @scripts/inject.sh $(*)
10 @go generate languages/$(*)/main.go
11 @go build -o prybar-$(*) ./languages/$(*)
12 @rm -f languages/$(*)/generated_*.go
14.PHONY: docker
15docker: ## Run a shell with Prybar inside Docker
16 docker build . -f Dockerfile.dev -t prybar-dev
17 docker run -it --rm -v "$$PWD:/gocode/src/github.com/replit/prybar" prybar-dev
19.PHONY: image
20image: ## Build a Docker image with Prybar for distribution
21 docker build . -t prybar
23.PHONY: test
24test: ## Run integration tests
25 ./run_tests
27.PHONY: test-image
28test-image: image ## Test Docker image for distribution
29 docker run -t --rm prybar ./run_tests
31.PHONY: clean
32clean: ## Remove build artifacts
33 rm -f prybar-* languages/*/generated_*.go prybar_assets/sqlite/patch.so
35.PHONY: help
36help: ## Show this message
37 @echo "usage:" >&2
38 @grep -h "[#]# " $(MAKEFILE_LIST) | \
39 sed 's/^/ make /' | \
40 sed 's/:[^#]*[#]# /|/' | \
41 sed 's/%/LANG/' | \
42 column -t -s'|' >&2