icon: Construct .exe files to hold windows icons for file associations
[fw/altos] / icon / Makefile.am
index 60afdb1c9b9ba3bbb2cc781b9eab53c9acd6bd72..61a169141d6127cb1eaafa7a56e81dc37903df22 100644 (file)
@@ -1,10 +1,22 @@
-RES=16 32 48 64 128 256
+JAVA_RES=16 32 48 64 128 256
+MAC_RES=16 32 128 256 512
+WIN_RES=16 24 32 48 64 72 96 128 180 256
+RES=$(shell echo $(JAVA_RES) $(MAC_RES) $(WIN_RES) | awk '{ for (i = 1; i <= NF; i++) printf("%s\n", $$i); }' | sort -n -u)
 
 AM_FILES=$(shell for i in $(RES); do echo altus-metrum-$$i.png; done)
 MP_FILES=$(shell for i in $(RES); do echo micropeak-$$i.png; done)
 TG_FILES=$(shell for i in $(RES); do echo telegps-$$i.png; done)
 
+MAC_TG_FILES=$(shell for i in $(MAC_RES); do echo telegps-$$i.png; done)
+MAC_MP_FILES=$(shell for i in $(MAC_RES); do echo micropeak-$$i.png; done)
+MAC_AM_FILES=$(shell for i in $(MAC_RES); do echo altus-metrum-$$i.png; done)
+
+WIN_TG_FILES=$(shell for i in $(WIN_RES); do echo telegps-$$i.png; done)
+WIN_MP_FILES=$(shell for i in $(WIN_RES); do echo micropeak-$$i.png; done)
+WIN_AM_FILES=$(shell for i in $(WIN_RES); do echo altus-metrum-$$i.png; done)
+
 ICO_FILES=altus-metrum.ico micro-peak.ico telegps.ico
+ICNS_FILES=AltosUIIcon.icns TeleGPS.icns MicroPeak.icns
 
 icondir = $(datadir)/icons/hicolor/scalable/apps
 
@@ -16,19 +28,63 @@ icon_DATA = $(AM_ICON) $(MP_ICON) $(TG_ICON)
 
 EXTRA_DIST = $(icon_DATA) $(AM_FILES) $(MP_FILES) $(TG_FILES)
 
-all-local: $(ICO_FILES)
+res:
+       echo $(RES)
+
+all-local: $(ICO_FILES) $(ICNS_FILES)
+
+clean-local:
+       $(RM) altus-metrum-*.png telegps-*.png micropeak-*.png *.build *.ico *.icns *.o *.exe
+
+$(AM_FILES): altusmetrum.build
+
+altusmetrum.build: altusmetrum.svg
+       for i in $(RES); do rsvg-convert -w $$i -h $$i -o altus-metrum-$$i.png altusmetrum.svg; done && touch $@
+
+$(TG_FILES): telegps.build
+
+telegps.build: telegps.svg
+       for i in $(RES); do rsvg-convert -w $$i -h $$i -o telegps-$$i.png telegps.svg; done && touch $@
+
+$(MP_FILES): micropeak.build
 
-$(TG_FILES): telegps.svg
-       for i in $(RES); do rsvg-convert -w $$i -o telegps-$$i.png telegps.svg; done
+micropeak.build: micropeak.svg
+       for i in $(RES); do rsvg-convert -w $$i -h $$i -o micropeak-$$i.png micropeak.svg; done && touch $@
 
 #clean-local:
 #      $(RM) -f $(ICO_FILES)
 
-altus-metrum.ico: $(AM_FILES)
-       icotool -c -o $@ $(AM_FILES)
+altus-metrum.ico: $(WIN_AM_FILES)
+       icotool -c -o $@ $(WIN_AM_FILES)
+
+micro-peak.ico: $(WIN_MP_FILES)
+       icotool -c -o $@ $(WIN_MP_FILES)
+
+telegps.ico: $(WIN_TG_FILES)
+       icotool -c -o $@ $(WIN_TG_FILES)
+
+AltosUIIcon.icns: $(MAC_AM_FILES)
+       png2icns $@ $(MAC_AM_FILES)
+
+TeleGPS.icns: $(MAC_TG_FILES)
+       png2icns $@ $(MAC_TG_FILES)
+
+MicroPeak.icns: $(MAC_MP_FILES)
+       png2icns $@ $(MAC_MP_FILES)
+
+MINGCC32=i686-w64-mingw32-gcc
+MINGWINDRES=i686-w64-mingw32-windres
+
+SUFFIXES=.rc .exe
+
+fat: all micro-peak.exe altus-metrum.exe telegps.exe
+
+altus-metrum.o: altus-metrum.ico
+micro-peak.o: micro-peak.ico
+telegps.o: telegps.ico
 
-micro-peak.ico: $(MP_FILES)
-       icotool -c -o $@ $(MP_FILES)
+.rc.o:
+       $(MINGWINDRES) $*.rc $@
 
-telegps.ico: $(TG_FILES)
-       icotool -c -o $@ $(TG_FILES)
+.o.exe:
+       $(MINGCC32) -o $@ windows-stub.c $*.o