CASES := \ case00_boot_scalar \ case01_scalar_spawn \ case02_tensor_spawn_stop \ case03_dual_fetch_issue \ case04_scalar_barrier \ case05_tensor_barrier \ case06_masked_barrier \ case07_tensor_csr_tmc \ case08_tensor_lsu_optional \ case09_scalar_tmem_ldst \ case10_tensor_scalar_tmem_handoff \ case11_scalar_tmem_softmax_stage \ case12_flash_pv_accum \ case12_1_scalar_tmem_cb_probe \ case12_2_flash_pv_p_probe \ case12_3_scalar_tmem_lane_store \ case13_flash_pv_two_warps \ case14_flash_pv_k64 \ case15_flash_softmax_pv_stage \ case16_flash_full_pipeline \ case17_flash_exp_softmax_probe SMOKE_CASES := \ case00_boot_scalar \ case01_scalar_spawn \ case02_tensor_spawn_stop \ case03_dual_fetch_issue BARRIER_CASES := \ case04_scalar_barrier \ case05_tensor_barrier \ case06_masked_barrier .PHONY: all smoke barriers full clean clean-all $(CASES) all: full smoke: $(SMOKE_CASES) barriers: $(BARRIER_CASES) full: $(CASES) $(CASES): $(MAKE) -C $@ clean: set -e; for dir in $(CASES); do $(MAKE) -C $$dir clean; done clean-all: set -e; for dir in $(CASES); do $(MAKE) -C $$dir clean-all; done