fix windows make build error and support custom build env (#2281)
This commit is contained in:
parent
b5ce6209fd
commit
170ae09606
1 changed files with 26 additions and 10 deletions
36
Makefile
36
Makefile
|
|
@ -5,6 +5,7 @@ BINARY_NAME=picoclaw
|
||||||
BUILD_DIR=build
|
BUILD_DIR=build
|
||||||
CMD_DIR=cmd/$(BINARY_NAME)
|
CMD_DIR=cmd/$(BINARY_NAME)
|
||||||
MAIN_GO=$(CMD_DIR)/main.go
|
MAIN_GO=$(CMD_DIR)/main.go
|
||||||
|
EXT=
|
||||||
|
|
||||||
# Version
|
# Version
|
||||||
VERSION?=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
VERSION?=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
||||||
|
|
@ -69,9 +70,11 @@ WORKSPACE_DIR?=$(PICOCLAW_HOME)/workspace
|
||||||
WORKSPACE_SKILLS_DIR=$(WORKSPACE_DIR)/skills
|
WORKSPACE_SKILLS_DIR=$(WORKSPACE_DIR)/skills
|
||||||
BUILTIN_SKILLS_DIR=$(CURDIR)/skills
|
BUILTIN_SKILLS_DIR=$(CURDIR)/skills
|
||||||
|
|
||||||
|
LSCMD=ls -sf
|
||||||
|
|
||||||
# OS detection
|
# OS detection
|
||||||
UNAME_S:=$(shell uname -s)
|
UNAME_S?=$(shell uname -s)
|
||||||
UNAME_M:=$(shell uname -m)
|
UNAME_M?=$(shell uname -m)
|
||||||
|
|
||||||
# Platform-specific settings
|
# Platform-specific settings
|
||||||
ifeq ($(UNAME_S),Linux)
|
ifeq ($(UNAME_S),Linux)
|
||||||
|
|
@ -103,7 +106,20 @@ else ifeq ($(UNAME_S),Darwin)
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
PLATFORM=$(UNAME_S)
|
PLATFORM=$(UNAME_S)
|
||||||
ARCH=$(UNAME_M)
|
ifeq ($(UNAME_M),x86_64)
|
||||||
|
ARCH?=amd64
|
||||||
|
else
|
||||||
|
ARCH?=$(UNAME_M)
|
||||||
|
endif
|
||||||
|
# Detect Windows (Git Bash / MSYS2)
|
||||||
|
IS_WINDOWS:=$(if $(findstring MINGW,$(UNAME_S)),yes,$(if $(findstring MSYS,$(UNAME_S)),yes,$(if $(findstring CYGWIN,$(UNAME_S)),yes,no)))
|
||||||
|
ifeq ($(IS_WINDOWS),yes)
|
||||||
|
EXT=.exe
|
||||||
|
LSCMD=cp
|
||||||
|
else ifeq ($(UNAME_S),windows) // failsafe for force windows build in other OS
|
||||||
|
EXT=.exe
|
||||||
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
BINARY_PATH=$(BUILD_DIR)/$(BINARY_NAME)-$(PLATFORM)-$(ARCH)
|
BINARY_PATH=$(BUILD_DIR)/$(BINARY_NAME)-$(PLATFORM)-$(ARCH)
|
||||||
|
|
@ -120,23 +136,23 @@ generate:
|
||||||
|
|
||||||
## build: Build the picoclaw binary for current platform
|
## build: Build the picoclaw binary for current platform
|
||||||
build: generate
|
build: generate
|
||||||
@echo "Building $(BINARY_NAME) for $(PLATFORM)/$(ARCH)..."
|
@echo "Building $(BINARY_NAME)$(EXT) for $(PLATFORM)/$(ARCH)..."
|
||||||
@mkdir -p $(BUILD_DIR)
|
@mkdir -p $(BUILD_DIR)
|
||||||
@GOARCH=${ARCH} $(GO) build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o $(BINARY_PATH) ./$(CMD_DIR)
|
@GOARCH=${ARCH} $(GO) build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o $(BINARY_PATH)$(EXT) ./$(CMD_DIR)
|
||||||
@echo "Build complete: $(BINARY_PATH)"
|
@echo "Build complete: $(BINARY_PATH)$(EXT)"
|
||||||
@ln -sf $(BINARY_NAME)-$(PLATFORM)-$(ARCH) $(BUILD_DIR)/$(BINARY_NAME)
|
@$(LSCMD) $(BINARY_NAME)-$(PLATFORM)-$(ARCH)$(EXT) $(BUILD_DIR)/$(BINARY_NAME)$(EXT)
|
||||||
|
|
||||||
## build-launcher: Build the picoclaw-launcher (web console) binary
|
## build-launcher: Build the picoclaw-launcher (web console) binary
|
||||||
build-launcher:
|
build-launcher:
|
||||||
@echo "Building picoclaw-launcher for $(PLATFORM)/$(ARCH)..."
|
@echo "Building picoclaw-launcher for $(PLATFORM)/$(ARCH)..."
|
||||||
@mkdir -p $(BUILD_DIR)
|
@mkdir -p $(BUILD_DIR)
|
||||||
@GOARCH=${ARCH} $(MAKE) -C web build \
|
@GOARCH=${ARCH} $(MAKE) -C web build \
|
||||||
OUTPUT="$(CURDIR)/$(BUILD_DIR)/picoclaw-launcher-$(PLATFORM)-$(ARCH)" \
|
OUTPUT="$(CURDIR)/$(BUILD_DIR)/picoclaw-launcher-$(PLATFORM)-$(ARCH)$(EXT)" \
|
||||||
WEB_GO='$(WEB_GO)' \
|
WEB_GO='$(WEB_GO)' \
|
||||||
GO_BUILD_TAGS='$(GO_BUILD_TAGS)' \
|
GO_BUILD_TAGS='$(GO_BUILD_TAGS)' \
|
||||||
LDFLAGS='$(LDFLAGS)'
|
LDFLAGS='$(LDFLAGS)'
|
||||||
@ln -sf picoclaw-launcher-$(PLATFORM)-$(ARCH) $(BUILD_DIR)/picoclaw-launcher
|
@$(LSCMD) picoclaw-launcher-$(PLATFORM)-$(ARCH)$(EXT) $(BUILD_DIR)/picoclaw-launcher$(EXT)
|
||||||
@echo "Build complete: $(BUILD_DIR)/picoclaw-launcher"
|
@echo "Build complete: $(BUILD_DIR)/picoclaw-launcher$(EXT)"
|
||||||
|
|
||||||
build-launcher-frontend:
|
build-launcher-frontend:
|
||||||
@$(MAKE) -C web build-frontend
|
@$(MAKE) -C web build-frontend
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue