mod makefile and install script for linux x86

This commit is contained in:
LC mac
2026-01-12 16:19:01 +08:00
parent 7fb54420ec
commit dd2d154c9a
22 changed files with 419 additions and 127 deletions

View File

@@ -82,6 +82,11 @@ help:
@echo " • vendor-linux works on any platform with Docker"
@echo " • binary-linux works on any platform with Docker"
@echo " • All other targets work on macOS and Linux"
@echo "🛠️ Development workflow (works on macOS + Linux):"
@echo " make install-dev - Create venv and install dev dependencies (includes pytest)"
@echo " make install - Create venv and install production dependencies only"
@echo " make test - Run test suite (requires install-dev)"
@echo " make test-all - Install dev deps + run all tests"
# ---------- Build reusable image ----------
@@ -103,22 +108,34 @@ vendor-macos: requirements.txt
cd $(VENDOR_MACOS) && shasum -a 256 *.whl > SHA256SUMS
@echo "✓ macOS ARM64 wheels: $(VENDOR_MACOS)/"
.PHONY: vendor-linux
vendor-linux: requirements.txt build-image
@echo "Building Linux x86_64 wheels (Docker)..."
mkdir -p $(VENDOR_LINUX)
.PHONY: vendor-linux-dev
vendor-linux-dev: requirements-dev.txt
@echo "Building Linux x86_64 dev wheels (Docker)..."
mkdir -p $(VENDOR_LINUX)-dev
docker run --rm \
--platform linux/amd64 \
-v "$$PWD":$(WORKDIR) \
-w $(WORKDIR) \
$(IMAGE) \
python:3.12-slim \
bash -c " \
set -e && \
apt-get update -qq && apt-get install -y -qq gcc g++ make libffi-dev && \
pip install --upgrade pip && \
pip download --dest $(VENDOR_LINUX) -r requirements.txt && \
pip wheel --wheel-dir $(VENDOR_LINUX) --no-deps $(VENDOR_LINUX)/*.tar.gz 2>/dev/null || true && \
rm -f $(VENDOR_LINUX)/*.tar.gz && \
cd $(VENDOR_LINUX) && sha256sum *.whl > SHA256SUMS \
pip download --dest $(VENDOR_LINUX)-dev -r requirements-dev.txt && \
pip wheel --wheel-dir $(VENDOR_LINUX)-dev --no-deps $(VENDOR_LINUX)-dev/*.tar.gz 2>/dev/null || true && \
rm -f $(VENDOR_LINUX)-dev/*.tar.gz && \
cd $(VENDOR_LINUX)-dev && sha256sum *.whl > SHA256SUMS \
"
@echo "✓ Linux x86_64 wheels: $(VENDOR_LINUX)/"
@echo "✓ Linux x86_64 dev wheels: $(VENDOR_LINUX)-dev/"
.PHONY: vendor-all-dev
vendor-all-dev: vendor-linux vendor-linux-dev
@echo ""
@echo "✓ All platform wheels (runtime + dev):"
@echo " Linux x86_64 (runtime): $(VENDOR_LINUX)/"
@echo " Linux x86_64 (dev): $(VENDOR_LINUX)-dev/"
.PHONY: vendor-all
vendor-all: vendor-macos vendor-linux
@@ -216,6 +233,27 @@ test:
pytest -v tests/test_vectors.py && \
python src/pyhdwallet.py test
.PHONY: install-dev
install-dev: requirements-dev.txt
@if [ ! -d "$(VENV_HOST)" ]; then \
echo "Creating venv: $(VENV_HOST)"; \
python3.12 -m venv $(VENV_HOST); \
fi
. $(VENV_HOST)/bin/activate && \
pip install --upgrade pip && \
pip install -r requirements-dev.txt && \
echo "✓ Development environment ready: $(VENV_HOST)" && \
echo " Installed: production deps + pytest"
.PHONY: test-all
test-all: install-dev
@. $(VENV_HOST)/bin/activate && \
pytest -v tests/test_vectors.py && \
python src/pyhdwallet.py test && \
echo "" && \
echo "✅ All tests passed!"
# ---------- Warm container lifecycle ----------
.PHONY: up
up: build-image