# Wove — Makefile for SliTaz packaging (wok-friendly)
PACKAGE = wove
VERSION = 0.11.0

PREFIX     ?= /usr
DESTDIR    ?=
BINDIR      = $(DESTDIR)$(PREFIX)/bin
LIBDIR      = $(DESTDIR)$(PREFIX)/lib/$(PACKAGE)
SHAREDIR    = $(DESTDIR)$(PREFIX)/share/$(PACKAGE)
DOCDIR      = $(DESTDIR)$(PREFIX)/share/doc/$(PACKAGE)

INSTALL    ?= install

CC      ?= cc
CFLAGS  ?= -O2 -Wall -Wextra
TUI_BIN  = src/wove-tui/wove-tui

.PHONY: all install uninstall test clean dist doc tui

all:
	@echo "Targets: install, uninstall, test, doc, dist"

doc: doc/wove.html

doc/wove.html: share/wove-functions.json tools/gen-html.sh
	sh tools/gen-html.sh

install: doc/wove.html
	$(INSTALL) -d $(BINDIR) $(LIBDIR) $(LIBDIR)/flows $(SHAREDIR) $(DOCDIR)
	$(INSTALL) -m 0755 bin/wove $(BINDIR)/wove
	ln -sf wove $(BINDIR)/tazai
	$(INSTALL) -m 0644 lib/*.sh $(LIBDIR)/
	$(INSTALL) -m 0644 lib/flows/*.sh $(LIBDIR)/flows/
	$(INSTALL) -m 0644 share/wove-functions.json $(SHAREDIR)/
	$(INSTALL) -m 0644 share/wove-models.json $(SHAREDIR)/
	$(INSTALL) -m 0644 doc/README.md $(DOCDIR)/
	$(INSTALL) -m 0644 doc/wove.html $(DOCDIR)/
	@if [ -x "$(TUI_BIN)" ]; then \
		$(INSTALL) -m 0755 $(TUI_BIN) $(BINDIR)/wove-tui; \
	fi

# Build the ncurses TUI. Optional — wove ships without it if the
# toolchain is missing; users only need ncursesw-dev to compile.
tui: $(TUI_BIN)

$(TUI_BIN): src/wove-tui/wove-tui.c
	$(CC) $(CFLAGS) -o $@ $< -lncursesw

uninstall:
	rm -f $(BINDIR)/wove $(BINDIR)/tazai
	rm -rf $(LIBDIR) $(SHAREDIR) $(DOCDIR)

test:
	@WOVE_DRY_RUN=1 ./bin/wove "installe gimp"
	@WOVE_DRY_RUN=1 ./bin/wove "mets à jour"
	@WOVE_DRY_RUN=1 ./bin/wove "espace disque"
	@WOVE_DRY_RUN=1 ./bin/wove "cherche éditeur photo"
	@echo "ok"

dist:
	hg archive -t tgz $(PACKAGE)-$(VERSION).tar.gz

clean:
	rm -f $(PACKAGE)-*.tar.gz
