.POSIX:

PREFIX  = /usr/local
BINDIR  = $(PREFIX)/bin
MANDIR  = $(PREFIX)/share/man
DATADIR = $(PREFIX)/share/badwolf
APPSDIR = $(PREFIX)/share/applications
PACKAGE = Badwolf

DEPS  = gtk+-3.0 webkit2gtk-4.0
OBJS  = keybindings.o badwolf.o
EXE   = badwolf
TRANS = fr.mo

CC     = cc
CFLAGS = -g -Wall -Wextra -Wconversion -Wsign-conversion
CDEPS  = `pkg-config --cflags $(DEPS)` -DDATADIR=\"$(DATADIR)\" -DPACKAGE=\"$(PACKAGE)\" -D_DEFAULT_SOURCE -DVERSION=\"$(shell ./version.sh)\"
LIBS   = `pkg-config --libs $(DEPS)`

all: $(EXE) $(TRANS)

po/messages.pot: badwolf.c
	xgettext --keyword=_ --language=C -o $@ --add-comments --sort-output -j --copyright-holder="Haelwenn (lanodan) Monnier <contact+badwolf-copyright@hacktivis.me>" --package-name="$(PACKAGE)" --package-version="$(shell ./version.sh)" --msgid-bugs-address="contact+badwolf-msgid@hacktivis.me" badwolf.c

po/%.po: po/messages.pot
	msgmerge --update $@ $<

${TRANS}: po/${@:.mo=.po}
	mkdir -p locale/${@:.mo=}/LC_MESSAGES
	msgfmt -o locale/${@:.mo=}/LC_MESSAGES/$(PACKAGE).mo po/${@:.mo=.po}

badwolf: $(OBJS)
	$(CC) -std=c11 -o $@ $(OBJS) $(LDFLAGS) $(LIBS)

.c:
	$(CC) -std=c11 $(CFLAGS) $(CDEPS) $(LDFLAGS) $(LIBS) -o $@ $<

.c.o:
	$(CC) -std=c11 $(CFLAGS) $(CDEPS) -c -o $@ $<

install: all
	mkdir -p $(DESTDIR)$(BINDIR)
	cp -p badwolf $(DESTDIR)$(BINDIR)/badwolf
	mkdir -p $(DESTDIR)$(MANDIR)/man1
	cp -p badwolf.1 $(DESTDIR)$(MANDIR)/man1
	mkdir -p $(DESTDIR)$(DATADIR)/locale
	cp -r locale/ $(DESTDIR)$(DATADIR)
	mkdir -p $(DESTDIR)$(APPSDIR)
	cp -p badwolf.desktop $(DESTDIR)$(APPSDIR)/

clean:
	rm -fr locale $(OBJS) $(EXE)

format: *.c *.h
	clang-format -style=file -assume-filename=.clang-format -i *.c *.h

.PHONY: clean install
