# Makefile for the PuTTY icon suite.
-ICONS = putty puttycfg puttygen pscp pageant pterm ptermcfg
-SIZES = 16 32 48
+ICONS = putty puttycfg puttygen pscp pageant pterm ptermcfg puttyins
+SIZES = 16 32 48 128
MODE = # override to -it on command line for opaque testing
MONOPNGS = $(foreach I,$(ICONS),$(foreach S,$(SIZES),$(I)-$(S)-mono.png))
TRUEPNGS = $(foreach I,$(ICONS),$(foreach S,$(SIZES),$(I)-$(S)-true.png))
-ICOS = putty.ico puttygen.ico pscp.ico pageant.ico pageants.ico puttycfg.ico
+ICOS = putty.ico puttygen.ico pscp.ico pageant.ico pageants.ico puttycfg.ico \
+ puttyins.ico
+ICNS = PuTTY.icns
CICONS = xpmputty.c xpmpucfg.c xpmpterm.c xpmptcfg.c
base: icos cicons
-all: pngs monopngs base # truepngs currently disabled by default
+all: pngs monopngs base icns # truepngs currently disabled by default
pngs: $(PNGS)
monopngs: $(MONOPNGS)
truepngs: $(TRUEPNGS)
icos: $(ICOS)
+icns: $(ICNS)
cicons: $(CICONS)
+install: icos cicons
+ cp $(ICOS) ../windows
+ cp $(CICONS) ../unix
+
$(PNGS): %.png: mkicon.py
./mkicon.py $(MODE) $(join $(subst -, ,$(basename $@)),_icon) $@
pscp-16-mono.png pscp-32-mono.png pscp-48-mono.png
./icon.pl -4 $(filter-out %-mono.png, $^) -1 $(filter %-mono.png, $^) > $@
+# Because the installer icon makes heavy use of brown when drawing
+# the cardboard box, it's worth having 8-bit versions of it in
+# addition to the 4- and 1-bit ones.
+puttyins.ico: puttyins-16.png puttyins-32.png puttyins-48.png \
+ puttyins-16-mono.png puttyins-32-mono.png \
+ puttyins-48-mono.png \
+ puttyins-16-true.png puttyins-32-true.png \
+ puttyins-48-true.png
+ ./icon.pl -8 $(filter %-true.png, $^) \
+ -4 $(filter-out %-true.png, $(filter-out %-mono.png, $^)) \
+ -1 $(filter %-mono.png, $^) > $@
+
+# Icon for the website. (This isn't linked into "make all".)
+website.ico: putty-16.png
+ ./icon.pl -4 $^ >$@
+
xpmputty.c: putty-16.png putty-32.png putty-48.png
./cicon.pl main_icon $^ > $@
xpmptcfg.c: ptermcfg-16.png ptermcfg-32.png ptermcfg-48.png
./cicon.pl cfg_icon $^ > $@
+PuTTY.icns: putty-16-mono.png putty-16.png \
+ putty-32-mono.png putty-32.png \
+ putty-48-mono.png putty-48.png \
+ putty-128.png
+ ./macicon.py mono:putty-16-mono.png colour:putty-16.png \
+ mono:putty-32-mono.png colour:putty-32.png \
+ mono:putty-48-mono.png colour:putty-48.png \
+ colour:putty-128.png \
+ output:$@
+
clean:
- rm -f *.png *.ico *.c
+ rm -f *.png *.ico *.icns *.c