# Makefile for icewm-background
VERSION = 1.0.1
APP_NAME = icewm-background
HELPER_NAME = icewmbg2
PREFIX ?= /usr
BINDIR = $(PREFIX)/bin
DATADIR = $(PREFIX)/share
DESKTOPDIR = $(DATADIR)/applications

VALAC = valac
PKGS = --pkg gtk+-3.0 --pkg gdk-pixbuf-2.0
VALAFLAGS = 

SOURCES = icewm-background.vala
TARGET = $(APP_NAME)
DESKTOP_FILE = $(APP_NAME).desktop

.PHONY: all clean install uninstall deb source desktop

all: $(TARGET) desktop

$(TARGET): $(SOURCES)
	$(VALAC) $(PKGS) $(VALAFLAGS) $(SOURCES) -o $(TARGET)

desktop: $(DESKTOP_FILE)

$(DESKTOP_FILE):
	@echo "[Desktop Entry]" > $(DESKTOP_FILE)
	@echo "Name=IceWM Background Chooser" >> $(DESKTOP_FILE)
	@echo "Comment=Select and set desktop background" >> $(DESKTOP_FILE)
	@echo "Exec=$(APP_NAME)" >> $(DESKTOP_FILE)
	@echo "Icon=preferences-desktop-wallpaper" >> $(DESKTOP_FILE)
	@echo "Terminal=false" >> $(DESKTOP_FILE)
	@echo "Type=Application" >> $(DESKTOP_FILE)
	@echo "Categories=Settings;DesktopSettings;GTK;" >> $(DESKTOP_FILE)
	@echo "Keywords=wallpaper;background;icewm;" >> $(DESKTOP_FILE)

install: all
	install -d $(DESTDIR)$(BINDIR)
	install -m 755 $(TARGET) $(DESTDIR)$(BINDIR)/
	@if [ -f $(HELPER_NAME) ]; then \
		install -m 755 $(HELPER_NAME) $(DESTDIR)$(BINDIR)/; \
	fi
	install -d $(DESTDIR)$(DESKTOPDIR)
	install -m 644 $(DESKTOP_FILE) $(DESTDIR)$(DESKTOPDIR)/

uninstall:
	rm -f $(DESTDIR)$(BINDIR)/$(TARGET)
	rm -f $(DESTDIR)$(BINDIR)/$(HELPER_NAME)
	rm -f $(DESTDIR)$(DESKTOPDIR)/$(DESKTOP_FILE)

source: clean
	mkdir -p $(APP_NAME)-$(VERSION)
	cp $(SOURCES) README.md Makefile $(APP_NAME)-$(VERSION)/
	@if [ -f $(HELPER_NAME) ]; then \
		cp $(HELPER_NAME) $(APP_NAME)-$(VERSION)/; \
	fi
	tar -czvf $(APP_NAME)-$(VERSION).tar.gz $(APP_NAME)-$(VERSION)
	rm -rf $(APP_NAME)-$(VERSION)

deb: all
	mkdir -p build/deb/DEBIAN
	mkdir -p build/deb$(BINDIR)
	mkdir -p build/deb$(DESKTOPDIR)
	install -m 755 $(TARGET) build/deb$(BINDIR)/
	@if [ -f $(HELPER_NAME) ]; then \
		install -m 755 $(HELPER_NAME) build/deb$(BINDIR)/; \
	fi
	install -m 644 $(DESKTOP_FILE) build/deb$(DESKTOPDIR)/
	@echo "Package: $(APP_NAME)" > build/deb/DEBIAN/control
	@echo "Version: $(VERSION)" >> build/deb/DEBIAN/control
	@echo "Section: utils" >> build/deb/DEBIAN/control
	@echo "Priority: optional" >> build/deb/DEBIAN/control
	@echo "Architecture: $$(dpkg --print-architecture)" >> build/deb/DEBIAN/control
	@echo "Depends: libgtk-3-0, libgdk-pixbuf-2.0-0" >> build/deb/DEBIAN/control
	@echo "Maintainer: IceWM User <user@localhost>" >> build/deb/DEBIAN/control
	@echo "Description: IceWM Wallpaper Chooser" >> build/deb/DEBIAN/control
	@echo " A GTK-based wallpaper selector with drag-and-drop and GIMP integration." >> build/deb/DEBIAN/control
	@echo " License: GPL-2.0-or-later" >> build/deb/DEBIAN/control
	dpkg-deb --build build/deb $(APP_NAME)_$(VERSION)_$$(dpkg --print-architecture).deb
	rm -rf build

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

# License: GNU General Public License v2.0 or later (GPL-2.0-or-later)