mirror of https://github.com/XS-MLVP/picker.git
91 lines
3.2 KiB
Makefile
91 lines
3.2 KiB
Makefile
SHELL := /bin/bash
|
|
.SHELLFLAGS := -eu -o pipefail -c
|
|
|
|
.PHONY: all preflight smoke template_purge export_python export_vpi_python pack_python export_java sv_build gsim_smoke export_cachecfg export_filelist export_complex_port pack_transaction pack_from_rtl pack_unsupported_type pack_multiple_classes clean
|
|
|
|
SCRIPT_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))/scripts
|
|
|
|
all: preflight smoke template_purge export_python export_vpi_python export_java sv_build gsim_smoke export_cachecfg export_filelist export_complex_port pack_transaction pack_from_rtl pack_unsupported_type pack_multiple_classes pack_python
|
|
|
|
# Ensure picker is built with python and java support before running tests
|
|
preflight:
|
|
@ROOT_DIR=$$(git rev-parse --show-toplevel 2>/dev/null || pwd); \
|
|
PICKER_BIN="$$ROOT_DIR/build/bin/picker"; \
|
|
XCOMM_SRC_DIR="$$ROOT_DIR/dependence/xcomm"; \
|
|
XCOMM_BUILD_DIR="$$ROOT_DIR/build/dependence/xcomm"; \
|
|
need_rebuild=0; \
|
|
if [ ! -x "$$PICKER_BIN" ]; then \
|
|
echo "[preflight] picker not built"; \
|
|
need_rebuild=1; \
|
|
fi; \
|
|
# python support: detect either top-level build path or xcomm standalone build path \
|
|
if [ ! -d "$$XCOMM_BUILD_DIR/python/xspcomm" ] && [ ! -d "$$XCOMM_SRC_DIR/build/python" ]; then \
|
|
echo "[preflight] xcomm python support missing"; \
|
|
need_rebuild=1; \
|
|
fi; \
|
|
# java support: detect either top-level build path or xcomm standalone build path \
|
|
if [ ! -f "$$XCOMM_BUILD_DIR/java/xspcomm-java.jar" ] && [ ! -f "$$XCOMM_SRC_DIR/build/java/xspcomm-java.jar" ]; then \
|
|
echo "[preflight] xcomm java support missing"; \
|
|
need_rebuild=1; \
|
|
fi; \
|
|
if [ "$$need_rebuild" -ne 0 ]; then \
|
|
echo "[preflight] cleaning then rebuilding picker with BUILD_XSPCOMM_SWIG=python,java"; \
|
|
if command -v nproc >/dev/null 2>&1; then NPROC=$$(nproc); else NPROC=2; fi; \
|
|
$(MAKE) -C "$$ROOT_DIR" clean; \
|
|
$(MAKE) -C "$$ROOT_DIR" BUILD_XSPCOMM_SWIG=python,java -j"$$NPROC"; \
|
|
else \
|
|
echo "[preflight] picker already has python+java support"; \
|
|
fi
|
|
|
|
smoke: preflight
|
|
bash "$(SCRIPT_DIR)/test_cli.sh"
|
|
|
|
template_purge:
|
|
bash "$(SCRIPT_DIR)/test_template_purge.sh"
|
|
|
|
export_python: preflight
|
|
bash "$(SCRIPT_DIR)/test_export_adder_python.sh"
|
|
|
|
export_vpi_python: preflight
|
|
bash "$(SCRIPT_DIR)/test_export_internal_vpi_python.sh"
|
|
|
|
pack_python: preflight
|
|
@if ! command -v vcs &> /dev/null; then \
|
|
echo "Warning: vcs not found, skipping pack_python."; \
|
|
else \
|
|
bash "$(SCRIPT_DIR)/test_pack_python.sh"; \
|
|
fi
|
|
|
|
export_java: preflight
|
|
bash "$(SCRIPT_DIR)/test_export_adder_java.sh"
|
|
|
|
sv_build: preflight
|
|
bash "$(SCRIPT_DIR)/test_sv_verilator_build.sh"
|
|
|
|
gsim_smoke: preflight
|
|
bash "$(SCRIPT_DIR)/test_export_gsim_smoke.sh"
|
|
|
|
export_cachecfg: preflight
|
|
bash "$(SCRIPT_DIR)/test_export_cachecfg_memdirect.sh"
|
|
|
|
export_filelist: preflight
|
|
bash "$(SCRIPT_DIR)/test_export_filelist.sh"
|
|
|
|
export_complex_port: preflight
|
|
bash "$(SCRIPT_DIR)/test_export_unsupported_complex_port.sh"
|
|
|
|
pack_transaction: preflight
|
|
bash "$(SCRIPT_DIR)/test_pack_transaction.sh"
|
|
|
|
pack_from_rtl: preflight
|
|
bash "$(SCRIPT_DIR)/test_pack_from_rtl.sh"
|
|
|
|
pack_unsupported_type: preflight
|
|
bash "$(SCRIPT_DIR)/test_pack_unsupported_complex_type.sh"
|
|
|
|
pack_multiple_classes: preflight
|
|
bash "$(SCRIPT_DIR)/test_pack_multiple_classes.sh"
|
|
|
|
clean:
|
|
rm -rf picker_out_* pack_example
|