56 lines
2.4 KiB
Makefile
56 lines
2.4 KiB
Makefile
# =============================================================================
|
||
# Корневой justfile — точка входа для всех команд
|
||
# Может выполняться на хосте или внутри devcontainer
|
||
#
|
||
# Быстрый старт:
|
||
# just # показать все доступные команды
|
||
# just bootstrap # первая настройка после git clone (на хосте)
|
||
# just build ... # сборка (внутри devcontainer)
|
||
# just host::flash # прошивка (на хосте)
|
||
# =============================================================================
|
||
|
||
# === Глобальные настройки ===
|
||
# Все модули наследуют эти настройки
|
||
|
||
# Bash вместо sh; -e прерывает при ошибке, -u — при необъявленной переменной,
|
||
# -o pipefail — при ошибке в любом элементе пайпа
|
||
set shell := ["bash", "-euo", "pipefail", "-c"]
|
||
# экспортируем все just-переменные в окружение
|
||
set export
|
||
# автоматически загружать .env
|
||
set dotenv-load
|
||
|
||
# === Общие переменные (доступны во всех модулях через export) ===
|
||
BOARD := env('BOARD', 'MIMXRT1052')
|
||
BUILD_DIR := env('BUILD_DIR', justfile_directory() / 'build')
|
||
TOOLS_DIR := env('TOOLS_DIR', justfile_directory() / 'tools/host')
|
||
CACHE_DIR := justfile_directory() / '.cache'
|
||
|
||
# === Модули ===
|
||
# Каждый модуль — это namespace с изолированными рецептами
|
||
# host.just — операции на хост-машине
|
||
mod host 'just/host.just'
|
||
# build.just — сборка в DevContainer
|
||
mod build 'just/build.just'
|
||
# ci.just — CI/CD сценарии
|
||
mod ci 'just/ci.just'
|
||
|
||
# === Default рецепт ===
|
||
# Вызывается при `just` без аргументов
|
||
# Показывает полное дерево команд из всех модулей
|
||
|
||
default:
|
||
@just --list --list-submodules
|
||
|
||
# === Популярные алиасы ===
|
||
[doc('Первичная настройка окружения после git clone (на хосте)')]
|
||
init:
|
||
@just host::bootstrap
|
||
|
||
[doc('Собрать все HAB-образы в Release')]
|
||
build-all:
|
||
@just build::hab-all-release
|
||
|
||
[doc('Запустить CI pipeline')]
|
||
run-ci:
|
||
@just ci::pipeline
|