@@ -12,16 +12,34 @@ APP_CMD_OUTPUT := _output
1212APP_CMD_SUBDIRS := $(shell find $(APP_CMD_DIR ) -mindepth 1 -maxdepth 1 -type d)
1313APP_CMD_BIN_TARGETS := $(patsubst % ,$(APP_CMD_OUTPUT ) /bin/% ,$(notdir $(APP_CMD_SUBDIRS ) ) )
1414
15- GO_BUILD_STATIC := CGO_ENABLED=1 go build -tags "netgo osusergo" -gcflags=all="-N -l"
16- GO_BUILD_STATIC_WITH_VERSION := $( GO_BUILD_STATIC ) -ldflags "-extldflags -static \
15+ GO_BUILD_FLAGS := CGO_ENABLED=1 go build -tags "netgo osusergo" -gcflags=all="-N -l"
16+ GO_VERSION_LDFLAGS := \
1717 -X main.AppVersion=$(APP_VERSION ) \
1818 -X main.AppGitCommit=$(APP_COMMIT ) \
19- -X main.AppBuildTime=$(APP_BUILD_TIME ) "
19+ -X main.AppBuildTime=$(APP_BUILD_TIME )
2020
21- IMAGE_LATEST := huatuo/huatuo-bamai:latest
21+ GO_BUILD_STATIC := $(GO_BUILD_FLAGS ) -ldflags "-extldflags -static $(GO_VERSION_LDFLAGS ) "
22+ GO_BUILD_NOSTATIC := $(GO_BUILD_FLAGS ) -ldflags "$(GO_VERSION_LDFLAGS ) "
23+
24+ BUILD_MODE ?= static
25+
26+ IMAGE_TAG := latest
27+
28+ ifeq ($(BUILD_MODE ) ,nostatic)
29+ GO_BUILD_IMPL := $(GO_BUILD_NOSTATIC )
30+ IMAGE_REPO := huatuo/huatuo-bamai
31+ else
32+ GO_BUILD_IMPL := $(GO_BUILD_STATIC )
33+ IMAGE_REPO := huatuo/huatuo-bamai-static
34+ endif
35+
36+ IMAGE := $(IMAGE_REPO ) :$(IMAGE_TAG )
2237
2338all : bpf-build sync build
2439
40+ build-nostatic :
41+ @$(MAKE ) BUILD_MODE=nostatic all
42+
2543bpf-build :
2644 @BPF_DIR=$(BPF_DIR ) BPF_COMPILE=$(BPF_COMPILE ) BPF_INCLUDE=$(BPF_INCLUDE ) go generate -run " BPF_COMPILE" -x ./...
2745
@@ -32,13 +50,13 @@ sync:
3250
3351build : $(APP_CMD_BIN_TARGETS )
3452$(APP_CMD_OUTPUT ) /bin/% : $(APP_CMD_DIR ) /% force
35- $(GO_BUILD_STATIC_WITH_VERSION ) -o $@ ./$<
53+ $(GO_BUILD_IMPL ) -o $@ ./$<
3654
3755docker-build :
38- @docker build --network=host --no-cache -t $(IMAGE_LATEST ) -f Dockerfile .
56+ @docker build --network=host --no-cache -t $(IMAGE ) -f Dockerfile .
3957
4058docker-clean :
41- @docker rmi $(IMAGE_LATEST ) || true
59+ @docker rmi $(IMAGE ) || true
4260
4361check : import-fmt golangci-lint
4462 @git diff --exit-code
@@ -69,4 +87,4 @@ integration: all mock-build
6987
7088force :;
7189
72- .PHONY : all bpf-build mock-build sync build check import-fmt golangci-lint vendor clean integration force docker-build docker-clean
90+ .PHONY : all build-nostatic bpf-build mock-build sync build check import-fmt golangci-lint vendor clean integration force docker-build docker-clean
0 commit comments