69 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| TARGET_DIR = usr/share/icons/desktop-base
 | |
| TARGET_DIR_SCALABLE = $(TARGET_DIR)/scalable/emblems
 | |
| # Generic folder for alternatives
 | |
| TARGET_VENDOR = usr/share/icons/vendor
 | |
| # TODO remove installing to _legacy early in bullseye cycle
 | |
| TARGET_DIR_LEGACY = usr/share/icons/hicolor
 | |
| TARGET_DIR_SCALABLE_LEGACY = $(TARGET_DIR_LEGACY)/scalable/emblems
 | |
| 
 | |
| .PHONY: build clean install
 | |
| 
 | |
| EMBLEMS = $(basename $(wildcard *.svg))
 | |
| $(info Emblems: '$(EMBLEMS)')
 | |
| # TODO remove installing to _legacy early in bullseye cycle
 | |
| RESOLUTIONS := 64 128 256
 | |
| $(info Resolutions: '$(RESOLUTIONS)')
 | |
| RESOLUTIONS_LEGACY := 16 22 32 36 48 64 128 256
 | |
| $(info Legacy Resolutions: '$(RESOLUTIONS_LEGACY)')
 | |
| 
 | |
| # The build: target should depend on all PNGs to generate
 | |
| $(info $(foreach SVG,$(EMBLEMS),$(foreach RES,$(RESOLUTIONS_LEGACY),$(SVG)-$(RES)x$(RES).png)))
 | |
| build: $(foreach SVG,$(EMBLEMS),$(foreach RES,$(RESOLUTIONS_LEGACY),$(SVG)-$(RES)x$(RES).png))
 | |
| 
 | |
| # Dynamically add rules for PNG generation for each resolution, for each emblem file
 | |
| define SVG_TO_PNG_RULE
 | |
| $1-$2x$2.png: $1.svg
 | |
| 	rsvg-convert $$< -w $2 -h $2 -o $$@.raw
 | |
| 	optipng $$@.raw -out $$@
 | |
| endef
 | |
| $(foreach EMBLEM,$(EMBLEMS),$(foreach RES,$(RESOLUTIONS_LEGACY),$(eval $(call SVG_TO_PNG_RULE,$(EMBLEM),$(RES)))))
 | |
| 
 | |
| clean:
 | |
| 	rm -f *.png.raw
 | |
| 	rm -f *.png
 | |
| 
 | |
| install:
 | |
| 	# Install PNG icons for each resolution
 | |
| 	for RES in $(RESOLUTIONS) ; do \
 | |
| 		EMBLEMS_DIR=$(DESTDIR)/$(TARGET_DIR)/$${RES}x$${RES}/emblems ; \
 | |
| 		install -d $${EMBLEMS_DIR} ; \
 | |
| 		for EMBLEM in $(EMBLEMS) ; do \
 | |
| 			PNG_SOURCE=$${EMBLEM}-$${RES}x$${RES}.png ; \
 | |
| 			$(INSTALL_DATA) $${PNG_SOURCE} $${EMBLEMS_DIR}/$${EMBLEM}.png ; \
 | |
| 		done ; \
 | |
| 	done
 | |
| 	# TODO remove installing to _legacy early in bullseye cycle
 | |
| 	for RES in $(RESOLUTIONS_LEGACY) ; do \
 | |
| 		EMBLEMS_DIR=$(DESTDIR)/$(TARGET_DIR_LEGACY)/$${RES}x$${RES}/emblems ; \
 | |
| 		install -d $${EMBLEMS_DIR} ; \
 | |
| 		for EMBLEM in $(EMBLEMS) ; do \
 | |
| 			PNG_SOURCE=$${EMBLEM}-$${RES}x$${RES}.png ; \
 | |
| 			$(INSTALL_DATA) $${PNG_SOURCE} $${EMBLEMS_DIR}/$${EMBLEM}.png ; \
 | |
| 			$(INSTALL_DATA) $${EMBLEM}.icon $${EMBLEMS_DIR}/ ; \
 | |
| 		done ; \
 | |
| 	done
 | |
| 	# Install SVG emblems in the scalable emblems dir
 | |
| 	for EMBLEM in $(EMBLEMS) ; do \
 | |
| 		EMBLEMS_DIR=$(DESTDIR)/$(TARGET_DIR_SCALABLE) ; \
 | |
| 		install -d $${EMBLEMS_DIR} ; \
 | |
| 		$(INSTALL_DATA) $${EMBLEM}.svg $${EMBLEMS_DIR}/ ; \
 | |
| 	done
 | |
| 	for EMBLEM in $(EMBLEMS) ; do \
 | |
| 		EMBLEMS_DIR=$(DESTDIR)/$(TARGET_DIR_SCALABLE_LEGACY) ; \
 | |
| 		install -d $${EMBLEMS_DIR} ; \
 | |
| 		$(INSTALL_DATA) $${EMBLEM}.svg $${EMBLEMS_DIR}/ ; \
 | |
| 		$(INSTALL_DATA) $${EMBLEM}.icon $${EMBLEMS_DIR}/ ; \
 | |
| 	done
 | |
| 
 | |
| include ../Makefile.inc
 | 
