Implement multi-platform build system with pure Go support

- Introduced a comprehensive build system that supports multiple platforms (Linux, macOS, Windows, Android) using pure Go builds (`CGO_ENABLED=0`).
- Updated all build and test scripts to ensure compatibility with the new purego approach, allowing for dynamic loading of `libsecp256k1` at runtime.
- Added detailed documentation on the build process, platform detection, and deployment options.
- Enhanced CI/CD workflows to automate builds for all supported platforms and include necessary libraries in releases.
- Updated `.gitignore` to exclude build output files.
- Created new documentation files for deployment and multi-platform build summaries.
This commit is contained in:
2025-11-04 20:29:19 +00:00
parent e0a95ca1cd
commit 202d3171f9
22 changed files with 1732 additions and 30 deletions

View File

@@ -12,13 +12,20 @@ echo "Checking Go version..."
go version
echo ""
# Build without cgo
echo "Building with cgo disabled..."
# Setup library path (runtime optional)
if [ -f "pkg/crypto/p8k/libsecp256k1.so" ]; then
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)/pkg/crypto/p8k"
echo "Library path set for libsecp256k1.so (runtime optional)"
fi
echo ""
# Build with pure Go + purego (no CGO needed)
echo "Building with pure Go + purego..."
CGO_ENABLED=0 go build -v ./...
echo ""
# Test without cgo
echo "Testing with cgo disabled..."
# Test with pure Go + purego
echo "Testing with pure Go + purego..."
CGO_ENABLED=0 go test -v $(go list ./... | xargs -n1 sh -c 'ls $0/*_test.go 1>/dev/null 2>&1 && echo $0' | grep .)
echo ""