hicon-consensus
Version:
Node.js bindings for HiCon hybrid consensus algorithm
127 lines (102 loc) • 2.85 kB
Plain Text
# Makefile para el Algoritmo de Consenso Híbrido CCR-CCC
# Variables
CARGO := cargo
RUSTC := rustc
RUSTDOC := rustdoc
RUSTFMT := rustfmt
CLIPPY := clippy
# Nombre del proyecto
PROJECT_NAME := hybridconsensus
# Directorio de salida
TARGET_DIR := target
# Modo de compilación (debug o release)
BUILD_MODE := debug
# Rutas de archivos y directorios
SRC_DIR := src
TESTS_DIR := tests
BENCHES_DIR := benches
DOCS_DIR := docs
# Objetivos
# Objetivo por defecto
all: build test
# Compilar el proyecto
build:
$(CARGO) build
# Ejecutar tests
test:
$(CARGO) test
# Ejecutar benchmarks
bench:
$(CARGO) bench
# Generar documentación
doc:
$(CARGO) doc --no-deps
# Limpiar archivos generados
clean:
$(CARGO) clean
# Formatear código
fmt:
$(CARGO) fmt
# Ejecutar linter (Clippy)
lint:
$(CARGO) clippy -- -D warnings
# Compilar en modo release
release:
$(CARGO) build --release
# Ejecutar el programa
run:
$(CARGO) run
# Verificar el proyecto sin compilar
check:
$(CARGO) check
# Actualizar dependencias
update:
$(CARGO) update
# Generar un nuevo proyecto de prueba
new_test:
@read -p "Enter test name: " name; \
$(CARGO) new --lib $(TESTS_DIR)/$$name
# Generar un nuevo benchmark
new_bench:
@read -p "Enter benchmark name: " name; \
echo "Generating new benchmark: $$name"; \
cp $(BENCHES_DIR)/template.rs $(BENCHES_DIR)/$$name.rs
# Ejecutar una prueba específica
run_test:
@read -p "Enter test name: " name; \
$(CARGO) test $$name
# Ejecutar un benchmark específico
run_bench:
@read -p "Enter benchmark name: " name; \
$(CARGO) bench $$name
# Generar informe de cobertura (requiere cargo-tarpaulin)
coverage:
cargo tarpaulin --out Html
# Publicar el paquete en crates.io
publish:
$(CARGO) publish
# Ayuda
help:
@echo "Makefile para $(PROJECT_NAME)"
@echo ""
@echo "Objetivos disponibles:"
@echo " all : Compilar y ejecutar tests (por defecto)"
@echo " build : Compilar el proyecto"
@echo " test : Ejecutar tests"
@echo " bench : Ejecutar benchmarks"
@echo " doc : Generar documentación"
@echo " clean : Limpiar archivos generados"
@echo " fmt : Formatear código"
@echo " lint : Ejecutar linter (Clippy)"
@echo " release : Compilar en modo release"
@echo " run : Ejecutar el programa"
@echo " check : Verificar el proyecto sin compilar"
@echo " update : Actualizar dependencias"
@echo " new_test : Generar un nuevo proyecto de prueba"
@echo " new_bench : Generar un nuevo benchmark"
@echo " run_test : Ejecutar una prueba específica"
@echo " run_bench : Ejecutar un benchmark específico"
@echo " coverage : Generar informe de cobertura"
@echo " publish : Publicar el paquete en crates.io"
@echo " help : Mostrar esta ayuda"