mod makefile and install script for linux x86
This commit is contained in:
58
Makefile
58
Makefile
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user