Makefile
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sun, 10 Jan 2016 16:52:45 +0200
changeset 176 c14dba10e59d
parent 175 9a83576eec4c
child 178 ef24ad27c83d
permissions -rw-r--r--
Add missing nav link.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
#
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
# You can override such variables in Makefile.config:
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
#
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
#   SF_USER     SourceForge user name.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
################################################################
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
# Standard GNU Makefile settings.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
SHELL = /bin/bash
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
export PATH := /bin:/usr/bin:${PATH}
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
# Disable built in pattern rules.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
MAKEFLAGS += -r
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
# Disable built in variables.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
MAKEFLAGS += -R
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
# Disable built in suffix rules.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
.SUFFIXES:
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
# Delete target file if command fails.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
.DELETE_ON_ERROR:
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
# Default target.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
.DEFAULT_GOAL = help
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
################################################################
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
# Build script definitions.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
BUILD_SCRIPTS := $(firstword $(MAKEFILE_LIST))
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
ifneq '' '$(wildcard Makefile.config)'
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
  include Makefile.config
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
  BUILD_SCRIPTS += Makefile.config
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
endif
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
################################################################
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
# Version extracting/generation.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
# Prevent making distribution with wrong version.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
ifneq '' '$(filter deploy% dist%,$(MAKECMDGOALS))'
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
  ifeq '' '$(MAKE_RESTARTS)'
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
    $(info $(shell rm -f VERSION))
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
  endif
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
endif
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
# Here are vmajor and vminor. Look README section "Versioning rules."
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
-include VERSION
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
VERSION:
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
	\
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
vtagdist=$$(hg log -r . --template '{latesttagdistance}'); \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
vatrelease=$$([ $$vtagdist -le 1 ] && echo yes || echo no); \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
vtag=$$(hg log -r . --template '{latesttag}'); \
50
0bda4161d1b9 Fix tag prefix (after copy/paste).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 49
diff changeset
    51
vmajor=$${vtag#v}; \
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
vmajor=$${vmajor%%.*}; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
vminor=$${vtag#*.}; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
vrev=$$(hg id -i); \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
visclean=$$(case $$vrev in *+) echo no;; *) echo yes;; esac); \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
vrev=$${vrev%+}; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
{ \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
echo "vrev=$$vrev"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
echo "vtag=$$vtag"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
echo "vtagdist=$$vtagdist"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    61
echo "visclean=$$visclean"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    62
echo "vatrelease=$$vatrelease"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    63
echo "vmajor=$$vmajor"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    64
echo "vminor=$$vminor"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    65
} >VERSION
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    66
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    67
################################################################
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    68
# Determine platform/environment.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    69
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    70
host_os = unix
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    71
ifneq '' '$(COMSPEC)'
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    72
  ifneq '' '$(WINDIR)'
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    73
    # Probably under Windows.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    74
    host_os = windows
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    75
    ifneq '' '$(wildcard /etc/setup/*cygwin*)'
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    76
      # Probably under Cygwin.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    77
      host_os = cygwin
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    78
    endif
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    79
  endif
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    80
endif
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    81
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    82
################################################################
77
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    83
# Build tools definition/switches.
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    84
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    85
RST_WARNING_FLAGS := --halt warning
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    86
RST_FLAGS := --strip-comments
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    87
RST_FLAGS += $(RST_WARNING_FLAGS)
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    88
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    89
RST2HTML := rst2html
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    90
ifeq '$(host_os)' 'cygwin'
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    91
  RST2HTML := rst2html.py
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    92
endif
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    93
RST2HTML_FLAGS := $(RST_FLAGS)
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    94
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
    95
################################################################
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    96
# Project dirs/files.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    97
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    98
pkgname = 2048-js-ai
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    99
sfpkgname = js-2048-ai
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   100
fullpkgname = $(pkgname)-$(vmajor).$(vminor)
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   101
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   102
DIST_DIR = $(fullpkgname)
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   103
77
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   104
RST_GEN_FILES := VERSION.rst
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   105
RST_COMMON_FILES := VERSION.rst header.rst
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   106
RST_FILES := $(filter-out $(RST_COMMON_FILES),$(sort $(wildcard *.rst) $(RST_GEN_FILES)))
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   107
RST_HTML_FILES := $(RST_FILES:.rst=.html)
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   108
57
94e1b2d0bd31 Add JSDoc annotation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   109
JS_FILES := $(wildcard *.js)
77
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   110
HTML_FILES := 2048.html
84
58adeb5e4264 Add missing file to dist and deploy.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 82
diff changeset
   111
