1 JAVA_RES=16 32 48 64 128 256
2 MAC_RES=16 32 128 256 512
3 WIN_RES=16 24 32 48 64 72 96 128 180 256
4 RES=$(shell echo $(JAVA_RES) $(MAC_RES) $(WIN_RES) | awk '{ for (i = 1; i <= NF; i++) printf("%s\n", $$i); }' | sort -n -u)
6 # Application icon base names
8 AM_NAME = altusmetrum-altosui
9 MP_NAME = altusmetrum-micropeak
10 TG_NAME = altusmetrum-telegps
12 # File icon base names
14 EEPROM_NAME = application-vnd.altusmetrum.eeprom
15 TELEM_NAME = application-vnd.altusmetrum.telemetry
16 MPD_NAME = application-vnd.altusmetrum.micropeak
20 AM_ICON = $(AM_NAME).svg
21 MP_ICON = $(MP_NAME).svg
22 TG_ICON = $(TG_NAME).svg
24 # File icons (note that MicroPeak uses the application icon for files)
26 EEPROM_ICON = $(EEPROM_NAME).svg
27 TELEM_ICON = $(TELEM_NAME).svg
28 MPD_ICON = $(MPD_NAME).svg
37 LED_PNG = $(LED_SVG:.svg=.png)
39 LED_ICONS = $(LED_SVG) $(LED_PNG)
41 # Files needed for Mac OSX icons
43 MAC_AM_FILES = $(shell for i in $(MAC_RES); do echo $(AM_NAME)-$$i.png; done)
44 MAC_MP_FILES = $(shell for i in $(MAC_RES); do echo $(MP_NAME)-$$i.png; done)
45 MAC_TG_FILES = $(shell for i in $(MAC_RES); do echo $(TG_NAME)-$$i.png; done)
46 MAC_EEPROM_FILES= $(shell for i in $(MAC_RES); do echo $(EEPROM_NAME)-$$i.png; done)
47 MAC_TELEM_FILES = $(shell for i in $(MAC_RES); do echo $(TELEM_NAME)-$$i.png; done)
48 MAC_MPD_FILES = $(shell for i in $(MAC_RES); do echo $(MPD_NAME)-$$i.png; done)
50 ICNS_FILES = $(AM_NAME).icns $(MP_NAME).icns $(TG_NAME).icns \
51 $(EEPROM_NAME).icns $(TELEM_NAME).icns $(MPD_NAME).icns
53 # Files needed for Windows icons
55 WIN_AM_FILES = $(shell for i in $(WIN_RES); do echo $(AM_NAME)-$$i.png; done)
56 WIN_MP_FILES = $(shell for i in $(WIN_RES); do echo $(MP_NAME)-$$i.png; done)
57 WIN_TG_FILES = $(shell for i in $(WIN_RES); do echo $(TG_NAME)-$$i.png; done)
58 WIN_EEPROM_FILES= $(shell for i in $(WIN_RES); do echo $(EEPROM_NAME)-$$i.png; done)
59 WIN_TELEM_FILES = $(shell for i in $(WIN_RES); do echo $(TELEM_NAME)-$$i.png; done)
60 WIN_MPD_FILES = $(shell for i in $(WIN_RES); do echo $(MPD_NAME)-$$i.png; done)
62 ICO_FILES = $(AM_NAME).ico $(MP_NAME).ico $(TG_NAME).ico \
63 $(EEPROM_NAME).ico $(TELEM_NAME).ico $(MPD_NAME).ico
65 EXE_FILES = $(AM_NAME).exe $(MP_NAME).exe $(TG_NAME).exe \
66 $(EEPROM_NAME).exe $(TELEM_NAME).exe $(MPD_NAME).exe
68 # Files needed for Java internal icons
70 JAVA_AM_FILES = $(shell for i in $(JAVA_RES); do echo $(AM_NAME)-$$i.png; done)
71 JAVA_MP_FILES = $(shell for i in $(JAVA_RES); do echo $(MP_NAME)-$$i.png; done)
72 JAVA_TG_FILES = $(shell for i in $(JAVA_RES); do echo $(TG_NAME)-$$i.png; done)
74 JAVA_FILES = $(JAVA_AM_FILES) $(JAVA_MP_FILES) $(JAVA_TG_FILES)
76 # PNG files needed by anyone
78 AM_FILES = $(shell for i in $(RES); do echo $(AM_NAME)-$$i.png; done)
79 MP_FILES = $(shell for i in $(RES); do echo $(MP_NAME)-$$i.png; done)
80 TG_FILES = $(shell for i in $(RES); do echo $(TG_NAME)-$$i.png; done)
81 EEPROM_FILES = $(shell for i in $(RES); do echo $(EEPROM_NAME)-$$i.png; done)
82 TELEM_FILES = $(shell for i in $(RES); do echo $(TELEM_NAME)-$$i.png; done)
83 IN_MPD_FILES = $(shell for i in $(RES); do echo $(MPD_NAME)-$$i.png; done)
85 # XPM file needed by debian
87 AM_XPM = altusmetrum.xpm
89 ICON_THEME=$(datadir)/icons/hicolor
91 appicondir = $(ICON_THEME)/scalable/apps
92 appicon_DATA = $(AM_ICON) $(MP_ICON) $(TG_ICON)
94 MIME_ICONS = $(EEPROM_ICON) $(TELEM_ICON) $(MPD_ICON)
96 mimeicondir = $(ICON_THEME)/scalable/mimetypes
97 mimeicon_DATA = $(MIME_ICONS)
99 if INSTALL_SHARED_MIME_INFO
100 mimedir = $(datadir)/mime/packages
101 mime_DATA = org-altusmetrum-mimetypes.xml
104 pixmapdir = $(datadir)/pixmaps
105 pixmap_DATA = altusmetrum.xpm
107 EXTRA_DIST = $(appicon_DATA) $(mimeicon_DATA) $(mime_DATA) windows-stub.c
113 @echo $(JAVA_AM_FILES)
116 @echo $(JAVA_MP_FILES)
119 @echo $(JAVA_TG_FILES)
121 fat: all $(ICO_FILES) $(ICNS_FILES) $(EXE_FILES)
123 all-local: $(JAVA_FILES) $(AM_XPM) $(LED_ICONS)
126 $(RM) $(AM_NAME)-*.png $(TG_NAME)-*.png $(MP_NAME)-*.png
127 $(RM) altus-metrum-*.png micropeak-*.png telegps-*.png
128 $(RM) $(EEPROM_NAME)-*.png $(TELEM_NAME)-*.png $(MPD_NAME)-*.png
129 $(RM) *.build *.ico *.rc *.icns *.o *.exe $(MPD_ICON)
130 $(RM) altusmetrum.xpm
133 if INSTALL_SHARED_MIME_INFO
135 update-mime-database $(DESTDIR)$(datadir)/mime
136 update-icon-caches $(DESTDIR)$(ICON_THEME)
142 $(MPD_ICON): $(MP_ICON)
143 $(LN_S) $(MP_ICON) $@
145 XPM_SRC=altusmetrum-altosui-32.png
147 altusmetrum.xpm: $(XPM_SRC)
148 pngtopnm -alpha $(XPM_SRC) > mask-$@ && \
149 pngtopnm $(XPM_SRC) | \
150 ppmtoxpm -alphamask=mask-$@ > $@ && rm mask-$@
152 $(AM_FILES): $(AM_NAME).build
153 $(MP_FILES): $(MP_NAME).build
154 $(TG_FILES): $(TG_NAME).build
156 SUFFIXES=.svg .build .icns .ico .rc .o .exe
159 for i in $(RES); do rsvg-convert -w $$i -h $$i -o $*-$$i.png $*.svg; done && touch $@
162 png2icns $@ $(shell for i in $(MAC_RES); do echo $*-$$i.png; done)
165 icotool -c -o $@ $(shell for i in $(WIN_RES); do echo $*-$$i.png; done)
168 ./make-rc "$*" $(VERSION) > $@
171 MINGCC32=i686-w64-mingw32-gcc
172 MINGWINDRES=i686-w64-mingw32-windres
173 MINGFLAGS=-Wall -DWINDOWS -mwindows
177 $(MINGWINDRES) $*.rc $@
180 $(MINGCC32) -o $@ $(MINGFLAGS) windows-stub.o $*.o $(MINGLIBS)
182 $(EXE_FILES): windows-stub.o make-rc
184 windows-stub.o: windows-stub.c
185 $(MINGCC32) -c $(MINGFLAGS) windows-stub.c
187 altosdroid.png: altosdroid.svg
188 rsvg-convert -a -b white -h 480 altosdroid.svg | pngtopnm | pnmpad -white -width 512 -height 512 | pnmtopng > $@