src: Add easymini-v3.0
[fw/altos] / icon / Makefile.am
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 AMAZON_RES=114 512
5 RES=$(shell echo $(JAVA_RES) $(MAC_RES) $(WIN_RES) $(AMAZON_RES)| awk '{ for (i = 1; i <= NF; i++) printf("%s\n", $$i); }' | sort -n -u)
6
7 # Application icon base names
8
9 AM_NAME         = altusmetrum-altosui
10 MP_NAME         = altusmetrum-micropeak
11 TG_NAME         = altusmetrum-telegps
12
13 # File icon base names
14
15 EEPROM_NAME     = application-vnd.altusmetrum.eeprom
16 TELEM_NAME      = application-vnd.altusmetrum.telemetry
17 MPD_NAME        = application-vnd.altusmetrum.micropeak
18
19 # Application icons
20
21 AM_ICON         = $(AM_NAME).svg
22 MP_ICON         = $(MP_NAME).svg
23 TG_ICON         = $(TG_NAME).svg
24
25 # File icons (note that MicroPeak uses the application icon for files)
26
27 EEPROM_ICON     = $(EEPROM_NAME).svg
28 TELEM_ICON      = $(TELEM_NAME).svg
29 MPD_ICON        = $(MPD_NAME).svg
30
31 LED_SVG = \
32         redoff.svg \
33         greenoff.svg \
34         greenled.svg \
35         grayon.svg \
36         grayled.svg \
37         redled.svg
38 LED_PNG = $(LED_SVG:.svg=.png)
39
40 LED_ICONS = $(LED_SVG) $(LED_PNG)
41
42 # Files needed for Mac OSX icons
43
44 MAC_AM_FILES    = $(shell for i in $(MAC_RES); do echo $(AM_NAME)-$$i.png; done)
45 MAC_MP_FILES    = $(shell for i in $(MAC_RES); do echo $(MP_NAME)-$$i.png; done)
46 MAC_TG_FILES    = $(shell for i in $(MAC_RES); do echo $(TG_NAME)-$$i.png; done)
47 MAC_EEPROM_FILES= $(shell for i in $(MAC_RES); do echo $(EEPROM_NAME)-$$i.png; done)
48 MAC_TELEM_FILES = $(shell for i in $(MAC_RES); do echo $(TELEM_NAME)-$$i.png; done)
49 MAC_MPD_FILES   = $(shell for i in $(MAC_RES); do echo $(MPD_NAME)-$$i.png; done)
50
51 ICNS_FILES      = $(AM_NAME).icns $(MP_NAME).icns $(TG_NAME).icns \
52                   $(EEPROM_NAME).icns $(TELEM_NAME).icns $(MPD_NAME).icns
53
54 # Files needed for Windows icons
55
56 WIN_AM_FILES    = $(shell for i in $(WIN_RES); do echo $(AM_NAME)-$$i.png; done)
57 WIN_MP_FILES    = $(shell for i in $(WIN_RES); do echo $(MP_NAME)-$$i.png; done)
58 WIN_TG_FILES    = $(shell for i in $(WIN_RES); do echo $(TG_NAME)-$$i.png; done)
59 WIN_EEPROM_FILES= $(shell for i in $(WIN_RES); do echo $(EEPROM_NAME)-$$i.png; done)
60 WIN_TELEM_FILES = $(shell for i in $(WIN_RES); do echo $(TELEM_NAME)-$$i.png; done)
61 WIN_MPD_FILES   = $(shell for i in $(WIN_RES); do echo $(MPD_NAME)-$$i.png; done)
62
63 ICO_FILES       = $(AM_NAME).ico $(MP_NAME).ico $(TG_NAME).ico \
64                   $(EEPROM_NAME).ico $(TELEM_NAME).ico $(MPD_NAME).ico
65
66 EXE_FILES       = $(AM_NAME).exe $(MP_NAME).exe $(TG_NAME).exe \
67                   $(EEPROM_NAME).exe $(TELEM_NAME).exe $(MPD_NAME).exe
68
69 # Files needed for Java internal icons
70
71 JAVA_AM_FILES   = $(shell for i in $(JAVA_RES); do echo $(AM_NAME)-$$i.png; done)
72 JAVA_MP_FILES   = $(shell for i in $(JAVA_RES); do echo $(MP_NAME)-$$i.png; done)
73 JAVA_TG_FILES   = $(shell for i in $(JAVA_RES); do echo $(TG_NAME)-$$i.png; done)
74
75 JAVA_FILES      = $(JAVA_AM_FILES) $(JAVA_MP_FILES) $(JAVA_TG_FILES)
76
77 # Files needed for Amazon store
78
79 AMAZON_FILES    = $(shell for i in $(AMAZON_RES); do echo $(AM_NAME)-$$i.png; done)
80
81 # PNG files needed by anyone
82
83 AM_FILES        = $(shell for i in $(RES); do echo $(AM_NAME)-$$i.png; done)
84 MP_FILES        = $(shell for i in $(RES); do echo $(MP_NAME)-$$i.png; done)
85 TG_FILES        = $(shell for i in $(RES); do echo $(TG_NAME)-$$i.png; done)
86 EEPROM_FILES    = $(shell for i in $(RES); do echo $(EEPROM_NAME)-$$i.png; done)
87 TELEM_FILES     = $(shell for i in $(RES); do echo $(TELEM_NAME)-$$i.png; done)
88 IN_MPD_FILES    = $(shell for i in $(RES); do echo $(MPD_NAME)-$$i.png; done)
89
90 # XPM file needed by debian
91
92 AM_XPM = altusmetrum.xpm
93
94 ICON_THEME=$(datadir)/icons/hicolor
95
96 appicondir = $(ICON_THEME)/scalable/apps
97 appicon_DATA = $(AM_ICON) $(MP_ICON) $(TG_ICON)
98
99 MIME_ICONS = $(EEPROM_ICON) $(TELEM_ICON) $(MPD_ICON)
100
101 mimeicondir = $(ICON_THEME)/scalable/mimetypes
102 mimeicon_DATA = $(MIME_ICONS)
103
104 if INSTALL_SHARED_MIME_INFO
105 mimedir = $(datadir)/mime/packages
106 mime_DATA = org-altusmetrum-mimetypes.xml
107 endif
108
109 pixmapdir = $(datadir)/pixmaps
110 pixmap_DATA = altusmetrum.xpm
111
112 EXTRA_DIST = $(appicon_DATA) $(mimeicon_DATA) $(mime_DATA) windows-stub.c
113
114 res:
115         echo $(RES)
116
117 java-altosui:
118         @echo $(JAVA_AM_FILES)
119
120 java-micropeak:
121         @echo $(JAVA_MP_FILES)
122
123 java-telegps:
124         @echo $(JAVA_TG_FILES)
125
126 fat: all $(ICO_FILES) $(ICNS_FILES) $(EXE_FILES)
127
128 all-local: $(JAVA_FILES) $(AM_XPM) $(LED_ICONS) $(AMAZON_FILES)
129
130 clean-local:
131         $(RM) $(AM_NAME)-*.png $(TG_NAME)-*.png $(MP_NAME)-*.png
132         $(RM) altus-metrum-*.png micropeak-*.png telegps-*.png
133         $(RM) $(EEPROM_NAME)-*.png $(TELEM_NAME)-*.png $(MPD_NAME)-*.png
134         $(RM) *.build *.ico *.rc *.icns *.o *.exe $(MPD_ICON)
135         $(RM) altusmetrum.xpm
136         $(RM) $(LED_ICONS)
137
138 if INSTALL_SHARED_MIME_INFO
139 install-data-hook:
140         update-mime-database $(DESTDIR)$(datadir)/mime
141         update-icon-caches $(DESTDIR)$(ICON_THEME)
142 endif
143
144 $(LED_ICONS): led.5c
145         nickle led.5c $@
146
147 $(MPD_ICON): $(MP_ICON)
148         $(LN_S) $(MP_ICON) $@
149
150 XPM_SRC=altusmetrum-altosui-32.png
151
152 altusmetrum.xpm: $(XPM_SRC)
153         pngtopnm -alpha $(XPM_SRC) > mask-$@ && \
154                 pngtopnm $(XPM_SRC) | \
155                 ppmtoxpm -alphamask=mask-$@ > $@ && rm mask-$@
156
157 $(AM_FILES): $(AM_NAME).build
158 $(MP_FILES): $(MP_NAME).build
159 $(TG_FILES): $(TG_NAME).build
160
161 SUFFIXES=.svg .build .icns .ico .rc .o .exe
162
163 .svg.build:
164         for i in $(RES); do rsvg-convert -w $$i -h $$i -o $*-$$i.png $*.svg; done && touch $@
165
166 .build.icns:
167         png2icns $@ $(shell for i in $(MAC_RES); do echo $*-$$i.png; done)
168
169 .build.ico:
170         icotool -c -o $@ $(shell for i in $(WIN_RES); do echo $*-$$i.png; done)
171
172 .ico.rc:
173         ./make-rc "$*" $(VERSION) > $@
174
175
176 MINGCC32=i686-w64-mingw32-gcc
177 MINGWINDRES=i686-w64-mingw32-windres
178 MINGFLAGS=-Wall -DWINDOWS -mwindows
179 MINGLIBS=-lshlwapi
180
181 .rc.o:
182         $(MINGWINDRES) $*.rc $@
183
184 .o.exe:
185         $(MINGCC32) -o $@ $(MINGFLAGS) windows-stub.o $*.o $(MINGLIBS)
186
187 $(EXE_FILES): windows-stub.o make-rc
188
189 windows-stub.o: windows-stub.c
190         $(MINGCC32) -c $(MINGFLAGS) windows-stub.c
191
192 altosdroid.png: altosdroid.svg
193         rsvg-convert -a -b white -h 480 altosdroid.svg | pngtopnm | pnmpad -white -width 512 -height 512 | pnmtopng > $@