WWW_FILES := $(JS_FILES) $(HTML_FILES) $(RST_HTML_FILES)
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   112
82
a61ac9c2d506 Package RST files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 80
diff changeset
   113
DIST_FILES = $(WWW_FILES) $(RST_FILES) VERSION
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   114
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   115
DIST_TARBALLS = $(DIST_DIR).tar.gz $(DIST_DIR).zip
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   116
57
94e1b2d0bd31 Add JSDoc annotation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   117
JSDOC_DIR := jsdoc
94e1b2d0bd31 Add JSDoc annotation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   118
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   119
################################################################
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   120
# Deploy targets.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   121
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   122
ifeq '' '$(SF_USER)'
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   123
  SF_USER := gavenkoa
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   124
endif
175
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   125
ifeq '' '$(DEFUN_USER)'
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   126
  SF_USER := user
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   127
endif
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   128
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   129
.PHONY: deploy
175
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   130
deploy: deploy2defun deploy2sf
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   131
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   132
.PHONY: deploy2defun
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   133
deploy2defun: deploy2defun-src deploy2defun-www
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   134
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   135
.PHONY: deploy2defun-src
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   136
deploy2defun-src:
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   137
	hg push ssh://$(DEFUN_USER)@hg.defun.work//srv/hg/2048-js-ai/ || [ $$? = 1 ]
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   138
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   139
.PHONY: deploy2defun-www
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   140
deploy2defun-www: deploy-check $(WWW_FILES)
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   141
	( echo 'cd /srv/www/2048'; \
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   142
for f in $(WWW_FILES); do \
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   143
  echo "put $$f"; \
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   144
  echo "chmod 644 $$f"; \
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   145
done; \
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   146
echo "put 2048.html index.html"; \
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   147
echo 'quit'; \
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   148
) | sftp -b - $(DEFUN_USER)@defun.work
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   149
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   150
# First time you deploy to SourceForge (sf) you need manually login to:
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   151
#   $ sftp $(SF_USER),$(pkgname)@web.sourceforge.net
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   152
# as it may require interactive input for accepting server public key.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   153
# Next time any action fully automated.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   154
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   155
.PHONY: deploy2sf
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   156
deploy2sf: deploy2sf-src deploy2sf-www deploy2sf-release
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   157
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   158
.PHONY: deploy2sf-src
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   159
deploy2sf-src:
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   160
	hg push ssh://$(SF_USER)@hg.code.sf.net/p/$(sfpkgname)/hg || [ $$? = 1 ]
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   161
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   162
# Will be accessed via http://$(pkgname).sourceforge.net
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   163
.PHONY: deploy2sf-www
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   164
deploy2sf-www: deploy-check $(WWW_FILES)
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   165
	( echo 'cd htdocs'; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   166
for f in $(WWW_FILES); do \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   167
  echo "put $$f"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   168
  echo "chmod 644 $$f"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   169
done; \
175
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   170
echo "put 2048.html index.html"; \
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   171
echo 'quit'; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   172
) | sftp -b - $(SF_USER),$(sfpkgname)@web.sourceforge.net
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   173
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   174
.PHONY: deploy2sf-release
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   175
deploy2sf-release: deploy-check $(DIST_TARBALLS)
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   176
	( echo 'cd /home/frs/project/$(shell v=$(sfpkgname); echo $${v:0:1}/$${v:0:2})/$(sfpkgname)'; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   177
echo "put  README.rst"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   178
echo "chmod 644 README.rst"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   179
echo "mkdir v$(vmajor).$(vminor)"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   180
echo "cd v$(vmajor).$(vminor)"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   181
for f in $(DIST_TARBALLS); do \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   182
	echo "put $$f"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   183
	echo "chmod 644 $$f"; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   184
done; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   185
echo 'quit'; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   186
) | sftp -b - $(SF_USER),$(sfpkgname)@frs.sourceforge.net
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   187
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   188
.PHONY: deploy-check
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   189
deploy-check:
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   190
	\
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   191
case ${visclean} in \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   192
  no) echo "Local changes found. Build stop."; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   193
    exit 1;; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   194
