# iter1 minimal compute probe — build glue.
#
# Targets ohm (Arch Linux ARM, Mesa 26.0.6, glslang + vulkan-headers installed).
# Builds the C probe and compiles GLSL → SPIR-V.

CC ?= cc
CFLAGS ?= -O0 -g -Wall -Wextra -std=c11
LDLIBS ?= -lvulkan

PROBE = probe_compute
SPV   = probe_compute.spv
GLSL  = probe_compute.comp
SRC   = probe_compute.c

all: $(PROBE) $(SPV)

$(PROBE): $(SRC)
	$(CC) $(CFLAGS) -o $@ $< $(LDLIBS)

$(SPV): $(GLSL)
	glslangValidator -V $< -o $@

run: all
	PAN_I_WANT_A_BROKEN_VULKAN_DRIVER=1 ./$(PROBE)

run-validation: all
	PAN_I_WANT_A_BROKEN_VULKAN_DRIVER=1 \
	VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
	./$(PROBE)

clean:
	rm -f $(PROBE) $(SPV)

.PHONY: all run run-validation clean
