Ctrl K
ComunidadGuías…

Makefile

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Top-level orchestrator. Shared vars/macros live in build/common.mk; each
# product owns its targets in <project>/build.mk. One make process, one DAG —
# includes (not recursive make) so cross-project prerequisites resolve.
# No default build target — bare `make` prints `help`; specify a target explicitly.
.DEFAULT_GOAL := help

include build/common.mk
include build/rust-builder/build.mk
include shared-libs/crates/start-core/build.mk
include shared-libs/crates/rpc-toolkit/build.mk
include shared-libs/ts-modules/build.mk
include projects/start-sdk/build.mk
include projects/start-cli/build.mk
include projects/start-registry/build.mk
include projects/start-tunnel/build.mk
include projects/start-os/build.mk
include projects/start-wrt/build.mk
include projects/start-docs/build.mk

.PHONY: help start-os metadata start-os-install clean format format-check start-cli-install start-cli start-cli-deb start-os-uis start-os-ui start-os-emulate-reflash start-os-deb start-os-$(IMAGE_TYPE) start-os-squashfs start-os-wormhole start-os-wormhole-deb start-os-update start-os-update-from-gha test start-core-test start-sdk-test backup-fs-test container-runtime-test start-os-scripts-test start-wrt-test start-registry start-registry-install start-tunnel start-tunnel-install start-core-ts-bindings

help:
	@echo "No default target — specify one. Common targets:"
	@echo "  start-os start-os-deb start-os-squashfs start-os-ui start-os-uis start-os-install   (StartOS)"
	@echo "  start-cli start-cli-deb start-registry start-tunnel start-wrt start-wrt-image        (other products)"
	@echo "  test start-core-test start-sdk-test container-runtime-test start-os-scripts-test start-wrt-test release-notes-test (tests)"
	@echo "  format format-check start-core-ts-bindings rust-builder rust-builder-check clean     (tooling)"
	@echo "See AGENTS.md for the full list."

touch:
	touch $(STARTOS_TARGETS)

metadata: $(VERSION_FILE) $(PLATFORM_FILE) $(ENVIRONMENT_FILE) $(GIT_HASH_FILE)

# Per-project cleans live in each build.mk; this only aggregates them.
clean: start-core-clean web-clean start-sdk-clean start-cli-clean start-registry-clean start-tunnel-clean start-os-clean start-wrt-clean start-docs-clean

# Whole-repo formatting: rustfmt (pinned nightly, in a container), then prettier
# and taplo (pinned via npm, native). Per-project `<project>-format` targets format
# just one scope through the same tools/config.
format:
	$(FMT) cargo fmt --all
	npm --prefix . run format
	npm --prefix . run format:toml

# Read-only verification (what CI runs); mirrors `format`.
format-check:
	$(FMT) cargo fmt --all --check
	npm --prefix . run format:check
	npm --prefix . run format:toml:check

.PHONY: release-notes-test package-ci-test
release-notes-test:
	node --test scripts/tests/*-test.mjs
	bash scripts/tests/release-resume-test.sh
	bash scripts/tests/apt-publish-test.sh

package-ci-test:
	node --test .github/actions/tests/*.test.mjs

.PHONY: bash-completion-test
bash-completion-test: build/bash-completion build/tests/bash-completion-test.sh
	bash build/tests/bash-completion-test.sh

test: | start-core-test start-sdk-test backup-fs-test container-runtime-test start-os-scripts-test bash-completion-test start-wrt-test release-notes-test rpc-toolkit-test