PYTHON ?= python3

SRC_DIR ?= src
SCRIPTS_DIR ?= scripts

.PHONY: help
help:
	@echo "ML-SK Implementation Makefile"
	@echo ""
	@echo "Available targets:"
	@echo "  test          - Run comprehensive test suite"
	@echo "  experiment1   - Run Ackley function experiment"
	@echo "  experiment2   - Run multi-server queue experiment"
	@echo "  experiment3   - Run assortment optimization experiment"
	@echo "  example       - Run supply chain use case example"
	@echo "  all-experiments - Run all three experiments"
	@echo "  install-deps  - Install Python dependencies"
	@echo "  clean         - Clean generated files"

.PHONY: install-deps
install-deps:
	@echo "Installing Python dependencies..."
	pip install numpy scipy torch scikit-learn matplotlib

.PHONY: test
test:
	@echo "Running comprehensive ML-SK test suite..."
	$(PYTHON) $(SCRIPTS_DIR)/test_ml_sk_complete.py

.PHONY: experiment1
experiment1:
	@echo "Running Experiment 1: Modified Ackley Function..."
	$(PYTHON) $(SCRIPTS_DIR)/experiment_1_ackley.py

.PHONY: experiment2  
experiment2:
	@echo "Running Experiment 2: Multi-server Queue Problem..."
	$(PYTHON) $(SCRIPTS_DIR)/experiment_2_queue.py

.PHONY: experiment3
experiment3:
	@echo "Running Experiment 3: Assortment Optimization..."
	$(PYTHON) $(SCRIPTS_DIR)/experiment_3_assortment.py

.PHONY: example
example:
	@echo "Running Supply Chain Use Case Example..."
	$(PYTHON) $(SCRIPTS_DIR)/example_use_case.py

.PHONY: all-experiments
all-experiments: experiment1 experiment2 experiment3

.PHONY: clean
clean:
	@echo "Cleaning generated files..."
	find . -name "*.pyc" -delete
	find . -name "__pycache__" -type d -exec rm -rf {} +
	find . -name "*.log" -delete
	@echo "Clean complete."

.PHONY: check-deps
check-deps:
	@echo "Checking Python dependencies..."
	@$(PYTHON) -c "import numpy, scipy, torch, sklearn, matplotlib; print('All dependencies available')"