CC = gcc
CFLAGS = -Wall -Wextra -O2 -fPIC -Iinclude
LDFLAGS = -shared -lm
PREFIX = /usr/local
LIBDIR = $(PREFIX)/lib

SRC = src/libtodraw.c
OBJ = $(SRC:.c=.o)
LIB = libtodraw.so

PYTHON_DIR = python
EXAMPLES_DIR = examples

.PHONY: all clean install uninstall test python

all: $(LIB)

$(LIB): $(OBJ)
	$(CC) $(LDFLAGS) -o $@ $^
	@echo "Built: $(LIB)"

%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -f $(OBJ) $(LIB) *.so.* python/*.pyc

install: $(LIB)
	install -d $(DESTDIR)$(LIBDIR)
	install -m 755 $(LIB) $(DESTDIR)$(LIBDIR)/
	ldconfig

uninstall:
	rm -f $(DESTDIR)$(LIBDIR)/$(LIB)
	ldconfig

test: $(LIB)
	@echo "Running tests..."
	python3 $(EXAMPLES_DIR)/demo.py

python: $(LIB)
	@echo "Library ready for Python use"

.PHONY: help
help:
	@echo "Targets:"
	@echo "  all      - Build libtodraw.so"
	@echo "  clean    - Remove build artifacts"
	@echo "  install  - Install to $(PREFIX)/lib"
	@echo "  uninstall- Remove from $(PREFIX)/lib"
	@echo "  test     - Run Python demo"
	@echo "  python   - Build for Python use"
