-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
57 lines (34 loc) · 1008 Bytes
/
Copy pathmakefile
File metadata and controls
57 lines (34 loc) · 1008 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
APP_NAME := dockgen
GRAMMAR_DIR := grammar
GEN_DIR := parser
CMD_DIR := cmd
PKG_DIR := ir
ANTLR_GRAMMAR := $(PWD)/pkg/analysis/ir/antlr4/Bash.g4
BUILD_DIR := bin
BIN := $(BUILD_DIR)/$(APP_NAME)
DEBUG_CONTAINER = debug-container
GO := go
UPX:= upx
CONTAINER_NAME = dockgen-container
.PHONY: all antlr build clean run
all: antlr build
antlr:
cd $(PWD)/pkg/analysis/types/antlr4 && \
antlr -Dlanguage=Go -visitor Bash.g4
build-debugger-container:
docker build -t $(CONTAINER_NAME) -f $(DEBUG_CONTAINER)/Dockerfile $(DEBUG_CONTAINER)
debugger: build-debugger-container
docker run --privileged -itd -v $(PWD):/app --net host --name $(CONTAINER_NAME) $(CONTAINER_NAME)
docker exec -it --workdir /app $(CONTAINER_NAME) /bin/sh
build:
@mkdir -p $(BUILD_DIR)
$(GO) build -o $(BIN) .
release:
@mkdir -p $(BUILD_DIR)
$(GO) build -ldflags '-w -s' -gcflags '-l' -o $(BIN) .
$(UPX) -9 $(BIN)
run:
$(GO) build
clean:
@rm -rf $(BUILD_DIR) $(GEN_DIR)/*.go
@docker rm -f $(CONTAINER_NAME)