VALAC = valac
VALAFLAGS = --pkg gtk+-3.0
TARGET = mu-notepad
SRC = src/mu-notepad.vala

VERSION = 1.0.0
DIST_NAME = $(TARGET)-$(VERSION)

all: $(TARGET)

$(TARGET): $(SRC)
	$(VALAC) $(VALAFLAGS) $(SRC) -o $(TARGET) -X -lm
	@echo "Built $(TARGET) version $(VERSION)"

clean:
	rm -f $(TARGET) *.deb *.tar.gz mu-notepad.desktop
	rm -rf deb_stage $(DIST_NAME)

mu-notepad.desktop:
	@echo "[Desktop Entry]" > mu-notepad.desktop
	@echo "Name=mu-notepad" >> mu-notepad.desktop
	@echo "Comment=A simple text editor with chapter sidebar" >> mu-notepad.desktop
	@echo "Exec=/usr/local/bin/mu-notepad" >> mu-notepad.desktop
	@echo "Terminal=false" >> mu-notepad.desktop
	@echo "Type=Application" >> mu-notepad.desktop
	@echo "Categories=Utility;TextEditor;" >> mu-notepad.desktop
	@echo "StartupNotify=true" >> mu-notepad.desktop

install: $(TARGET) mu-notepad.desktop
	install -d $(DESTDIR)/usr/local/bin
	install -m 755 $(TARGET) $(DESTDIR)/usr/local/bin/
	install -d $(DESTDIR)/usr/local/share/applications
	install -m 644 mu-notepad.desktop $(DESTDIR)/usr/local/share/applications/
	@if command -v update-desktop-database >/dev/null 2>&1; then \
		update-desktop-database -q; \
	fi

source: mu-notepad.desktop
	mkdir -p $(DIST_NAME)/src
	cp $(SRC) Makefile README.md LICENSE mu-notepad.desktop $(DIST_NAME)/ 2>/dev/null || true
	cp $(SRC) $(DIST_NAME)/src/ 2>/dev/null || true
	tar -czf $(DIST_NAME).tar.gz $(DIST_NAME)
	rm -rf $(DIST_NAME)

deb: $(TARGET) mu-notepad.desktop
	mkdir -p deb_stage/usr/local/bin
	mkdir -p deb_stage/usr/local/share/applications
	mkdir -p deb_stage/DEBIAN
	cp $(TARGET) deb_stage/usr/local/bin/
	cp mu-notepad.desktop deb_stage/usr/local/share/applications/
	@echo '#!/bin/bash' > deb_stage/DEBIAN/postinst
	@echo 'which update-desktop-database >/dev/null 2>&1 && update-desktop-database -q || true' >> deb_stage/DEBIAN/postinst
	chmod +x deb_stage/DEBIAN/postinst
	@echo "Package: mu-notepad\nVersion: $(VERSION)\nSection: utils\nPriority: optional\nArchitecture: amd64\nMaintainer: Your Name <you@example.com>\nDepends: libgtk-3-0\nDescription: A simple text editor with chapter sidebar." > deb_stage/DEBIAN/control
	dpkg-deb --build deb_stage $(TARGET)_$(VERSION)_amd64.deb
	rm -rf deb_stage

.PHONY: all clean install source deb