PROTOC     ?= protoc
PROTO_DIR  := proto
GEN_DIR    := $(PROTO_DIR)/generated
PROTO_FILES := \
    $(PROTO_DIR)/primitives.proto \
    $(PROTO_DIR)/variation.proto \
    $(PROTO_DIR)/materials.proto \
    $(PROTO_DIR)/models.proto \
    $(PROTO_DIR)/stack.proto

.PHONY: all clean check

all: check $(GEN_DIR)/__init__.py

check:
	@command -v $(PROTOC) >/dev/null 2>&1 || \
	    { echo "ERROR: protoc not found. Install from https://github.com/protocolbuffers/protobuf/releases"; exit 1; }

$(GEN_DIR)/__init__.py: $(PROTO_FILES)
	mkdir -p $(GEN_DIR)
	$(PROTOC) --proto_path=$(PROTO_DIR) --python_out=$(GEN_DIR) $(PROTO_FILES)
	touch $(GEN_DIR)/__init__.py

clean:
	rm -rf $(GEN_DIR)
