# Makefile for kicad_bom.py
#
# Copyright (c) 2026 McGuire Scientific Services, LLC
# By Dave McGuire <mcguire@mcguirescientificservices.com>
#
# System-wide install (default PREFIX=/usr/local):
#     sudo make install
#
# Per-user install (no root needed):
#     make install PREFIX=$(HOME)/.local
#
# Staged install for packaging:
#     make install DESTDIR=/tmp/stage PREFIX=/usr

PROGNAME = kicad_bom
PROG     = $(PROGNAME).py
MANPAGE  = $(PROGNAME).1

PREFIX  ?= /usr/local
BINDIR  ?= $(PREFIX)/bin
MANDIR  ?= $(PREFIX)/share/man
MAN1DIR  = $(MANDIR)/man1

DOCS     = LICENSE.md README.md $(MANPAGE)
VERSION := $(shell sed -n 's/^VERSION[ \t]*=[ \t]*"\(.*\)".*/\1/p' $(PROG))
DISTDIR  = $(PROGNAME)-$(VERSION)

PYTHON  ?= python3
INSTALL ?= install

.PHONY: all check dist install

all: check

check:
	$(PYTHON) -c 'import sys; sys.exit(0 if sys.version_info >= (3, 9) else "Python 3.9 or newer is required")'
	$(PYTHON) -c 'import sqlite3, sys; sys.exit(0 if sqlite3.sqlite_version_info >= (3, 24, 0) else "SQLite 3.24.0 or newer is required")'
	$(PYTHON) -m py_compile $(PROG)
	@rm -rf __pycache__

dist:
	@rm -rf $(DISTDIR)
	@rm -f $(DISTDIR).tar.bz2
	@mkdir $(DISTDIR)
	@cp $(PROG) Makefile $(DOCS) $(DISTDIR)
	@tar -cjf $(DISTDIR).tar.bz2 $(DISTDIR)
	@rm -rf $(DISTDIR)
	@echo Distribution file $(DISTDIR).tar.bz2 created.

install: check
	$(INSTALL) -d $(DESTDIR)$(BINDIR) $(DESTDIR)$(MAN1DIR)
	$(INSTALL) -m 0755 $(PROG) $(DESTDIR)$(BINDIR)/$(PROGNAME)
	$(INSTALL) -m 0644 $(MANPAGE) $(DESTDIR)$(MAN1DIR)/$(MANPAGE)
