VALAC = valac
VALAC_FLAGS = --pkg gtk+-3.0 --pkg gdk-x11-3.0 --pkg cairo --pkg gee-0.8 --pkg posix -X -DGETTEXT_PACKAGE=\"tech-hud-iconbar\" -g -X -O0 -X -D -X WNCK_I_KNOW_THIS_IS_UNSTABLE -X -Wno-deprecated-declarations -X -Wno-incompatible-pointer-types -X -lXcomposite -X -lX11 -X -lm

TARGET = tech-hud-iconbar
SOURCES = main.vala iconbar_themes.vala iconbar_settings.vala iconbar_settings_dialog.vala iconbar_renderer.vala

VERSION = 1.0.0
PREFIX ?= /usr/local
BINDIR = $(PREFIX)/bin
DESKTOPDIR = $(PREFIX)/share/applications
LOCALEDIR = $(PREFIX)/share/locale

LANGS = de es fr it pt_BR ru zh_CN ja pl nl
MOFILES = $(patsubst %,po/%.mo,$(LANGS))

all: $(TARGET) $(MOFILES)

$(TARGET): $(SOURCES)
	@echo "Compiling $(TARGET) v$(VERSION)..."
	$(VALAC) $(VALAC_FLAGS) -o $(TARGET) $(SOURCES)

po/%.mo: po/%.po
	@echo "Compiling locale $*..."
	msgfmt $< -o $@

clean:
	rm -f $(TARGET) *.c po/*.mo
	rm -rf build_deb/

install: $(TARGET) $(MOFILES)
	install -d $(DESTDIR)$(BINDIR)
	install -m 755 $(TARGET) $(DESTDIR)$(BINDIR)/$(TARGET)
	install -d $(DESTDIR)$(DESKTOPDIR)
	install -m 644 tech-hud-iconbar.desktop $(DESTDIR)$(DESKTOPDIR)/tech-hud-iconbar.desktop
	for lang in $(LANGS); do \
		install -d $(DESTDIR)$(LOCALEDIR)/$$lang/LC_MESSAGES; \
		install -m 644 po/$$lang.mo $(DESTDIR)$(LOCALEDIR)/$$lang/LC_MESSAGES/$(TARGET).mo; \
	done

uninstall:
	rm -f $(DESTDIR)$(BINDIR)/$(TARGET)
	rm -f $(DESTDIR)$(DESKTOPDIR)/tech-hud-iconbar.desktop
	for lang in $(LANGS); do \
		rm -f $(DESTDIR)$(LOCALEDIR)/$$lang/LC_MESSAGES/$(TARGET).mo; \
	done

deb: $(TARGET) $(MOFILES)
	@echo "Building Debian package..."
	rm -rf build_deb
	mkdir -p build_deb/DEBIAN
	mkdir -p build_deb/$(BINDIR)
	mkdir -p build_deb/$(DESKTOPDIR)
	for lang in $(LANGS); do \
		mkdir -p build_deb/$(LOCALEDIR)/$$lang/LC_MESSAGES; \
		cp po/$$lang.mo build_deb/$(LOCALEDIR)/$$lang/LC_MESSAGES/$(TARGET).mo; \
	done
	echo "Package: tech-hud-iconbar" > build_deb/DEBIAN/control
	echo "Version: $(VERSION)" >> build_deb/DEBIAN/control
	echo "Section: x11" >> build_deb/DEBIAN/control
	echo "Priority: optional" >> build_deb/DEBIAN/control
	echo "Architecture: amd64" >> build_deb/DEBIAN/control
	echo "Maintainer: Mark Ulrich <mark@local>" >> build_deb/DEBIAN/control
	echo "Depends: libgtk-3-0, libcairo2, libxcomposite1, libx11-6" >> build_deb/DEBIAN/control
	echo "Description: Minimalistic Tech-HUD Holo-Iconbar for X11" >> build_deb/DEBIAN/control
	cp $(TARGET) build_deb/$(BINDIR)/$(TARGET)
	cp tech-hud-iconbar.desktop build_deb/$(DESKTOPDIR)/tech-hud-iconbar.desktop
	dpkg-deb --build build_deb $(TARGET)_$(VERSION)_amd64.deb
	rm -rf build_deb
	@echo "Debian package ready: $(TARGET)_$(VERSION)_amd64.deb"

source: clean
	@echo "Creating source archive..."
	mkdir -p $(TARGET)-$(VERSION)/po
	cp $(SOURCES) Makefile tech-hud-iconbar.desktop README.md $(TARGET)-$(VERSION)/
	cp po/*.po $(TARGET)-$(VERSION)/po/
	tar -czf $(TARGET)-$(VERSION).tar.gz $(TARGET)-$(VERSION)
	rm -rf $(TARGET)-$(VERSION)
	@echo "Archive created: $(TARGET)-$(VERSION).tar.gz"

.PHONY: all clean install uninstall deb source
