2025-06-08 11:19:45 +03:00
|
|
|
# ChatSDK Makefile
|
|
|
|
|
# This builds the complete chain: Nim -> C bindings -> Go bindings -> Go example
|
|
|
|
|
|
|
|
|
|
.PHONY: all clean build-nim build-c build-go run-go-example help
|
|
|
|
|
|
|
|
|
|
# Default target
|
|
|
|
|
all: build-nim build-c build-go
|
|
|
|
|
|
|
|
|
|
# Help target
|
|
|
|
|
help:
|
|
|
|
|
@echo "ChatSDK Build System"
|
|
|
|
|
@echo "===================="
|
|
|
|
|
@echo "Available targets:"
|
|
|
|
|
@echo " all - Build everything (Nim + C + Go)"
|
|
|
|
|
@echo " build-nim - Build Nim library"
|
|
|
|
|
@echo " build-c - Build C bindings (shared library)"
|
|
|
|
|
@echo " build-go - Build Go bindings"
|
|
|
|
|
@echo " run-go-example - Run the Go example application"
|
|
|
|
|
@echo " clean - Clean all build artifacts"
|
|
|
|
|
@echo " help - Show this help message"
|
|
|
|
|
|
|
|
|
|
# Build Nim library
|
2025-06-10 15:48:29 +03:00
|
|
|
build-nim: libchatsdk
|
|
|
|
|
|
2025-06-10 15:31:30 +03:00
|
|
|
libchatsdk:
|
2025-06-08 11:19:45 +03:00
|
|
|
@echo "Building Nim library..."
|
2025-06-10 15:48:29 +03:00
|
|
|
cd chat_sdk && nim c --app:lib --opt:speed --mm:refc --out:../library/c-bindings/libchatsdk.so chat_sdk.nim
|
2025-06-08 11:19:45 +03:00
|
|
|
|
|
|
|
|
# Build C bindings
|
2025-06-10 15:48:29 +03:00
|
|
|
build-c: libchatsdk
|
2025-06-08 11:19:45 +03:00
|
|
|
@echo "C bindings ready (built with Nim)"
|
|
|
|
|
|
|
|
|
|
# Build Go bindings (just verify they compile)
|
|
|
|
|
build-go: build-c
|
|
|
|
|
@echo "Building Go bindings..."
|
2025-06-10 15:48:29 +03:00
|
|
|
cd library/go-bindings && go build .
|
2025-06-08 11:19:45 +03:00
|
|
|
|
|
|
|
|
# Run Go example
|
|
|
|
|
run-go-example: build-go
|
|
|
|
|
@echo "Running Go example..."
|
|
|
|
|
cd examples/go-app && \
|
2025-06-10 15:48:29 +03:00
|
|
|
LD_LIBRARY_PATH=../../library/c-bindings:$$LD_LIBRARY_PATH \
|
2025-06-08 11:19:45 +03:00
|
|
|
go run main.go
|
|
|
|
|
|
|
|
|
|
# Clean all build artifacts
|
|
|
|
|
clean:
|
|
|
|
|
@echo "Cleaning build artifacts..."
|
2025-06-10 15:48:29 +03:00
|
|
|
rm -f library/c-bindings/*.so library/c-bindings/*.a
|
|
|
|
|
rm -rf chat_sdk/nimcache library/c-bindings/nimcache
|
|
|
|
|
cd library/go-bindings && go clean
|
2025-06-08 11:19:45 +03:00
|
|
|
cd examples/go-app && go clean
|
|
|
|
|
|
|
|
|
|
# Test the Nim library directly
|
|
|
|
|
test-nim:
|
|
|
|
|
@echo "Testing Nim library directly..."
|
2025-06-10 15:48:29 +03:00
|
|
|
cd chat_sdk && nim r chat_sdk.nim
|