39 lines
1.2 KiB
Makefile
39 lines
1.2 KiB
Makefile
VERSION := $(shell git describe --tags --abbrev=0 2>/dev/null || echo "dev")
|
|
COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
|
|
BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown")
|
|
BUILD_TIME := $(shell date "+%Y-%m-%d %H:%M:%S")
|
|
|
|
LDFLAGS := -X 'gosvc.setVersionNumber=$(VERSION)' \
|
|
-X 'gosvc.setVersionRelease=$(BRANCH)' \
|
|
-X 'gosvc.setVersionBuildTime=$(BUILD_TIME)' \
|
|
-X 'gosvc.setVersionDescription=RobotFS Service (commit: $(COMMIT))'
|
|
|
|
UNAME_S := $(shell uname -s)
|
|
|
|
BINARY_NAME := robotfs
|
|
BINARY_MAC := $(BINARY_NAME)-darwin
|
|
BINARY_LINUX := $(BINARY_NAME)-linux
|
|
|
|
.PHONY: all
|
|
all: build
|
|
|
|
.PHONY: build
|
|
build:
|
|
ifeq ($(UNAME_S),Darwin)
|
|
@echo "Building for MacOS..."
|
|
GOOS=darwin GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o $(BINARY_MAC) ./
|
|
else
|
|
@echo "Building for Linux..."
|
|
GOOS=linux GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o $(BINARY_LINUX) ./
|
|
endif
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f $(BINARY_NAME) $(BINARY_MAC) $(BINARY_LINUX)
|
|
|
|
.PHONY: help
|
|
help:
|
|
@echo "Available targets:"
|
|
@echo " all - Build for current platform (default)"
|
|
@echo " build - Build for current platform"
|
|
@echo " clean - Remove built binaries"
|