Makefile 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. # Makefile for the PuTTY icon suite.
  2. ICONS = putty puttycfg puttygen pscp pageant pterm ptermcfg puttyins
  3. SIZES = 16 32 48 128
  4. MODE = # override to -it on command line for opaque testing
  5. PAMS = $(foreach I,$(ICONS),$(foreach S,$(SIZES),$(I)-$(S).pam))
  6. MONOPAMS = $(foreach I,$(ICONS),$(foreach S,$(SIZES),$(I)-$(S)-mono.pam))
  7. TRUEPAMS = $(foreach I,$(ICONS),$(foreach S,$(SIZES),$(I)-$(S)-true.pam))
  8. PNGS = $(patsubst %.pam,%.png,$(PAMS))
  9. MONOPNGS = $(patsubst %.pam,%.png,$(MONOPAMS))
  10. TRUEPNGS = $(patsubst %.pam,%.png,$(TRUEPAMS))
  11. ICOS = putty.ico puttygen.ico pscp.ico pageant.ico pageants.ico puttycfg.ico \
  12. puttyins.ico
  13. ICNS = PuTTY.icns Pterm.icns
  14. CICONS = xpmputty.c xpmpucfg.c xpmpterm.c xpmptcfg.c
  15. base: icos cicons
  16. all: pngs monopngs base icns # truepngs currently disabled by default
  17. pngs: $(PNGS)
  18. monopngs: $(MONOPNGS)
  19. truepngs: $(TRUEPNGS)
  20. icos: $(ICOS)
  21. icns: $(ICNS)
  22. cicons: $(CICONS)
  23. install: icos cicons
  24. cp $(ICOS) ../windows
  25. cp $(CICONS) ../unix
  26. $(PAMS): %.pam: mkicon.py
  27. ./mkicon.py $(MODE) $(join $(subst -, ,$(basename $@)),_icon) $@
  28. $(PNGS) $(MONOPNGS) $(TRUEPNGS): %.png: %.pam
  29. convert $< $@
  30. $(MONOPAMS): %.pam: mkicon.py
  31. ./mkicon.py -2 $(MODE) $(join $(subst -, ,$(subst -mono,,$(basename $@))),_icon) $@
  32. $(TRUEPAMS): %.pam: mkicon.py
  33. ./mkicon.py -T $(MODE) $(join $(subst -, ,$(subst -true,,$(basename $@))),_icon) $@
  34. putty.ico: putty-16.png putty-32.png putty-48.png \
  35. putty-16-mono.png putty-32-mono.png putty-48-mono.png
  36. ./icon.pl -4 $(filter-out %-mono.png, $^) -1 $(filter %-mono.png, $^) > $@
  37. puttycfg.ico: puttycfg-16.png puttycfg-32.png puttycfg-48.png \
  38. puttycfg-16-mono.png puttycfg-32-mono.png puttycfg-48-mono.png
  39. ./icon.pl -4 $(filter-out %-mono.png, $^) -1 $(filter %-mono.png, $^) > $@
  40. puttygen.ico: puttygen-16.png puttygen-32.png puttygen-48.png \
  41. puttygen-16-mono.png puttygen-32-mono.png puttygen-48-mono.png
  42. ./icon.pl -4 $(filter-out %-mono.png, $^) -1 $(filter %-mono.png, $^) > $@
  43. pageant.ico: pageant-16.png pageant-32.png pageant-48.png \
  44. pageant-16-mono.png pageant-32-mono.png pageant-48-mono.png
  45. ./icon.pl -4 $(filter-out %-mono.png, $^) -1 $(filter %-mono.png, $^) > $@
  46. pageants.ico: pageant-16.png pageant-16-mono.png
  47. ./icon.pl -4 $(filter-out %-mono.png, $^) -1 $(filter %-mono.png, $^) > $@
  48. pscp.ico: pscp-16.png pscp-32.png pscp-48.png \
  49. pscp-16-mono.png pscp-32-mono.png pscp-48-mono.png
  50. ./icon.pl -4 $(filter-out %-mono.png, $^) -1 $(filter %-mono.png, $^) > $@
  51. # Because the installer icon makes heavy use of brown when drawing
  52. # the cardboard box, it's worth having 8-bit versions of it in
  53. # addition to the 4- and 1-bit ones.
  54. puttyins.ico: puttyins-16.png puttyins-32.png puttyins-48.png \
  55. puttyins-16-mono.png puttyins-32-mono.png \
  56. puttyins-48-mono.png \
  57. puttyins-16-true.png puttyins-32-true.png \
  58. puttyins-48-true.png
  59. ./icon.pl -8 $(filter %-true.png, $^) \
  60. -4 $(filter-out %-true.png, $(filter-out %-mono.png, $^)) \
  61. -1 $(filter %-mono.png, $^) > $@
  62. # Icon for the website. (This isn't linked into "make all".)
  63. website.ico: putty-16.png
  64. ./icon.pl -4 $^ >$@
  65. xpmputty.c: putty-16.png putty-32.png putty-48.png
  66. ./cicon.pl main_icon $^ > $@
  67. xpmpucfg.c: puttycfg-16.png puttycfg-32.png puttycfg-48.png
  68. ./cicon.pl cfg_icon $^ > $@
  69. xpmpterm.c: pterm-16.png pterm-32.png pterm-48.png
  70. ./cicon.pl main_icon $^ > $@
  71. xpmptcfg.c: ptermcfg-16.png ptermcfg-32.png ptermcfg-48.png
  72. ./cicon.pl cfg_icon $^ > $@
  73. PuTTY.icns: putty-16-mono.pam putty-16.pam \
  74. putty-32-mono.pam putty-32.pam \
  75. putty-48-mono.pam putty-48.pam \
  76. putty-128.pam
  77. ./macicon.py mono:putty-16-mono.pam colour:putty-16.pam \
  78. mono:putty-32-mono.pam colour:putty-32.pam \
  79. mono:putty-48-mono.pam colour:putty-48.pam \
  80. colour:putty-128.pam \
  81. output:$@
  82. Pterm.icns: pterm-16-mono.pam pterm-16.pam \
  83. pterm-32-mono.pam pterm-32.pam \
  84. pterm-48-mono.pam pterm-48.pam \
  85. pterm-128.pam
  86. ./macicon.py mono:pterm-16-mono.pam colour:pterm-16.pam \
  87. mono:pterm-32-mono.pam colour:pterm-32.pam \
  88. mono:pterm-48-mono.pam colour:pterm-48.pam \
  89. colour:pterm-128.pam \
  90. output:$@
  91. clean:
  92. rm -f *.pam *.png *.ico *.icns *.c