accounts/Makefile

52 lines
1.2 KiB
Makefile

# Simplified Makefile for XControl
GO=go
APP_NAME=xcontrol
UNAME_S := $(shell uname -s)
UNAME_M := $(shell uname -m)
.PHONY: all build agent vet test clean release \
macos-x64 macos-arm64 windows-x64 linux-x64 linux-arm64
all: vet test build
build:
$(GO) build -o bin/$(APP_NAME) ./cmd/api
agent:
$(GO) build -o bin/$(APP_NAME)-agent ./cmd/agent
vet:
$(GO) vet ./...
test:
$(GO) test ./...
clean:
rm -rf bin build
macos-x64:
@if [ "$(UNAME_S)" = "Darwin" ] && [ "$(UNAME_M)" = "x86_64" ]; then \
GOOS=darwin GOARCH=amd64 $(GO) build -o build/macos-x64/$(APP_NAME) ./cmd/api; \
else \
echo "macos-x64 build requires macOS x86_64"; \
fi
macos-arm64:
@if [ "$(UNAME_S)" = "Darwin" ] && [ "$(UNAME_M)" = "arm64" ]; then \
GOOS=darwin GOARCH=arm64 $(GO) build -o build/macos-arm64/$(APP_NAME) ./cmd/api; \
else \
echo "macos-arm64 build requires macOS arm64"; \
fi
windows-x64:
GOOS=windows GOARCH=amd64 $(GO) build -o build/windows-x64/$(APP_NAME).exe ./cmd/api
linux-x64:
GOOS=linux GOARCH=amd64 $(GO) build -o build/linux-x64/$(APP_NAME) ./cmd/api
linux-arm64:
GOOS=linux GOARCH=arm64 $(GO) build -o build/linux-arm64/$(APP_NAME) ./cmd/api
release: macos-x64 macos-arm64 windows-x64 linux-x64 linux-arm64