summaryrefslogtreecommitdiff
path: root/icon/Makefile.am
blob: c08e9236e91ac75392edd300dea1f9440d1af2e4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
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)

# Application icon base names

AM_NAME		= altusmetrum-altosui
MP_NAME		= altusmetrum-micropeak
TG_NAME		= altusmetrum-telegps

# File icon base names

EEPROM_NAME	= application-vnd.altusmetrum.eeprom
TELEM_NAME	= application-vnd.altusmetrum.telemetry
MPD_NAME	= application-vnd.altusmetrum.micropeak

# Application icons

AM_ICON		= $(AM_NAME).svg
MP_ICON		= $(MP_NAME).svg
TG_ICON		= $(TG_NAME).svg

# File icons (note that MicroPeak uses the application icon for files)

EEPROM_ICON	= $(EEPROM_NAME).svg
TELEM_ICON	= $(TELEM_NAME).svg
MPD_ICON	= $(MPD_NAME).svg

# Files needed for Mac OSX icons

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:
	echo '101 ICON "$*.ico"' > $@


MINGCC32=i686-w64-mingw32-gcc
MINGWINDRES=i686-w64-mingw32-windres

.rc.o:
	$(MINGWINDRES) $*.rc $@

.o.exe:
	$(MINGCC32) -o $@ windows-stub.c $*.o