194 lines
5.6 KiB
Makefile
194 lines
5.6 KiB
Makefile
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
|
|
AMAZON_RES=114 512
|
|
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)
|
|
|
|
# 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
|
|
|
|
LED_SVG = \
|
|
redoff.svg \
|
|
greenoff.svg \
|
|
greenled.svg \
|
|
grayon.svg \
|
|
grayled.svg \
|
|
redled.svg
|
|
LED_PNG = $(LED_SVG:.svg=.png)
|
|
|
|
LED_ICONS = $(LED_SVG) $(LED_PNG)
|
|
|
|
# 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)
|
|
|
|
# Files needed for Amazon store
|
|
|
|
AMAZON_FILES = $(shell for i in $(AMAZON_RES); do echo $(AM_NAME)-$$i.png; done)
|
|
|
|
# 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) $(LED_ICONS) $(AMAZON_FILES)
|
|
|
|
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
|
|
$(RM) $(LED_ICONS)
|
|
|
|
if INSTALL_SHARED_MIME_INFO
|
|
install-data-hook:
|
|
update-mime-database $(DESTDIR)$(datadir)/mime
|
|
update-icon-caches $(DESTDIR)$(ICON_THEME)
|
|
endif
|
|
|
|
$(LED_ICONS): led.5c
|
|
nickle led.5c $@
|
|
|
|
$(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:
|
|
./make-rc "$*" $(VERSION) > $@
|
|
|
|
|
|
MINGCC32=i686-w64-mingw32-gcc
|
|
MINGWINDRES=i686-w64-mingw32-windres
|
|
MINGFLAGS=-Wall -DWINDOWS -mwindows
|
|
MINGLIBS=-lshlwapi
|
|
|
|
.rc.o:
|
|
$(MINGWINDRES) $*.rc $@
|
|
|
|
.o.exe:
|
|
$(MINGCC32) -o $@ $(MINGFLAGS) windows-stub.o $*.o $(MINGLIBS)
|
|
|
|
$(EXE_FILES): windows-stub.o make-rc
|
|
|
|
windows-stub.o: windows-stub.c
|
|
$(MINGCC32) -c $(MINGFLAGS) windows-stub.c
|
|
|
|
altosdroid.png: altosdroid.svg
|
|
rsvg-convert -a -b white -h 480 altosdroid.svg | pngtopnm | pnmpad -white -width 512 -height 512 | pnmtopng > $@
|