goaidb/Makefile

37 lines
1.1 KiB
Makefile
Raw Normal View History

2025-06-05 18:08:22 +08:00
# Makefile for GoAIDB - Multi-architecture build support
BINARY_NAME=goaidb
BUILD_DIR=build
GOOS ?= $(shell go env GOOS)
GOARCH ?= $(shell go env GOARCH)
.PHONY: all build clean run
all: linux-amd64 linux-arm64 darwin-amd64 darwin-arm64 windows-amd64
$(BUILD_DIR)/%:
mkdir -p $@
linux-amd64: | $(BUILD_DIR)/linux-amd64
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $(BUILD_DIR)/linux-amd64/$(BINARY_NAME)
linux-arm64: | $(BUILD_DIR)/linux-arm64
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o $(BUILD_DIR)/linux-arm64/$(BINARY_NAME)
darwin-amd64: | $(BUILD_DIR)/darwin-amd64
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o $(BUILD_DIR)/darwin-amd64/$(BINARY_NAME)
darwin-arm64: | $(BUILD_DIR)/darwin-arm64
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o $(BUILD_DIR)/darwin-arm64/$(BINARY_NAME)
windows-amd64: | $(BUILD_DIR)/windows-amd64
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o $(BUILD_DIR)/windows-amd64/$(BINARY_NAME).exe
build:
go build -o $(BINARY_NAME)
clean:
rm -rf $(BUILD_DIR)/* $(BINARY_NAME) $(BINARY_NAME).exe
run:
./$(BINARY_NAME)