Makefile 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. # Bloated Makefile to make new releases of pisg
  2. all: release
  3. # Ugly hack to get the version number from Pisg.pm
  4. VER = $(shell grep "version =>" modules/Pisg.pm | sed 's/[^"]*"\([^"]*\)".*/\1/')
  5. # append date if SNAPSHOT is defined
  6. ifeq ($(SNAPSHOT),)
  7. VERSION = $(VER)
  8. else
  9. VERSION = $(VER)_$(shell date +%Y%m%d)
  10. endif
  11. DIRNAME = pisg-$(VERSION)
  12. TARFILE = pisg-$(VERSION).tar.gz
  13. ZIPFILE = pisg-$(VERSION).zip
  14. FILES = pisg \
  15. setup.pl \
  16. LICENSE.md \
  17. README.md \
  18. CHANGELOG.md \
  19. pisg.cfg \
  20. pisg.cfg.example \
  21. lang.txt
  22. DOCS = docs/FORMATS \
  23. docs/Changelog \
  24. docs/RELEASE-NOTES-1.0.md \
  25. docs/CREDITS \
  26. docs/pisg-doc.html \
  27. docs/pisg-doc.txt \
  28. docs/pisg-doc.xml \
  29. docs/pisg.sgml \
  30. docs/pisg.1 \
  31. DEVDOCS = docs/dev/API
  32. SCRIPTS = scripts/crontab \
  33. scripts/dropegg.pl \
  34. scripts/egg2mirc.awk \
  35. scripts/eggdrop-pisg.tcl \
  36. scripts/eggdrop-pisg-test.tcl \
  37. scripts/pisg-addchan.tcl \
  38. scripts/pisg-autoalias.py \
  39. scripts/pisg-autoalias-test.py \
  40. scripts/adiirc2eggdrop.py scripts/znc-setup.sh \
  41. scripts/mirc2egg.sed \
  42. scripts/sirc-timestamp.pl \
  43. scripts/windows-ftp-upload.txt
  44. ADDALIAS = scripts/addalias/addalias.pl \
  45. scripts/addalias/README
  46. PUM = scripts/pum/pum.pl \
  47. scripts/pum/pum.conf
  48. MODULESDIR = modules
  49. MAIN_MODULE = $(MODULESDIR)/Pisg.pm
  50. PISG_MODULES = $(MODULESDIR)/Pisg/Common.pm \
  51. $(MODULESDIR)/Pisg/HTMLGenerator.pm \
  52. $(MODULESDIR)/Pisg/Insights.pm
  53. PARSER_MODULES = $(MODULESDIR)/Pisg/Parser/Logfile.pm
  54. FORMAT_MODULES = $(MODULESDIR)/Pisg/Parser/Format/axur.pm \
  55. $(MODULESDIR)/Pisg/Parser/Format/bxlog.pm \
  56. $(MODULESDIR)/Pisg/Parser/Format/bobot.pm \
  57. $(MODULESDIR)/Pisg/Parser/Format/blootbot.pm \
  58. $(MODULESDIR)/Pisg/Parser/Format/dancer.pm \
  59. $(MODULESDIR)/Pisg/Parser/Format/dircproxy.pm \
  60. $(MODULESDIR)/Pisg/Parser/Format/DCpp.pm \
  61. $(MODULESDIR)/Pisg/Parser/Format/eggdrop.pm \
  62. $(MODULESDIR)/Pisg/Parser/Format/energymech.pm \
  63. $(MODULESDIR)/Pisg/Parser/Format/grufti.pm \
  64. $(MODULESDIR)/Pisg/Parser/Format/hydra.pm \
  65. $(MODULESDIR)/Pisg/Parser/Format/ircle.pm \
  66. $(MODULESDIR)/Pisg/Parser/Format/infobot.pm \
  67. $(MODULESDIR)/Pisg/Parser/Format/IRCAP.pm \
  68. $(MODULESDIR)/Pisg/Parser/Format/irssi.pm \
  69. $(MODULESDIR)/Pisg/Parser/Format/ircII.pm \
  70. $(MODULESDIR)/Pisg/Parser/Format/javabot.pm \
  71. $(MODULESDIR)/Pisg/Parser/Format/konversation.pm \
  72. $(MODULESDIR)/Pisg/Parser/Format/kvirc.pm \
  73. $(MODULESDIR)/Pisg/Parser/Format/lulubot.pm \
  74. $(MODULESDIR)/Pisg/Parser/Format/oer.pm \
  75. $(MODULESDIR)/Pisg/Parser/Format/mbot.pm \
  76. $(MODULESDIR)/Pisg/Parser/Format/miau.pm \
  77. $(MODULESDIR)/Pisg/Parser/Format/mIRC.pm \
  78. $(MODULESDIR)/Pisg/Parser/Format/mIRC6.pm \
  79. $(MODULESDIR)/Pisg/Parser/Format/mIRC6hack.pm \
  80. $(MODULESDIR)/Pisg/Parser/Format/mozbot.pm \
  81. $(MODULESDIR)/Pisg/Parser/Format/muh.pm \
  82. $(MODULESDIR)/Pisg/Parser/Format/muh2.pm \
  83. $(MODULESDIR)/Pisg/Parser/Format/moobot.pm \
  84. $(MODULESDIR)/Pisg/Parser/Format/perlbot.pm \
  85. $(MODULESDIR)/Pisg/Parser/Format/pircbot.pm \
  86. $(MODULESDIR)/Pisg/Parser/Format/psybnc.pm \
  87. $(MODULESDIR)/Pisg/Parser/Format/sirc.pm \
  88. $(MODULESDIR)/Pisg/Parser/Format/supy.pm \
  89. $(MODULESDIR)/Pisg/Parser/Format/virc98.pm \
  90. $(MODULESDIR)/Pisg/Parser/Format/Vision.pm \
  91. $(MODULESDIR)/Pisg/Parser/Format/Trillian.pm \
  92. $(MODULESDIR)/Pisg/Parser/Format/Template.pm \
  93. $(MODULESDIR)/Pisg/Parser/Format/RacBot.pm \
  94. $(MODULESDIR)/Pisg/Parser/Format/rbot.pm \
  95. $(MODULESDIR)/Pisg/Parser/Format/xchat.pm \
  96. $(MODULESDIR)/Pisg/Parser/Format/winbot.pm \
  97. $(MODULESDIR)/Pisg/Parser/Format/weechat.pm \
  98. $(MODULESDIR)/Pisg/Parser/Format/weechat3.pm \
  99. $(MODULESDIR)/Pisg/Parser/Format/zcbot.pm \
  100. docs:
  101. $(MAKE) -C docs VERSION=$(VERSION)
  102. release: docs
  103. mkdir -p newrelease
  104. cat lang/readme.txt >> lang.txt
  105. cat lang/*.dat >> lang.txt
  106. mkdir $(DIRNAME)
  107. cp $(FILES) $(DIRNAME)
  108. mkdir $(DIRNAME)/scripts
  109. cp $(SCRIPTS) $(DIRNAME)/scripts
  110. mkdir $(DIRNAME)/docs
  111. cp -r $(DOCS) $(DIRNAME)/docs
  112. mkdir $(DIRNAME)/layout
  113. cp layout/*.css layout/*.js layout/build-themes.py $(DIRNAME)/layout
  114. mkdir $(DIRNAME)/site
  115. cp site/index.html site/README.txt $(DIRNAME)/site
  116. mkdir $(DIRNAME)/docs/dev
  117. cp $(DEVDOCS) $(DIRNAME)/docs/dev
  118. mkdir $(DIRNAME)/scripts/addalias
  119. cp $(ADDALIAS) $(DIRNAME)/scripts/addalias
  120. mkdir $(DIRNAME)/scripts/pum
  121. cp $(PUM) $(DIRNAME)/scripts/pum
  122. mkdir $(DIRNAME)/$(MODULESDIR)
  123. mkdir $(DIRNAME)/$(MODULESDIR)/Pisg
  124. mkdir $(DIRNAME)/$(MODULESDIR)/Pisg/Parser
  125. mkdir $(DIRNAME)/$(MODULESDIR)/Pisg/Parser/Format
  126. cp $(MAIN_MODULE) $(DIRNAME)/$(MODULESDIR)/
  127. cp $(PISG_MODULES) $(DIRNAME)/$(MODULESDIR)/Pisg/
  128. cp $(PARSER_MODULES) $(DIRNAME)/$(MODULESDIR)/Pisg/Parser
  129. cp $(FORMAT_MODULES) $(DIRNAME)/$(MODULESDIR)/Pisg/Parser/Format
  130. perl -i -pe 's/^(.*version => ")[^"]*(".*)/$${1}$(VERSION)$${2}/' $(DIRNAME)/$(MODULESDIR)/Pisg.pm
  131. tar zcfv newrelease/$(TARFILE) $(DIRNAME)
  132. zip -r pisg $(DIRNAME)
  133. mv pisg.zip newrelease/$(ZIPFILE)
  134. mv $(DIRNAME) newrelease
  135. clean:
  136. cd docs && make clean
  137. rm -f lang.txt
  138. rm -rf newrelease/$(TARFILE)
  139. rm -rf newrelease/$(ZIPFILE)
  140. rm -rf newrelease/$(DIRNAME)
  141. rm -rf $(DIRNAME)
  142. distclean: clean
  143. rm -rf newrelease/
  144. .PHONY: all release docs clean distclean