CC = valac
PACKAGES = --pkg gtk+-3.0 --pkg cairo --pkg gdk-3.0 --pkg pangocairo --Xcc=-lm
TARGET = nixie-clock
SRC = nixie_clock.vala
README = README.md
VERSION = 1.0.1
DIST_NAME = $(TARGET)-$(VERSION)
PREFIX ?= /usr/local

all: $(TARGET)

$(TARGET): $(SRC)
	$(CC) $(SRC) $(PACKAGES) -o $(TARGET)

source:
	@echo "--- Project Information ---"
	@echo "Source code:     $(SRC)"
	@echo "Readme file:     $(README)"
	@echo "Target binary:   $(TARGET)"
	@echo "Build command:   $(CC) $(SRC) $(PACKAGES) -o $(TARGET)"
	@echo "-----------------------------"
	@ls -lh $(SRC) $(README) 2>/dev/null || echo "Warning: Some source files are missing."

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

install: $(TARGET)
	install -Dm755 $(TARGET) $(DESTDIR)$(PREFIX)/bin/$(TARGET)

uninstall:
	rm -f $(DESTDIR)$(PREFIX)/bin/$(TARGET)

deb: $(TARGET)
	rm -rf build/deb
	mkdir -p build/deb/nixie-clock_$(VERSION)_amd64/usr/bin
	mkdir -p build/deb/nixie-clock_$(VERSION)_amd64/DEBIAN
	cp $(TARGET) build/deb/nixie-clock_$(VERSION)_amd64/usr/bin/$(TARGET)
	
	@echo "Package: nixie-clock" > build/deb/nixie-clock_$(VERSION)_amd64/DEBIAN/control
	@echo "Version: $(VERSION)" >> build/deb/nixie-clock_$(VERSION)_amd64/DEBIAN/control
	@echo "Section: utils" >> build/deb/nixie-clock_$(VERSION)_amd64/DEBIAN/control
	@echo "Priority: optional" >> build/deb/nixie-clock_$(VERSION)_amd64/DEBIAN/control
	@echo "Architecture: amd64" >> build/deb/nixie-clock_$(VERSION)_amd64/DEBIAN/control
	@echo "Depends: libgtk-3-0, libcairo2, libpango-1.0-0, libpangocairo-1.0-0" >> build/deb/nixie-clock_$(VERSION)_amd64/DEBIAN/control
	@echo "Maintainer: Nixie Clock Developer <maintainer@example.com>" >> build/deb/nixie-clock_$(VERSION)_amd64/DEBIAN/control
	@echo "Description: Sleek desktop Nixie tube clock widget written in Vala and GTK3" >> build/deb/nixie-clock_$(VERSION)_amd64/DEBIAN/control
	
	dpkg-deb --build build/deb/nixie-clock_$(VERSION)_amd64 build/nixie-clock_$(VERSION)_amd64.deb
	@echo "Debian package successfully created at build/nixie-clock_$(VERSION)_amd64.deb"

dist:
	rm -rf build/$(DIST_NAME)
	mkdir -p build/$(DIST_NAME)
	cp $(SRC) Makefile $(README) build/$(DIST_NAME)/
	tar -czf build/$(DIST_NAME).tar.gz -C build $(DIST_NAME)
	rm -rf build/$(DIST_NAME)
	@echo "Source tarball successfully created at build/$(DIST_NAME).tar.gz"

.PHONY: all clean install uninstall deb source dist