icon: Construct .exe files to hold windows icons for file associations
[fw/altos] / icon / Makefile.am
index db5577d6454fdf14a5dcfa045b503b2c751bedbf..61a169141d6127cb1eaafa7a56e81dc37903df22 100644 (file)
@@ -1,15 +1,20 @@
-LINUX_RES=16 32 48 64 128 256 512
+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 $(LINUX_RES) $(MAC_RES) $(WIN_RES) | awk '{ for (i = 1; i <= NF; i++) printf("%s\n", $$i); }' | sort -n -u)
+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
 
@@ -29,34 +34,34 @@ res:
 all-local: $(ICO_FILES) $(ICNS_FILES)
 
 clean-local:
-       $(RM) $(TG_FILES) $(MP_FILES) $(ICO_FILES) $(ICNS_FILES) *.build
+       $(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 ./make-png altusmetrum.svg $$i altus-metrum-$$i.png; done && touch $@
+       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 ./make-png telegps.svg $$i telegps-$$i.png; done && touch $@
+       for i in $(RES); do rsvg-convert -w $$i -h $$i -o telegps-$$i.png telegps.svg; done && touch $@
 
 $(MP_FILES): micropeak.build
 
 micropeak.build: micropeak.svg
-       for i in $(RES); do ./make-png micropeak.svg $$i micropeak-$$i.png; done && touch $@
+       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: $(MP_FILES)
-       icotool -c -o $@ $(MP_FILES)
+micro-peak.ico: $(WIN_MP_FILES)
+       icotool -c -o $@ $(WIN_MP_FILES)
 
-telegps.ico: $(TG_FILES)
-       icotool -c -o $@ $(TG_FILES)
+telegps.ico: $(WIN_TG_FILES)
+       icotool -c -o $@ $(WIN_TG_FILES)
 
 AltosUIIcon.icns: $(MAC_AM_FILES)
        png2icns $@ $(MAC_AM_FILES)
@@ -66,3 +71,20 @@ TeleGPS.icns: $(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
+
+.rc.o:
+       $(MINGWINDRES) $*.rc $@
+
+.o.exe:
+       $(MINGCC32) -o $@ windows-stub.c $*.o