VERSION = 1.1.0
PACKAGE = tech-hud-taskbar
PREFIX ?= /usr/local
BINDIR = $(PREFIX)/bin
DATADIR ?= $(PREFIX)/share

VALAC = valac
PACKAGES = --pkg gtk+-3.0 --pkg gdk-x11-3.0 --pkg cairo --pkg libwnck-3.0 --pkg gee-0.8
VALAFLAGS = -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

VALA_SRC = main.vala taskbar_themes.vala blacklist_manager.vala taskbar_settings.vala taskbar_settings_dialog.vala window_preview.vala taskbar_context_menu.vala taskbar_renderer.vala taskbar_pager.vala taskbar_window_manager.vala taskbar_expose.vala taskbar_tray.vala
SRC = $(VALA_SRC) snapshot.c

all: $(PACKAGE)

$(PACKAGE): $(SRC)
	@echo "Compiling $(PACKAGE) v$(VERSION)..."
	$(VALAC) $(PACKAGES) $(VALAFLAGS) -o $(PACKAGE) $(SRC)

install: $(PACKAGE)
	@echo "Installing to $(DESTDIR)$(BINDIR)..."
	install -d $(DESTDIR)$(BINDIR)
	install -m 755 $(PACKAGE) $(DESTDIR)$(BINDIR)/$(PACKAGE)
	install -d $(DESTDIR)$(DATADIR)/applications
	install -m 644 $(PACKAGE).desktop $(DESTDIR)$(DATADIR)/applications/$(PACKAGE).desktop

uninstall:
	@echo "Uninstalling $(PACKAGE)..."
	rm -f $(DESTDIR)$(BINDIR)/$(PACKAGE)
	rm -f $(DESTDIR)$(DATADIR)/applications/$(PACKAGE).desktop

clean:
	rm -f $(PACKAGE)
	rm -rf build_deb/

source: clean
	@echo "Creating source archive..."
	mkdir -p $(PACKAGE)-$(VERSION)
	cp $(VALA_SRC) snapshot.c Makefile $(PACKAGE).desktop README.md $(PACKAGE)-$(VERSION)/
	tar -czf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
	rm -rf $(PACKAGE)-$(VERSION)
	@echo "Archive created: $(PACKAGE)-$(VERSION).tar.gz"

deb: all
	@echo "Building Debian package..."
	rm -rf build_deb
	mkdir -p build_deb/DEBIAN
	mkdir -p build_deb/$(BINDIR)
	mkdir -p build_deb/$(DATADIR)/applications
	
	echo "Package: $(PACKAGE)" > 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, libwnck-3-0, libxcomposite1, libx11-6" >> build_deb/DEBIAN/control
	echo "Description: Minimalistic Tech-HUD Holo-Dock for IceWM/X11" >> build_deb/DEBIAN/control

	cp $(PACKAGE) build_deb/$(BINDIR)/$(PACKAGE)
	cp $(PACKAGE).desktop build_deb/$(DATADIR)/applications/$(PACKAGE).desktop
	
	dpkg-deb --build build_deb $(PACKAGE)_$(VERSION)_amd64.deb
	rm -rf build_deb
	@echo "Debian package ready: $(PACKAGE)_$(VERSION)_amd64.deb"

.PHONY: all install uninstall clean source deb