# Makefile for Spk.
#

PACKAGE="spk"
PREFIX?=/usr
LINGUAS?=

# spk-tui (ncurses TUI) build settings
CC ?= gcc
CFLAGS ?= -O2 -Wall
TUI_BIN = tui/spk-tui
TUI_SRC = tui/spk-tui.c tui/backend.c
TUI_HDR = tui/theme.h tui/backend.h
TUI_LIBS = -lncursesw

all: help

# spk-tui - ncurses TUI (SliTaz 2026 dark theme)
tui: $(TUI_BIN)

$(TUI_BIN): $(TUI_SRC) $(TUI_HDR)
	$(CC) $(CFLAGS) -o $(TUI_BIN) $(TUI_SRC) $(TUI_LIBS)

# Standalone backend test harness (no ncurses): verifies TSV parsing.
test-tui: tui/test-backend.c tui/backend.c tui/backend.h
	$(CC) $(CFLAGS) -o tui/test-backend tui/test-backend.c tui/backend.c

install-tui: tui
	install -m 0755 -d $(DESTDIR)$(PREFIX)/bin
	install -m 0755 $(TUI_BIN) $(DESTDIR)$(PREFIX)/bin

clean-tui:
	rm -f $(TUI_BIN) tui/test-backend

# i18n

pot:
	xgettext -o po/$(PACKAGE).pot -L Shell --package-name="Spk" \
		./spk ./spk-add ./spk-rm ./spk-up ./spk-ls ./spk-search \
		./spk-mirror ./spk-convert ./spk-doctor

msgmerge:
	@for l in $(LINGUAS); do \
		echo -n "Updating $$l po file."; \
		msgmerge -U po/$$l.po po/$(PACKAGE).pot; \
	done;

msgfmt:
	@for l in $(LINGUAS); do \
		echo "Compiling $$l mo file..."; \
		mkdir -p po/mo/$$l/LC_MESSAGES; \
		msgfmt -o po/mo/$$l/LC_MESSAGES/$(PACKAGE).mo po/$$l.po; \
	done;

# Install

install-msg: msgfmt
	install -m 0755 -d $(DESTDIR)$(PREFIX)/share/locale
	cp -a po/mo/* $(DESTDIR)$(PREFIX)/share/locale

install-lib:
	install -m 0755 -d $(DESTDIR)$(PREFIX)/lib/slitaz
	install -m 0755 lib/libspk.sh $(DESTDIR)$(PREFIX)/lib/slitaz
	
install-doc:
	install -m 0755 -d $(DESTDIR)$(PREFIX)/share/doc/spk
	install -m 0755 -d $(DESTDIR)$(PREFIX)/share/applications
	install -m 0644 data/spk-doc.desktop $(DESTDIR)$(PREFIX)/share/applications
	install -m 0644 doc/spk.*.html $(DESTDIR)$(PREFIX)/share/doc/spk
	cp -a doc/spk.html $(DESTDIR)$(PREFIX)/share/doc/spk

install: install-lib install-doc
	install -m 0755 -d $(DESTDIR)$(PREFIX)/bin
	install -m 0755 -d $(DESTDIR)$(PREFIX)/sbin
	install -m 0755 -d $(DESTDIR)$(PREFIX)/share/pixmaps
	install -m 0755 spk $(DESTDIR)$(PREFIX)/bin
	install -m 0755 spk-ls $(DESTDIR)$(PREFIX)/bin
	install -m 0755 spk-search $(DESTDIR)$(PREFIX)/bin
	install -m 0755 spk-rm $(DESTDIR)$(PREFIX)/sbin
	install -m 0755 spk-add $(DESTDIR)$(PREFIX)/sbin
	install -m 0755 spk-mirror $(DESTDIR)$(PREFIX)/sbin
	install -m 0755 spk-up $(DESTDIR)$(PREFIX)/sbin
	install -m 0755 spk-convert $(DESTDIR)$(PREFIX)/sbin
	install -m 0755 spk-doctor $(DESTDIR)$(PREFIX)/sbin
	install -m 0755 spk-sql $(DESTDIR)$(PREFIX)/sbin
	cp data/spk.png $(DESTDIR)$(PREFIX)/share/pixmaps

# Clean source

clean:
	rm -rf po/mo
	rm -f po/*~

