@@ -694,3 +694,41 @@ endif
694694
695695run_lib_files_test :
696696 docker run --entrypoint bash -v $(realpath tests/file_lists) :/test $(OVMS_CPP_DOCKER_IMAGE ) :$(OVMS_CPP_IMAGE_TAG )$(IMAGE_TAG_SUFFIX ) ./test/test_release_files.sh ${BAZEL_DEBUG_FLAGS} > file_test.log 2>&1 ; exit_status=$$? ; tail -200 file_test.log ; exit $$ exit_status
697+
698+ # ── Build Metrics ──────────────────────────────────────────────
699+ # Run all 5 build metrics inside an existing -build container:
700+ # make build_metrics BUILD_CONTAINER=u24a_ovms1
701+ #
702+ # Compare current vs baseline (git diff shows changes after commit):
703+ # make build_metrics_compare
704+ #
705+ METRICS_TARGET ?= //src/...
706+ METRICS_DIR ?= tools/build_metrics/current
707+ BUILD_CONTAINER ?= $(OVMS_CPP_IMAGE_TAG )$(IMAGE_TAG_SUFFIX )
708+ METRICS_BEFORE ?= tools/build_metrics/prebuild_baseline
709+ METRICS_AFTER ?= $(METRICS_DIR )
710+
711+ build_metrics :
712+ @mkdir -p $(METRICS_DIR )
713+ docker exec $(BUILD_CONTAINER ) bash -c \
714+ " cd /ovms && python3 tools/build_metrics/measure_dep_fanin.py /ovms/$( METRICS_DIR) /deps.csv '$( METRICS_TARGET) '"
715+ docker exec $(BUILD_CONTAINER ) bash -c \
716+ " cd /ovms && python3 tools/build_metrics/measure_tu_sizes.py /ovms/$( METRICS_DIR) /tu.csv '$( METRICS_TARGET) '"
717+ docker exec $(BUILD_CONTAINER ) bash -c \
718+ " cd /ovms && python3 tools/build_metrics/measure_build_graph.py /ovms/$( METRICS_DIR) /trans_srcs.csv /ovms/$( METRICS_DIR) /impact.csv"
719+ docker exec $(BUILD_CONTAINER ) bash -c \
720+ " cd /ovms && python3 tools/build_metrics/measure_header_fanin.py /ovms/$( METRICS_DIR) /headers.csv '$( METRICS_TARGET) '"
721+ @# Filter TU and headers to src/ only (drop external/third_party rows)
722+ head -1 $(METRICS_DIR ) /tu.csv > $(METRICS_DIR ) /tu_src.csv
723+ grep ' ^src/' $(METRICS_DIR ) /tu.csv >> $(METRICS_DIR ) /tu_src.csv || true
724+ head -1 $(METRICS_DIR ) /headers.csv > $(METRICS_DIR ) /headers_src.csv
725+ grep ' ^src/' $(METRICS_DIR ) /headers.csv >> $(METRICS_DIR ) /headers_src.csv || true
726+ @# Remove unfiltered intermediates (only _src variants are committed)
727+ rm -f $(METRICS_DIR ) /tu.csv $(METRICS_DIR ) /headers.csv
728+ @echo " === Metrics saved to $( METRICS_DIR) / ==="
729+
730+ build_metrics_compare :
731+ python3 tools/build_metrics/compare_build_metrics.py \
732+ --before-dir $(METRICS_BEFORE ) \
733+ --after-dir $(METRICS_AFTER ) \
734+ --scopes all,non-test,test
0 commit comments