PKG_NAME = pigeon-cam
VALA_FILES = pigeon-cam.vala
CFLAGS = --pkg gtk+-3.0 --pkg posix
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
DATADIR ?= $(PREFIX)/share
VERSION = 1.0.0

all: $(PKG_NAME)

$(PKG_NAME): $(VALA_FILES)
	valac $(CFLAGS) $(VALA_FILES) -o $(PKG_NAME)

clean:
	rm -f $(PKG_NAME)
	rm -rf deb_build *.tar.gz *.deb

install: $(PKG_NAME)
	install -d $(DESTDIR)$(BINDIR)
	install -m 755 $(PKG_NAME) $(DESTDIR)$(BINDIR)/$(PKG_NAME)
	
	install -d $(DESTDIR)$(DATADIR)/applications
	install -m 644 pigeon-cam.desktop $(DESTDIR)$(DATADIR)/applications/pigeon-cam.desktop
	
	@if command -v update-desktop-database >/dev/null 2>&1; then \
		update-desktop-database -q $(DATADIR)/applications; \
	fi

uninstall:
	rm -f $(DESTDIR)$(BINDIR)/$(PKG_NAME)
	rm -f $(DESTDIR)$(DATADIR)/applications/pigeon-cam.desktop
	@if command -v update-desktop-database >/dev/null 2>&1; then \
		update-desktop-database -q $(DATADIR)/applications; \
	fi

source:
	mkdir -p $(PKG_NAME)-$(VERSION)
	cp pigeon-cam.vala Makefile pigeon-cam.desktop README.md $(PKG_NAME)-$(VERSION)/
	tar -czf $(PKG_NAME)-$(VERSION).tar.gz $(PKG_NAME)-$(VERSION)
	rm -rf $(PKG_NAME)-$(VERSION)
	@echo "Created source tarball: $(PKG_NAME)-$(VERSION).tar.gz"

deb: $(PKG_NAME)
	rm -rf deb_build
	mkdir -p deb_build/DEBIAN
	mkdir -p deb_build/usr/local/bin
	mkdir -p deb_build/usr/share/applications
	
	install -m 755 $(PKG_NAME) deb_build/usr/local/bin/
	install -m 644 pigeon-cam.desktop deb_build/usr/share/applications/
	
	@echo "Package: $(PKG_NAME)" > deb_build/DEBIAN/control
	@echo "Version: $(VERSION)" >> deb_build/DEBIAN/control
	@echo "Section: video" >> deb_build/DEBIAN/control
	@echo "Priority: optional" >> deb_build/DEBIAN/control
	@echo "Architecture: amd64" >> deb_build/DEBIAN/control
	@echo "Maintainer: User <user@local>" >> deb_build/DEBIAN/control
	@echo "Depends: gtk+-3.0, mpv, v4l-utils" >> deb_build/DEBIAN/control
	@echo "Description: Lightweight V4L2/mpv camera viewer and recorder." >> deb_build/DEBIAN/control
	
	dpkg-deb --build deb_build $(PKG_NAME)_$(VERSION)_amd64.deb
	rm -rf deb_build
	@echo "Created Debian package: $(PKG_NAME)_$(VERSION)_amd64.deb"