40 lines
1.4 KiB
Makefile
40 lines
1.4 KiB
Makefile
.PHONY: help build build-linux build-windows build-all clean
|
|
|
|
APP_NAME := luxtools-client
|
|
DIST_DIR := dist
|
|
|
|
NATIVE_GOOS := $(shell go env GOOS)
|
|
NATIVE_GOARCH := $(shell go env GOARCH)
|
|
NATIVE_EXT := $(if $(filter windows,$(NATIVE_GOOS)),.exe,)
|
|
|
|
# Native (current platform)
|
|
NATIVE_EXE := $(APP_NAME)$(if $(filter windows,$(OS)),.exe,)
|
|
|
|
help:
|
|
@echo "Targets:"
|
|
@echo " make build Build for current platform -> $(DIST_DIR)/$(APP_NAME)$(NATIVE_EXT) ($(NATIVE_GOOS)/$(NATIVE_GOARCH))"
|
|
@echo " make build-linux Cross-compile -> $(DIST_DIR)/$(APP_NAME)-linux-amd64"
|
|
@echo " make build-windows Cross-compile -> $(DIST_DIR)/$(APP_NAME)-windows-amd64.exe"
|
|
@echo " make build-all Build linux + windows artifacts"
|
|
@echo " make clean Remove $(DIST_DIR)/"
|
|
|
|
$(DIST_DIR):
|
|
@mkdir -p $(DIST_DIR)
|
|
|
|
build: $(DIST_DIR)
|
|
@echo "Building $(APP_NAME) for current platform..."
|
|
go build -trimpath -o $(DIST_DIR)/$(APP_NAME)$(NATIVE_EXT) .
|
|
|
|
build-linux: $(DIST_DIR)
|
|
@echo "Cross-compiling $(APP_NAME) for linux/amd64..."
|
|
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -o $(DIST_DIR)/$(APP_NAME)-linux-amd64 .
|
|
|
|
build-windows: $(DIST_DIR)
|
|
@echo "Cross-compiling $(APP_NAME) for windows/amd64..."
|
|
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -o $(DIST_DIR)/$(APP_NAME)-windows-amd64.exe .
|
|
|
|
build-all: build-linux build-windows
|
|
|
|
clean:
|
|
@rm -rf $(DIST_DIR)
|