esac
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   195
	\
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   196
case $(vatrelease) in \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   197
  no) echo "We are not at release. Build stop."; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   198
    exit 1;; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   199
esac
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   200
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   201
################################################################
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   202
# Dist targets.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   203
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   204
.PHONY: dist
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   205
dist: dist-bin
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   206
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   207
.PHONY: dist-bin
49
4b48e9e06000 Fix dist build target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 48
diff changeset
   208
dist-bin: $(DIST_TARBALLS)
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   209
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   210
%.tar.gz: %
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   211
	tar zcf $*.tar.gz $*
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   212
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   213
%.tar.bz2: %
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   214
	tar jcf $*.tar.bz2 $*
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   215
49
4b48e9e06000 Fix dist build target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 48
diff changeset
   216
%.zip: %
4b48e9e06000 Fix dist build target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 48
diff changeset
   217
	zip -r $*.zip $*
4b48e9e06000 Fix dist build target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 48
diff changeset
   218
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   219
$(DIST_DIR): $(DIST_FILES)
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   220
	rm -rf $@
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   221
	mkdir $@
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   222
	cp $(DIST_FILES) $@
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   223
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   224
################################################################
77
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   225
# Documentation targets.
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   226
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   227
.PHONY: docs
175
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   228
docs: html
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   229
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   230
.PHONY: html
9a83576eec4c Deploy to personal home page. Use game itself as index.html.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 84
diff changeset
   231
html: rst2html
77
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   232
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   233
.PHONY: rst2html
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   234
rst2html: $(RST_HTML_FILES)
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   235
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   236
$(RST_HTML_FILES): $(RST_COMMON_FILES)
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   237
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   238
$(RST_HTML_FILES): %.html: %.rst rst.css header.rst VERSION.rst $(BUILD_SCRIPTS)
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   239
	$(RST2HTML) $(RST2HTML_FLAGS) --stylesheet=rst.css $*.rst $@
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   240
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   241
VERSION.rst: VERSION $(BUILD_SCRIPTS)
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   242
	{ \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   243
	echo 'For ``$(pkgname)`` version: ``$(vmajor).$(vminor)``.'; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   244
	echo; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   245
	case ${visclean} in \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   246
		yes) echo 'Source files are at revision: ``$(vrev)``.';; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   247
		no) echo 'Some source files was modified from revision: ``$(vrev)``.';; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   248
	esac; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   249
	echo; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   250
	case ${vatrelease} in \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   251
		yes) echo 'Package is at release state.';; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   252
		no) echo 'Package is far from release state by $(vtagdist) changes.';; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   253
	esac; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   254
	echo; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   255
	echo 'Build date: ``'$$(date +%F)'``.'; \
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   256
	} >$@
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   257
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   258
################################################################
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   259
# Helpers targets.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   260
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   261
.PHONY: help
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   262
help:
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   263
	@\
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   264
echo; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   265
echo Current configuration:; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   266
echo; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   267
sed 's=^=  =' <VERSION
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   268
	@if [ -f Makefile.config ]; then \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   269
		echo; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   270
		echo User configuration:; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   271
		echo; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   272
		sed 's=^=  =' <Makefile.config; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   273
	fi
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   274
	@\
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   275
echo; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   276
echo Supported targets:; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   277
echo; \
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   278
sed -n -e '/^[[:alnum:]_-]*:/{s=^\(.*\):.*=  \1=;p;}' $(BUILD_SCRIPTS)
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   279
57
94e1b2d0bd31 Add JSDoc annotation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   280
.PHONY: jsdoc
94e1b2d0bd31 Add JSDoc annotation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   281
jsdoc:
94e1b2d0bd31 Add JSDoc annotation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   282
	jsdoc -a -p -d=$(JSDOC_DIR) $(JS_FILES)
94e1b2d0bd31 Add JSDoc annotation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   283
48
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   284
################################################################
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   285
# Clean targets.
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   286
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   287
.PHONY: distclean
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   288
distclean: clean
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   289
	rm -f VERSION
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   290
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   291
.PHONY: clean
32b976d3fd10 Release build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   292
clean:
77
c2bad6178c65 Add project docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 57
diff changeset
   293
	rm -rf $(JSDOC_DIR) $(RST_GEN_FILES) $(RST_HTML_FILES) $(DIST_DIR) $(DIST_TARBALLS)
57
94e1b2d0bd31 Add JSDoc annotation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   294