2025-10-14 14:16:15 +02:00
|
|
|
# Destination folder for the downloaded libraries
|
|
|
|
|
LIBS_DIR := $(abspath ./libs)
|
|
|
|
|
|
2025-10-15 08:15:06 +02:00
|
|
|
UNAME_S := $(shell uname -s)
|
|
|
|
|
|
2025-10-15 08:34:44 +02:00
|
|
|
# Flags for CGO to find the headers and the shared library
|
2025-10-15 08:34:01 +02:00
|
|
|
ifeq ($(UNAME_S),Darwin)
|
|
|
|
|
CGO_CFLAGS := -I$(LIBS_DIR)
|
|
|
|
|
CGO_LDFLAGS := -L$(LIBS_DIR) -lcodex -Wl,-rpath,@executable_path/./libs
|
|
|
|
|
else
|
|
|
|
|
CGO_CFLAGS := -I$(LIBS_DIR)
|
|
|
|
|
CGO_LDFLAGS := -L$(LIBS_DIR) -lcodex -Wl,-rpath,$(LIBS_DIR)
|
|
|
|
|
endif
|
2025-10-15 08:30:01 +02:00
|
|
|
|
|
|
|
|
ifeq ($(OS),Windows_NT)
|
2025-10-15 09:30:41 +02:00
|
|
|
BIN_NAME := example.exe
|
2025-10-15 08:24:14 +02:00
|
|
|
else
|
|
|
|
|
BIN_NAME := example
|
|
|
|
|
endif
|
|
|
|
|
|
2025-10-14 14:16:15 +02:00
|
|
|
# Configuration for fetching the right binary
|
2025-10-15 06:54:58 +02:00
|
|
|
OS ?= "linux"
|
|
|
|
|
ARCH ?= "amd64"
|
2025-10-15 08:19:46 +02:00
|
|
|
VERSION ?= "v0.0.16"
|
2025-10-14 14:16:15 +02:00
|
|
|
LATEST_URL := "https://github.com/codex-storage/codex-go-bindings/releases/latest/download/codex-${OS}-${ARCH}.zip"
|
|
|
|
|
VERSIONED_URL := "https://github.com/codex-storage/codex-go-bindings/releases/download/$(VERSION)/codex-${OS}-${ARCH}.zip"
|
|
|
|
|
|
|
|
|
|
all: run
|
|
|
|
|
|
|
|
|
|
fetch:
|
2025-10-14 14:22:03 +02:00
|
|
|
@echo "Fetching libcodex from GitHub Actions: ${LATEST_URL}"
|
|
|
|
|
@curl -fSL --create-dirs -o $(LIBS_DIR)/codex-${OS}-${ARCH}.zip ${LATEST_URL}
|
2025-10-15 09:12:27 +02:00
|
|
|
unzip -o -qq $(LIBS_DIR)/codex-${OS}-${ARCH}.zip -d $(LIBS_DIR)
|
|
|
|
|
rm -f $(LIBS_DIR)/*.zip
|
2025-10-14 14:16:15 +02:00
|
|
|
|
|
|
|
|
build:
|
2025-10-15 08:25:41 +02:00
|
|
|
CGO_ENABLED=1 CGO_CFLAGS="$(CGO_CFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" go build -o $(BIN_NAME) main.go
|
2025-10-14 14:16:15 +02:00
|
|
|
|
|
|
|
|
run:
|
2025-10-15 08:45:48 +02:00
|
|
|
ifeq ($(OS),Windows_NT)
|
2025-10-15 09:14:03 +02:00
|
|
|
dir libs
|
2025-10-15 09:31:56 +02:00
|
|
|
PATH=libs:$(PATH) .\$(BIN_NAME)
|
2025-10-15 08:45:48 +02:00
|
|
|
else
|
2025-10-15 08:24:14 +02:00
|
|
|
./$(BIN_NAME)
|
2025-10-15 08:45:48 +02:00
|
|
|
endif
|
2025-10-14 14:16:15 +02:00
|
|
|
|
|
|
|
|
clean:
|
2025-10-15 08:24:14 +02:00
|
|
|
rm -f $(BIN_NAME)
|
2025-10-14 14:16:15 +02:00
|
|
|
rm -Rf $(LIBS_DIR)/*
|