1- .PHONY : build clean docs docs-cli docs-local docs-nav install test uninstall
1+ .PHONY : build build-dev build-linux build-linux-arm64  clean docs docs-cli docs-local docs-nav install local-down local-up  test uninstall
22
33MODULE_PATH  := github.com/mozilla-ai/mcpd/v2
44
@@ -13,42 +13,58 @@ INSTALL_DIR := /usr/local/bin
1313#    - e.g., "dev" if git is not available or no commits yet
1414VERSION  := $(shell  git describe --tags --always --dirty 2>/dev/null || echo "dev") 
1515
16- #  Linker flags for injecting version
16+ #  Get commit hash and date
17+ COMMIT  := $(shell  git rev-parse HEAD 2>/dev/null || echo "unknown") 
18+ DATE  := $(shell  date -u +"% Y-% m-% dT% H:% M:% SZ") 
19+ 
20+ #  Linker flags for injecting version and optimizations
1721#  The path is MODULE_PATH/package.variableName
18- LDFLAGS  := -X '$(MODULE_PATH ) /internal/cmd.version=$(VERSION ) '
22+ LDFLAGS  := -s -w -X '$(MODULE_PATH ) /internal/cmd.version=$(VERSION ) ' \ 
23+ 				-X '$(MODULE_PATH ) /internal/cmd.commit=$(COMMIT ) ' \ 
24+ 				-X '$(MODULE_PATH ) /internal/cmd.date=$(DATE ) '
25+ 
26+ #  Build flags for optimization
27+ BUILDFLAGS  := -trimpath
1928
2029test :
2130	go test  ./...
2231
2332build :
24- 	@echo " building mcpd (with flags : ${LDFLAGS}  )..." 
25- 	@go build -o mcpd -ldflags=" ${ LDFLAGS}  " . 
33+ 	@echo " building mcpd (version:  $( VERSION ) , commit : $(  COMMIT ) " 
34+ 	@go build $( BUILDFLAGS )   -o mcpd -ldflags=" $(  LDFLAGS) " . 
2635
2736build-linux :
28- 	@echo " building mcpd for amd64/linux (with flags : ${LDFLAGS}  )..." 
29- 	@GOOS=linux GOARCH=amd64 go build -o mcpd -ldflags=" ${ LDFLAGS}  " . 
37+ 	@echo " building mcpd for amd64/linux (version:  $( VERSION ) , commit : $(  COMMIT ) " 
38+ 	@GOOS=linux GOARCH=amd64 go build $( BUILDFLAGS )   -o mcpd -ldflags=" $(  LDFLAGS) " . 
3039
3140build-linux-arm64 :
32- 	@echo " building mcpd for arm64/linux (with flags: ${LDFLAGS} )..." 
33- 	@GOOS=linux GOARCH=arm64 go build -o mcpd -ldflags=" ${LDFLAGS} " . 
41+ 	@echo " building mcpd for arm64/linux (version: $( VERSION) $( COMMIT) " 
42+ 	@GOOS=linux GOARCH=arm64 go build $(BUILDFLAGS )  -o mcpd -ldflags=" $( LDFLAGS) " . 
43+ 
44+ #  For development builds without optimizations (for debugging)
45+ build-dev :
46+ 	@echo " building mcpd for development (version: $( VERSION) $( COMMIT) " 
47+ 	@go build -o mcpd -ldflags=" -X '$( MODULE_PATH) $( VERSION) \ 
48+ 		-X ' $(MODULE_PATH)/internal/cmd.commit=$(COMMIT)' \ 
49+ 		-X ' $(MODULE_PATH)/internal/cmd.date=$(DATE)' "  .
3450
3551install : build
3652	@#  Copy the executable to the install directory
3753	@#  Requires sudo if INSTALL_DIR is a system path like /usr/local/bin
54+ 	@echo " installing mcpd to $( INSTALL_DIR) " 
3855	@cp mcpd $(INSTALL_DIR ) /mcpd
39- 	@echo  " mcpd installed to  $( INSTALL_DIR) " 
56+ 	@chmod +x  $(INSTALL_DIR ) /mcpd
4057
4158clean :
4259	@#  Remove the built executable and any temporary files
60+ 	@echo " cleaning up local build artifacts..." 
4361	@rm -f mcpd #  The executable itself
44- 	@#  Add any other build artifacts here if they accumulate (e.g., cache files)
45- 	@echo " build artifacts cleaned" 
4662
4763uninstall :
4864	@#  Remove the installed executable from the system
4965	@#  Requires sudo if INSTALL_DIR is a system path
66+ 	@echo " uninstalling mcpd from $( INSTALL_DIR) " 
5067	@rm -f $(INSTALL_DIR ) /mcpd
51- 	@echo " mcpd uninstalled from $( INSTALL_DIR) " 
5268
5369#  Runs MkDocs locally
5470docs : docs-local
0 commit comments