VALAC = valac
PACKAGES = --pkg gtk+-3.0 --pkg cairo --pkg pangocairo --pkg gio-2.0
TARGET = tech-hud-mounter
DESKTOP = $(TARGET).desktop
VALA_SOURCES = tech_hud_mounter.vala
VERSION = 1.0.1
PREFIX ?= /usr/local
DESTDIR ?=

all: $(TARGET) $(DESKTOP)

$(TARGET): $(VALA_SOURCES)
	$(VALAC) $(PACKAGES) $(VALA_SOURCES) -o $(TARGET) -X -lm -X -Wno-incompatible-pointer-types

$(DESKTOP): Makefile
	printf '%s\n' '[Desktop Entry]' 'Name=Tech HUD Mounter' 'Comment=Futuristic drive mounter HUD' 'Exec=$(TARGET)' 'Terminal=false' 'Type=Application' 'Categories=Utility;' > $@

clean:
	rm -f $(TARGET) $(DESKTOP)
	rm -rf deb-build *.deb *.tar.gz $(TARGET)-$(VERSION)

install: $(TARGET) $(DESKTOP)
	install -Dm755 $(TARGET) $(DESTDIR)$(PREFIX)/bin/$(TARGET)
	install -Dm644 $(DESKTOP) $(DESTDIR)$(PREFIX)/share/applications/$(DESKTOP)

source:
	mkdir -p $(TARGET)-$(VERSION)
	cp $(VALA_SOURCES) Makefile README.md $(TARGET)-$(VERSION)/
	tar -czf $(TARGET)-$(VERSION).tar.gz $(TARGET)-$(VERSION)
	rm -rf $(TARGET)-$(VERSION)

deb: all
	mkdir -p deb-build/DEBIAN
	mkdir -p deb-build$(PREFIX)/bin
	mkdir -p deb-build$(PREFIX)/share/applications
	cp $(TARGET) deb-build$(PREFIX)/bin/
	cp $(DESKTOP) deb-build$(PREFIX)/share/applications/
	
	@echo "Package: $(TARGET)" > deb-build/DEBIAN/control
	@echo "Version: $(VERSION)-1" >> deb-build/DEBIAN/control
	@echo "Section: x11" >> deb-build/DEBIAN/control
	@echo "Priority: optional" >> deb-build/DEBIAN/control
	@echo "Architecture: amd64" >> deb-build/DEBIAN/control
	@echo "Maintainer: Local Dev <dev@local>" >> deb-build/DEBIAN/control
	@echo "Description: Futuristic Vala/GTK3 drive mounter HUD" >> deb-build/DEBIAN/control
	
	dpkg-deb --build deb-build $(TARGET)_$(VERSION)-1_amd64.deb
	rm -rf deb-build