# 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)