+MAC_AM_FILES = $(shell for i in $(MAC_RES); do echo $(AM_NAME)-$$i.png; done)
+MAC_MP_FILES = $(shell for i in $(MAC_RES); do echo $(MP_NAME)-$$i.png; done)
+MAC_TG_FILES = $(shell for i in $(MAC_RES); do echo $(TG_NAME)-$$i.png; done)
+MAC_EEPROM_FILES= $(shell for i in $(MAC_RES); do echo $(EEPROM_NAME)-$$i.png; done)
+MAC_TELEM_FILES = $(shell for i in $(MAC_RES); do echo $(TELEM_NAME)-$$i.png; done)
+MAC_MPD_FILES = $(shell for i in $(MAC_RES); do echo $(MPD_NAME)-$$i.png; done)
+
+ICNS_FILES = $(AM_NAME).icns $(MP_NAME).icns $(TG_NAME).icns \
+ $(EEPROM_NAME).icns $(TELEM_NAME).icns $(MPD_NAME).icns
+
+# Files needed for Windows icons
+
+WIN_AM_FILES = $(shell for i in $(WIN_RES); do echo $(AM_NAME)-$$i.png; done)
+WIN_MP_FILES = $(shell for i in $(WIN_RES); do echo $(MP_NAME)-$$i.png; done)
+WIN_TG_FILES = $(shell for i in $(WIN_RES); do echo $(TG_NAME)-$$i.png; done)
+WIN_EEPROM_FILES= $(shell for i in $(WIN_RES); do echo $(EEPROM_NAME)-$$i.png; done)
+WIN_TELEM_FILES = $(shell for i in $(WIN_RES); do echo $(TELEM_NAME)-$$i.png; done)
+WIN_MPD_FILES = $(shell for i in $(WIN_RES); do echo $(MPD_NAME)-$$i.png; done)
+
+ICO_FILES = $(AM_NAME).ico $(MP_NAME).ico $(TG_NAME).ico \
+ $(EEPROM_NAME).ico $(TELEM_NAME).ico $(MPD_NAME).ico
+
+EXE_FILES = $(AM_NAME).exe $(MP_NAME).exe $(TG_NAME).exe \
+ $(EEPROM_NAME).exe $(TELEM_NAME).exe $(MPD_NAME).exe
+
+# Files needed for Java internal icons
+
+JAVA_AM_FILES = $(shell for i in $(JAVA_RES); do echo $(AM_NAME)-$$i.png; done)
+JAVA_MP_FILES = $(shell for i in $(JAVA_RES); do echo $(MP_NAME)-$$i.png; done)
+JAVA_TG_FILES = $(shell for i in $(JAVA_RES); do echo $(TG_NAME)-$$i.png; done)
+
+JAVA_FILES = $(JAVA_AM_FILES) $(JAVA_MP_FILES) $(JAVA_TG_FILES)
+
+# PNG files needed by anyone
+
+AM_FILES = $(shell for i in $(RES); do echo $(AM_NAME)-$$i.png; done)
+MP_FILES = $(shell for i in $(RES); do echo $(MP_NAME)-$$i.png; done)
+TG_FILES = $(shell for i in $(RES); do echo $(TG_NAME)-$$i.png; done)
+EEPROM_FILES = $(shell for i in $(RES); do echo $(EEPROM_NAME)-$$i.png; done)
+TELEM_FILES = $(shell for i in $(RES); do echo $(TELEM_NAME)-$$i.png; done)
+IN_MPD_FILES = $(shell for i in $(RES); do echo $(MPD_NAME)-$$i.png; done)
+
+# XPM file needed by debian
+
+AM_XPM = altusmetrum.xpm
+
+ICON_THEME=$(datadir)/icons/hicolor
+
+appicondir = $(ICON_THEME)/scalable/apps
+appicon_DATA = $(AM_ICON) $(MP_ICON) $(TG_ICON)
+
+MIME_ICONS = $(EEPROM_ICON) $(TELEM_ICON) $(MPD_ICON)
+
+mimeicondir = $(ICON_THEME)/scalable/mimetypes
+mimeicon_DATA = $(MIME_ICONS)
+
+if INSTALL_SHARED_MIME_INFO
+mimedir = $(datadir)/mime/packages
+mime_DATA = org-altusmetrum-mimetypes.xml
+endif
+
+pixmapdir = $(datadir)/pixmaps
+pixmap_DATA = altusmetrum.xpm
+
+EXTRA_DIST = $(appicon_DATA) $(mimeicon_DATA) $(mime_DATA) windows-stub.c
+
+res:
+ echo $(RES)
+
+java-altosui:
+ @echo $(JAVA_AM_FILES)
+
+java-micropeak:
+ @echo $(JAVA_MP_FILES)
+
+java-telegps:
+ @echo $(JAVA_TG_FILES)
+
+fat: all $(ICO_FILES) $(ICNS_FILES) $(EXE_FILES)
+
+all-local: $(JAVA_FILES) $(AM_XPM)
+
+clean-local:
+ $(RM) $(AM_NAME)-*.png $(TG_NAME)-*.png $(MP_NAME)-*.png
+ $(RM) altus-metrum-*.png micropeak-*.png telegps-*.png
+ $(RM) $(EEPROM_NAME)-*.png $(TELEM_NAME)-*.png $(MPD_NAME)-*.png
+ $(RM) *.build *.ico *.rc *.icns *.o *.exe $(MPD_ICON)
+ $(RM) altusmetrum.xpm
+
+if INSTALL_SHARED_MIME_INFO
+install-data-hook:
+ update-mime-database $(DESTDIR)$(datadir)/mime
+ update-icon-caches $(DESTDIR)$(ICON_THEME)
+endif
+
+$(MPD_ICON): $(MP_ICON)
+ $(LN_S) $(MP_ICON) $@
+
+XPM_SRC=altusmetrum-altosui-32.png
+
+altusmetrum.xpm: $(XPM_SRC)
+ pngtopnm -alpha $(XPM_SRC) > mask-$@ && \
+ pngtopnm $(XPM_SRC) | \
+ ppmtoxpm -alphamask=mask-$@ > $@ && rm mask-$@
+
+$(AM_FILES): $(AM_NAME).build
+$(MP_FILES): $(MP_NAME).build
+$(TG_FILES): $(TG_NAME).build
+
+SUFFIXES=.svg .build .icns .ico .rc .o .exe
+
+.svg.build:
+ for i in $(RES); do rsvg-convert -w $$i -h $$i -o $*-$$i.png $*.svg; done && touch $@
+
+.build.icns:
+ png2icns $@ $(shell for i in $(MAC_RES); do echo $*-$$i.png; done)
+
+.build.ico:
+ icotool -c -o $@ $(shell for i in $(WIN_RES); do echo $*-$$i.png; done)
+
+.ico.rc:
+ ./make-rc "$*" $(VERSION) > $@
+
+
+MINGCC32=i686-w64-mingw32-gcc
+MINGWINDRES=i686-w64-mingw32-windres
+MINGFLAGS=-Wall -DWINDOWS -mwindows
+MINGLIBS=-lshlwapi
+
+.rc.o:
+ $(MINGWINDRES) $*.rc $@
+
+.o.exe:
+ $(MINGCC32) -o $@ $(MINGFLAGS) windows-stub.o $*.o $(MINGLIBS)
+
+$(EXE_FILES): windows-stub.o make-rc
+
+windows-stub.o: windows-stub.c
+ $(MINGCC32) -c $(MINGFLAGS) windows-stub.c