BACKGROUNDS=$(wildcard backgrounds/*) SCALED=$(sort $(patsubst backgrounds/%, scaled/%, $(BACKGROUNDS))) prefix ?= /usr datarootdir = $(prefix)/share datadir = $(datarootdir) .PHONY: all clean install uninstall all: $(SCALED) scaled/info.xml clean: rm -rf build scaled install: all for file in $(SCALED); do \ install -D -m 0644 "$$file" "$(DESTDIR)$(datadir)/backgrounds/system76/$$(basename "$$file")"; \ done install -D -m 0644 "scaled/info.xml" "$(DESTDIR)$(datadir)/gnome-background-properties/system76-wallpapers.xml" uninstall: for file in $(SCALED); do \ rm -f "$(DESTDIR)$(datadir)/backgrounds/system76/$$(basename "$$file")"; \ done rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(datadir)/backgrounds/system76/" rm -f "$(DESTDIR)$(datadir)/gnome-background-properties/system76-wallpapers.xml" rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(datadir)/gnome-background-properties/" scaled/%: backgrounds/% @mkdir -p build scaled magick "$<" -resize "3840x2160^" "build/$*" mv "build/$*" "$@" scaled/info.xml: $(SCALED) @mkdir -p build scaled echo "" > "build/info.xml" echo "" >> "build/info.xml" echo "" >> "build/info.xml" for file in $(SCALED); do \ filename="$$(basename "$$file")"; \ name="$${filename%.*}"; \ echo " " >> "build/info.xml"; \ echo " $$name" >> "build/info.xml"; \ echo " /usr/share/backgrounds/system76/$$(basename "$$file")" >> "build/info.xml"; \ echo " zoom" >> "build/info.xml"; \ echo " #000000" >> "build/info.xml"; \ echo " #000000" >> "build/info.xml"; \ echo " solid" >> "build/info.xml"; \ echo " " >> "build/info.xml"; \ done echo "" >> "build/info.xml" mv "build/info.xml" "$@"