Makefile
author Oleksandr Gavenko <gavenkoa@gmail.com>
Tue, 08 Nov 2016 00:28:05 +0200
changeset 632 21c366ba2c6d
parent 624 934a2a6cbe27
child 633 f622dfd21f2c
permissions -rw-r--r--
Remove unused code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
85
0ff3715e6176 To build dictionary you need to install...
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 68
diff changeset
     1
# To build dictionary you need to install:
0ff3715e6176 To build dictionary you need to install...
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 68
diff changeset
     2
#
0ff3715e6176 To build dictionary you need to install...
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 68
diff changeset
     3
#    $ sudo apt-get install dictfmt
0ff3715e6176 To build dictionary you need to install...
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 68
diff changeset
     4
#
22
0616adf6e983 Describe available build target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 21
diff changeset
     5
# Available target:
0616adf6e983 Describe available build target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 21
diff changeset
     6
#
0616adf6e983 Describe available build target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 21
diff changeset
     7
#   all         build dictionaries
0616adf6e983 Describe available build target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 21
diff changeset
     8
#   install     install dictionaries, so they been available in stardict, may require root permission
0616adf6e983 Describe available build target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 21
diff changeset
     9
#   uninstall   remove dictionaries, they been unavailable in stardict, may require root permission
118
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    10
#
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    11
# You can override such variables in Makefile.config:
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    12
#
121
38e8a1063673 Add 'DESTDIR' - prefix to 'prefix' variable value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 120
diff changeset
    13
#   SF_USER     SourceForge user name.
38e8a1063673 Add 'DESTDIR' - prefix to 'prefix' variable value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 120
diff changeset
    14
#   prefix      Prefix to install path.
22
0616adf6e983 Describe available build target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 21
diff changeset
    15
260
5f6befed263c Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 249
diff changeset
    16
################################################################
5f6befed263c Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 249
diff changeset
    17
# Standard GNU Makefile settings.
5f6befed263c Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 249
diff changeset
    18
287
d01045b55e04 Avoid names inlining.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 276
diff changeset
    19
SHELL = /bin/bash
36
6fee90eb2d85 Add default Makefile settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
    20
export PATH := /bin:/usr/bin:${PATH}
6fee90eb2d85 Add default Makefile settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
    21
6fee90eb2d85 Add default Makefile settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
    22
# Disable built in pattern rules.
6fee90eb2d85 Add default Makefile settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
    23
MAKEFLAGS += -r
6fee90eb2d85 Add default Makefile settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
    24
# Disable built in variables.
6fee90eb2d85 Add default Makefile settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
    25
MAKEFLAGS += -R
6fee90eb2d85 Add default Makefile settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
    26
# Disable built in suffix rules.
6fee90eb2d85 Add default Makefile settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
    27
.SUFFIXES:
260
5f6befed263c Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 249
diff changeset
    28
# Delete target file if command fails.
5f6befed263c Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 249
diff changeset
    29
.DELETE_ON_ERROR:
36
6fee90eb2d85 Add default Makefile settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
    30
# Default target.
106
092b25d032af Set 'help' as default target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 105
diff changeset
    31
.DEFAULT_GOAL = help
36
6fee90eb2d85 Add default Makefile settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
    32
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
    33
################################################################
118
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    34
# Build script definitions.
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    35
150
28cd06b06bb8 Rename BUILD_SCRIPT ==> BUILD_SCRIPTS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 148
diff changeset
    36
BUILD_SCRIPTS := $(firstword $(MAKEFILE_LIST))
118
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    37
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    38
ifneq '' '$(wildcard Makefile.config)'
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    39
  include Makefile.config
150
28cd06b06bb8 Rename BUILD_SCRIPT ==> BUILD_SCRIPTS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 148
diff changeset
    40
  BUILD_SCRIPTS += Makefile.config
118
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    41
endif
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    42
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
    43
################################################################
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
    44
# Version extracting/generation.
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
    45
480
4413ccc9e216 Include VERSION file into source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 479
diff changeset
    46
VER_FILE := VERSION
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
    47
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
    48
# Prevent making distribution with wrong version.
588
63f430bda7f9 Release and deploy target should use fresh version info. Add alias to deploy sources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 587
diff changeset
    49
ifneq '' '$(filter deploy% release% dist%,$(MAKECMDGOALS))'
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
    50
  ifeq '' '$(MAKE_RESTARTS)'
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
    51
    $(shell rm -f $(VER_FILE))
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
    52
  endif
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
    53
endif
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
    54
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
    55
# Here are vmajor and vminor. Look README section "Versioning rules."
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
    56
-include $(VER_FILE)
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
    57
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
    58
$(VER_FILE): | $(dir $(VER_FILE))
122
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    59
	\
482
fefea56726d2 Warn if build done without version file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 481
diff changeset
    60
[ -d .hg/ ] || { echo We miss VERSION file!!; exit 0; }; \
122
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    61
vtagdist=$$(hg log -r . --template '{latesttagdistance}'); \
141
4b799e3f9a70 Allow release from commit that tag release.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 137
diff changeset
    62
vatrelease=$$([ $$vtagdist -le 1 ] && echo yes || echo no); \
122
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    63
vtag=$$(hg log -r . --template '{latesttag}'); \
311
47ae3d88a59d Use more conventional tag naming schema.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 308
diff changeset
    64
vmajor=$${vtag#v}; \
151
206fb46e793d Make code more genetic.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 150
diff changeset
    65
vmajor=$${vmajor%%.*}; \
122
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    66
vminor=$${vtag#*.}; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    67
vrev=$$(hg id -i); \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    68
visclean=$$(case $$vrev in *+) echo no;; *) echo yes;; esac); \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    69
vrev=$${vrev%+}; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    70
{ \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    71
echo "vrev=$$vrev"; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    72
echo "vtag=$$vtag"; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    73
echo "vtagdist=$$vtagdist"; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    74
echo "visclean=$$visclean"; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    75
echo "vatrelease=$$vatrelease"; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    76
echo "vmajor=$$vmajor"; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
    77
echo "vminor=$$vminor"; \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
    78
} >$@
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
    79
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
    80
################################################################
106
092b25d032af Set 'help' as default target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 105
diff changeset
    81
# Determine platform/environment.
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
    82
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
    83
host_os = unix
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
    84
ifneq '' '$(COMSPEC)'
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
    85
  ifneq '' '$(WINDIR)'
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
    86
    # Probably under Windows.
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
    87
    host_os = windows
107
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
    88
    ifneq '' '$(wildcard /etc/setup/*cygwin*)'
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
    89
      # Probably under Cygwin.
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
    90
      host_os = cygwin
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
    91
    endif
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
    92
  endif
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
    93
endif
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
    94
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
    95
################################################################
107
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
    96
# Build tools definition/switches.
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
    97
121
38e8a1063673 Add 'DESTDIR' - prefix to 'prefix' variable value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 120
diff changeset
    98
INSTALL = install
38e8a1063673 Add 'DESTDIR' - prefix to 'prefix' variable value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 120
diff changeset
    99
INSTALL_PROGRAM = $(INSTALL)
38e8a1063673 Add 'DESTDIR' - prefix to 'prefix' variable value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 120
diff changeset
   100
INSTALL_DATA = $(INSTALL) -m 644
38e8a1063673 Add 'DESTDIR' - prefix to 'prefix' variable value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 120
diff changeset
   101
107
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
   102
RST_WARNING_FLAGS := --halt warning
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
   103
RST_FLAGS := --strip-comments
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
   104
RST_FLAGS += $(RST_WARNING_FLAGS)
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   105
107
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
   106
RST2HTML := rst2html
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
   107
ifeq '$(host_os)' 'cygwin'
4cfb94e11b5d Add warning flags to 'rst2html'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 106
diff changeset
   108
  RST2HTML := rst2html.py
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   109
endif
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   110
RST2HTML_RENDER_FLAGS := --strip-comments --embed-stylesheet --no-xml-declaration --math-output=HTML --initial-header-level=2
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   111
RST2HTML_FLAGS := $(RST_FLAGS) $(RST2HTML_RENDER_FLAGS)
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   112
308
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   113
LATEX2PDF := pdflatex
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   114
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   115
################################################################
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   116
# Install paths.
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   117
41
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   118
ifeq '$(origin prefix)' 'undefined'
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   119
  ifeq '$(shell id -u)' '0'
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   120
    prefix = /usr/local
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   121
  else
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   122
    prefix = $(HOME)/usr
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   123
  endif
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   124
endif
388
d98d8f8cdef9 Eliminate "DESTDIR", "prefix" variable should be sufficient.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 387
diff changeset
   125
datarootdir := $(prefix)/share
389
10020d94a315 Install/uninstall "gadict.el".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 388
diff changeset
   126
datadir := $(datarootdir)/dictd
10020d94a315 Install/uninstall "gadict.el".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 388
diff changeset
   127
elispdir := $(datarootdir)/emacs/site-lisp
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   128
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   129
################################################################
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   130
# Project dirs/files.
21
d4b27e5b7a4b Added per user install target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 20
diff changeset
   131
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   132
pkgname = gadict
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   133
fullpkgname = $(pkgname)-$(vmajor).$(vminor)
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   134
401
791994f95561 Add dependency on py files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 396
diff changeset
   135
PY_FILES := $(wildcard py/gadict*.py)
791994f95561 Add dependency on py files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 396
diff changeset
   136
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   137
GADICT_FILES := $(wildcard *.gadict)
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   138
624
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   139
C5_FILES := $(patsubst %.gadict,dist/dictd/%.c5,$(GADICT_FILES))
410
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   140
ALL_C5_FILES := $(C5_FILES) dist/dictd/gadict_en-ru.c5 dist/dictd/gadict_en-uk.c5
624
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   141
PNG_FILES := $(patsubst %.gadict,dist/dictd/%.png,$(GADICT_FILES))
387
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   142
DICT_FILES := $(C5_FILES:.c5=.dict)
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   143
DICTDZ_FILES := $(C5_FILES:.c5=.dict.dz)
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   144
INDEX_FILES := $(C5_FILES:.c5=.index)
1
b23e948de24a Make article for all verbs form.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   145
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   146
SRS_TAB_FILES := $(patsubst %.gadict,dist/srs/%.tab.txt,$(GADICT_FILES))
555
4a3188fc8951 Generating Packaged Anki Desk files for Anki space repetition software.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 547
diff changeset
   147
SRS_ANKI_FILES := $(patsubst %.gadict,dist/srs/%.apkg,$(GADICT_FILES))
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   148
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   149
RST_TMPL_FILE = dist/misc/rst.tmpl
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   150
RST_CSS_FILE = www/tmpl/rst.css
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   151
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   152
RST_FILES := $(wildcard www/*.rst)
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   153
RST_HTML_FILES := $(patsubst www/%.rst,dist/www/%.html,$(RST_FILES))
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   154
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   155
INDEX_HTML_FILE := dist/www/index.html
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   156
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   157
STAT_RST_FILE := dist/misc/STAT.rst
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   158
STAT_HTML_FILE := dist/www/STAT.html
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   159
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   160
HTML_FILES := $(RST_HTML_FILES) $(INDEX_HTML_FILE) $(STAT_HTML_FILE)
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   161
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   162
LOGO_NAME := logo
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   163
LOGO_SVG := $(LOGO_NAME).svg
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   164
LOGO_DIM := 32x32 48x48 64x64
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   165
LOGO_PNG_FILES := $(patsubst %,$(LOGO_NAME)-%.png,$(LOGO_DIM))
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   166
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   167
DISTREL_TARBALLS = dist/$(fullpkgname).tar.gz dist/$(fullpkgname).zip
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   168
DISTSRC_TARBALLS = dist/$(fullpkgname)_src.tar.gz # dist/$(fullpkgname)_src.zip
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   169
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   170
################################################################
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   171
# Deploy/release targets.
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   172
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   173
.PHONY: deploy
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   174
deploy: deploy2defun deploy2sf
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   175
588
63f430bda7f9 Release and deploy target should use fresh version info. Add alias to deploy sources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 587
diff changeset
   176
.PHONY: deploy-src deploy-hg
63f430bda7f9 Release and deploy target should use fresh version info. Add alias to deploy sources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 587
diff changeset
   177
deploy-src deploy-hg: deploy2defun-hg deploy2sf-hg
558
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   178
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   179
.PHONY: release
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   180
release: release2defun release2sf
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   181
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   182
.PHONY: release2defun
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   183
release2defun: validate-release deploy2defun
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   184
505
4ce3ced9057e Fix dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 503
diff changeset
   185
.PHONY: release2sf
4ce3ced9057e Fix dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 503
diff changeset
   186
release2sf: validate-release deploy2sf
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   187
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   188
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   189
DEFUN_USER ?= user
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   190
DEFUN_HG_SRV ?= hg.defun.work
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   191
DEFUN_HG_DIR ?= /srv/hg/gadict
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   192
DEFUN_WWW_SRV ?= defun.work
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   193
DEFUN_WWW_DIR ?= /srv/www/gadict
493
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   194
DEFUN_REL_DIR ?= /srv/www/gadict/download
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   195
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   196
.PHONY: deploy2defun
558
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   197
deploy2defun: deploy2defun-www deploy2defun-dist deploy2defun-hg
118
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
   198
558
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   199
.PHONY: deploy2defun-hg
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   200
deploy2defun-hg:
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   201
	hg push ssh://$(DEFUN_USER)@$(DEFUN_HG_SRV)/$(DEFUN_HG_DIR) || [ $$? = 1 ]
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   202
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   203
.PHONY: deploy2defun-www
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   204
deploy2defun-www: $(HTML_FILES)
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   205
	( \
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   206
echo 'cd $(DEFUN_WWW_DIR)'; \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   207
for f in $(HTML_FILES); do \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   208
  n=$${f##*/}; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   209
  echo "put $$f $$n"; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   210
  echo "chmod 644 $$n"; \
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   211
done; \
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   212
echo 'quit'; \
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   213
) | sftp -b - $(DEFUN_USER)@$(DEFUN_WWW_SRV)
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   214
494
f931ef10c1b0 Rename target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 493
diff changeset
   215
.PHONY: deploy2defun-dist
f931ef10c1b0 Rename target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 493
diff changeset
   216
deploy2defun-dist: $(DISTREL_TARBALLS) $(DISTSRC_TARBALLS)
493
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   217
	( \
496
9ddd305404e6 Fix: sftp: Couldn't create directory: Failure
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 494
diff changeset
   218
echo "-mkdir $(DEFUN_REL_DIR)"; \
9ddd305404e6 Fix: sftp: Couldn't create directory: Failure
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 494
diff changeset
   219
echo "-mkdir $(DEFUN_REL_DIR)/v$(vmajor).$(vminor)"; \
493
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   220
echo "cd $(DEFUN_REL_DIR)/v$(vmajor).$(vminor)"; \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   221
for f in $(DISTREL_TARBALLS) $(DISTSRC_TARBALLS); do \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   222
  n=$${f##*/}; \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   223
  echo "put $$f $$n"; \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   224
  echo "chmod 644 $$n"; \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   225
done; \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   226
) | sftp -b - $(DEFUN_USER)@$(DEFUN_WWW_SRV)
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   227
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   228
SF_USER ?= gavenkoa
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   229
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   230
# First time you deploy to SourceForge (sf) you need manually login to:
120
cb5ab06a72a7 Inline URL to make code more verbose.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 119
diff changeset
   231
#   $ sftp $(SF_USER),$(pkgname)@web.sourceforge.net
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   232
# as it may require interactive input for accepting server public key.
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   233
# Next time any action fully automated.
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   234
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   235
.PHONY: deploy2sf
558
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   236
deploy2sf: deploy2sf-www deploy2sf-dist deploy2sf-voa deploy2sf-hg
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   237
558
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   238
.PHONY: deploy2sf-hg
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   239
deploy2sf-hg:
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   240
	hg push ssh://$(SF_USER)@hg.code.sf.net/p/$(pkgname)/code || [ $$? = 1 ]
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   241
119
20f1d1080886 Rename 'name' ==> 'pkgname'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 118
diff changeset
   242
# Will be accessed via http://$(pkgname).sourceforge.net
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   243
.PHONY: deploy2sf-www
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   244
deploy2sf-www: $(HTML_FILES)
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   245
	( echo 'cd htdocs'; \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   246
for f in $(HTML_FILES); do \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   247
  n=$${f##*/}; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   248
  echo "put $$f $$n"; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   249
  echo "chmod 644 $$n"; \
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   250
done; \
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   251
echo 'quit'; \
120
cb5ab06a72a7 Inline URL to make code more verbose.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 119
diff changeset
   252
) | sftp -b - $(SF_USER),$(pkgname)@web.sourceforge.net
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   253
308
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   254
.PHONY: deploy2sf-voa
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   255
deploy2sf-voa: voa
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   256
	( echo 'cd htdocs'; \
614
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   257
  echo "put dist/pdf/voa-special.pdf"; \
308
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   258
  echo "chmod 644 voa-special.pdf"; \
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   259
echo 'quit'; \
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   260
) | sftp -b - $(SF_USER),$(pkgname)@web.sourceforge.net
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   261
501
3ebfd12fc276 Enable release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 499
diff changeset
   262
.PHONY: deploy2sf-dist
3ebfd12fc276 Enable release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 499
diff changeset
   263
deploy2sf-dist: $(DISTREL_TARBALLS) $(DISTSRC_TARBALLS)
287
d01045b55e04 Avoid names inlining.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 276
diff changeset
   264
	( echo 'cd /home/frs/project/$(shell v=$(pkgname); echo $${v:0:1}/$${v:0:2})/$(pkgname)'; \
503
6a32a94eeab2 Fix dist release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 501
diff changeset
   265
echo "put  www/README.rst"; \
115
1c6ffaecdf50 Fix sftp command usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 112
diff changeset
   266
echo "chmod 644 README.rst"; \
496
9ddd305404e6 Fix: sftp: Couldn't create directory: Failure
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 494
diff changeset
   267
echo "-mkdir v$(vmajor).$(vminor)"; \
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   268
echo "cd v$(vmajor).$(vminor)"; \
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   269
for f in $(DISTREL_TARBALLS) $(DISTSRC_TARBALLS); do \
503
6a32a94eeab2 Fix dist release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 501
diff changeset
   270
  n=$${f##*/}; \
6a32a94eeab2 Fix dist release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 501
diff changeset
   271
  echo "put $$f $$n"; \
6a32a94eeab2 Fix dist release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 501
diff changeset
   272
  echo "chmod 644 $$n"; \
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   273
done; \
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   274
echo 'quit'; \
120
cb5ab06a72a7 Inline URL to make code more verbose.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 119
diff changeset
   275
) | sftp -b - $(SF_USER),$(pkgname)@frs.sourceforge.net
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   276
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   277
.PHONY: validate-release
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   278
validate-release:
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   279
	\
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   280
case ${visclean} in \
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   281
  no) echo "Local changes found. Build stop."; \
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   282
    exit 1;; \
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   283
esac
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   284
	\
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   285
case $(vatrelease) in \
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   286
  no) echo "We are not at release. Build stop."; \
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   287
    exit 1;; \
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   288
esac
124
7d9f38580ed9 Add 'deploy-check' target to check source sanity before release.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 123
diff changeset
   289
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   290
################################################################
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   291
# Dist targets.
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   292
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   293
.PHONY: dist
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   294
dist: dist-rel dist-src
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   295
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   296
.PHONY: dist-rel
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   297
dist-rel: $(DISTREL_TARBALLS)
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   298
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   299
DISTREL_DICTDZ_FILES := $(patsubst %,dist/$(fullpkgname)/dictd/%,$(notdir $(DICTDZ_FILES)))
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   300
DISTREL_INDEX_FILES := $(patsubst %,dist/$(fullpkgname)/dictd/%,$(notdir $(INDEX_FILES)))
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   301
DISTREL_RST_FILES := $(patsubst %,dist/$(fullpkgname)/doc/txt/%,$(notdir $(RST_FILES)))
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   302
DISTREL_HTML_FILES := $(patsubst %,dist/$(fullpkgname)/doc/html/%,$(notdir $(RST_HTML_FILES)))
545
15e5f62b2f6f Include import files in tab format for SRS to release bundle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 536
diff changeset
   303
DISTREL_SRS_TAB_FILES := $(patsubst %,dist/$(fullpkgname)/srs/%,$(notdir $(SRS_TAB_FILES)))
557
d7a42a700255 Package Anki files to binary release.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 555
diff changeset
   304
DISTREL_SRS_ANKI_FILES := $(patsubst %,dist/$(fullpkgname)/srs/%,$(notdir $(SRS_ANKI_FILES)))
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   305
557
d7a42a700255 Package Anki files to binary release.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 555
diff changeset
   306
dist/$(fullpkgname).tar.gz: $(DISTREL_DICTDZ_FILES) $(DISTREL_INDEX_FILES) $(DISTREL_SRS_TAB_FILES) $(DISTREL_SRS_ANKI_FILES) $(DISTREL_RST_FILES) $(DISTREL_HTML_FILES) $(BUILD_SCRIPTS)
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   307
	rm -rf $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   308
	tar zcf $@ -C dist/ $(fullpkgname)
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   309
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   310
dist/$(fullpkgname).zip: $(DISTREL_DICTDZ_FILES) $(DISTREL_INDEX_FILES) $(DISTREL_RST_FILES) $(DISTREL_HTML_FILES) $(BUILD_SCRIPTS)
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   311
	rm -rf $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   312
	cd $(dir $@) && zip -r $(notdir $@) $(fullpkgname)
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   313
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   314
$(DISTREL_DICTDZ_FILES) $(DISTREL_INDEX_FILES): dist/$(fullpkgname)/dictd/%: dist/dictd/% | dist/$(fullpkgname)/dictd/
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   315
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   316
545
15e5f62b2f6f Include import files in tab format for SRS to release bundle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 536
diff changeset
   317
$(DISTREL_SRS_TAB_FILES): dist/$(fullpkgname)/srs/%: dist/srs/% | dist/$(fullpkgname)/srs/
15e5f62b2f6f Include import files in tab format for SRS to release bundle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 536
diff changeset
   318
	cp $< $@
15e5f62b2f6f Include import files in tab format for SRS to release bundle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 536
diff changeset
   319
557
d7a42a700255 Package Anki files to binary release.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 555
diff changeset
   320
$(DISTREL_SRS_ANKI_FILES): dist/$(fullpkgname)/srs/%: dist/srs/% | dist/$(fullpkgname)/srs/
d7a42a700255 Package Anki files to binary release.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 555
diff changeset
   321
	cp $< $@
d7a42a700255 Package Anki files to binary release.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 555
diff changeset
   322
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   323
$(DISTREL_RST_FILES): dist/$(fullpkgname)/doc/txt/%: www/% | dist/$(fullpkgname)/doc/txt/
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   324
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   325
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   326
$(DISTREL_HTML_FILES): dist/$(fullpkgname)/doc/html/%: dist/www/% | dist/$(fullpkgname)/doc/html/
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   327
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   328
545
15e5f62b2f6f Include import files in tab format for SRS to release bundle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 536
diff changeset
   329
$(patsubst %,dist/$(fullpkgname)/%, dictd/ srs/ doc/txt/ doc/html/):
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   330
	mkdir -p $@
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   331
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   332
.PHONY: dist-src
105
35cc545ec03d 'clean'-like targets delete artefacts after 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 103
diff changeset
   333
dist-src: $(DISTSRC_TARBALLS)
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   334
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   335
DISTSRC_GADICT_FILES := $(patsubst %,dist/$(fullpkgname)_src/%,$(GADICT_FILES))
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   336
DISTSRC_PY_FILES := $(patsubst %,dist/$(fullpkgname)_src/py/%,$(notdir $(PY_FILES)))
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   337
DISTSRC_RST_FILES := $(patsubst %,dist/$(fullpkgname)_src/www/%,$(notdir $(RST_FILES)))
481
f2b8c358716d Include HTML template to allow full build from distribution tarball.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 480
diff changeset
   338
DISTSRC_TMPL_FILES := $(patsubst %,dist/$(fullpkgname)_src/www/tmpl/%, rst.css rst.tmpl.in)
480
4413ccc9e216 Include VERSION file into source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 479
diff changeset
   339
DISTSRC_BUILD_SCRIPTS := $(patsubst %,dist/$(fullpkgname)_src/%, Makefile VERSION)
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   340
481
f2b8c358716d Include HTML template to allow full build from distribution tarball.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 480
diff changeset
   341
dist/$(fullpkgname)_src.tar.gz: $(DISTSRC_GADICT_FILES) $(DISTSRC_PY_FILES) $(DISTSRC_RST_FILES) $(DISTSRC_TMPL_FILES) $(DISTSRC_BUILD_SCRIPTS) $(BUILD_SCRIPTS)
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   342
	rm -rf $@
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   343
	tar zcf $@ -C dist/ $(fullpkgname)_src
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   344
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   345
$(DISTSRC_GADICT_FILES): dist/$(fullpkgname)_src/%: % | dist/$(fullpkgname)_src/
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   346
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   347
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   348
$(DISTSRC_PY_FILES): dist/$(fullpkgname)_src/py/%: py/% | dist/$(fullpkgname)_src/py/
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   349
	cp $< $@
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   350
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   351
$(DISTSRC_RST_FILES): dist/$(fullpkgname)_src/www/%: www/% | dist/$(fullpkgname)_src/www/
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   352
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   353
481
f2b8c358716d Include HTML template to allow full build from distribution tarball.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 480
diff changeset
   354
$(DISTSRC_TMPL_FILES): dist/$(fullpkgname)_src/www/tmpl/%: www/tmpl/% | dist/$(fullpkgname)_src/www/tmpl/
f2b8c358716d Include HTML template to allow full build from distribution tarball.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 480
diff changeset
   355
	cp $< $@
f2b8c358716d Include HTML template to allow full build from distribution tarball.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 480
diff changeset
   356
480
4413ccc9e216 Include VERSION file into source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 479
diff changeset
   357
$(DISTSRC_BUILD_SCRIPTS): dist/$(fullpkgname)_src/%: % | dist/$(fullpkgname)_src/
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   358
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   359
481
f2b8c358716d Include HTML template to allow full build from distribution tarball.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 480
diff changeset
   360
dist/$(fullpkgname)_src/ $(patsubst %,dist/$(fullpkgname)_src/%, py/ www/ www/tmpl/):
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   361
	mkdir -p $@
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   362
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   363
################################################################
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   364
# Build targets.
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   365
23
946ae4b96419 Phony targets marked.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   366
.PHONY: all
245
5b9fac360762 Rename target to avoid disambiguate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 241
diff changeset
   367
all: dict
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   368
431
4ec7d0ea1602 Fix: ".name" and ".url" intermediate files for dictd automatically removed by GNU make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 429
diff changeset
   369
.PHONY: dict dictd c5
4ec7d0ea1602 Fix: ".name" and ".url" intermediate files for dictd automatically removed by GNU make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 429
diff changeset
   370
dictd c5: dict
245
5b9fac360762 Rename target to avoid disambiguate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 241
diff changeset
   371
dict: $(DICTDZ_FILES) $(INDEX_FILES)
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   372
592
f45410f1f80e Move dictfmt options to variable.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 589
diff changeset
   373
DICTFMT := dictfmt
41
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   374
#  --case-sensitive
593
32de94c1b039 Disable word wrapping for dictd dictionary.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 592
diff changeset
   375
DICTFMT_OPT := --headword-separator '; ' --break-headwords --without-headword --utf8 --allchars --columns 0
592
f45410f1f80e Move dictfmt options to variable.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 589
diff changeset
   376
404
cdfa6dfa9072 Integrate dictionary metainfo line name and home page url into dictd build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 401
diff changeset
   377
dist/dictd/%.dict dist/dictd/%.index: dist/dictd/%.c5 dist/dictd/%.c5.name dist/dictd/%.c5.url $(MAKEFILE_LIST)
592
f45410f1f80e Move dictfmt options to variable.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 589
diff changeset
   378
	(cd dist/dictd; $(DICTFMT) $(DICTFMT_OPT)  -c5  -s "`cat $*.c5.name`" -u "`cat $*.c5.url`"  $*)  < $<
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   379
387
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   380
dist/dictd/%.dict.dz: dist/dictd/%.dict
41
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   381
	dictzip -c $< >$@
1
b23e948de24a Make article for all verbs form.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   382
624
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   383
dist/dictd/%.png: %.xpm | dist/dictd/
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   384
	convert $< $@
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   385
431
4ec7d0ea1602 Fix: ".name" and ".url" intermediate files for dictd automatically removed by GNU make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 429
diff changeset
   386
GADICT_SUFFIXES := en-ru+uk en-ru en-uk voa
4ec7d0ea1602 Fix: ".name" and ".url" intermediate files for dictd automatically removed by GNU make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 429
diff changeset
   387
.SECONDARY: $(patsubst %,dist/dictd/gadict_%.c5.name,$(GADICT_SUFFIXES))
4ec7d0ea1602 Fix: ".name" and ".url" intermediate files for dictd automatically removed by GNU make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 429
diff changeset
   388
.SECONDARY: $(patsubst %,dist/dictd/gadict_%.c5.url,$(GADICT_SUFFIXES))
404
cdfa6dfa9072 Integrate dictionary metainfo line name and home page url into dictd build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 401
diff changeset
   389
cdfa6dfa9072 Integrate dictionary metainfo line name and home page url into dictd build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 401
diff changeset
   390
dist/dictd/%.c5.name dist/dictd/%.c5.url: dist/dictd/%.c5
cdfa6dfa9072 Integrate dictionary metainfo line name and home page url into dictd build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 401
diff changeset
   391
	:
cdfa6dfa9072 Integrate dictionary metainfo line name and home page url into dictd build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 401
diff changeset
   392
396
4f16fb80b2a7 Suppress __pycache__ dir.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 393
diff changeset
   393
# -B  suppress __pycache__ dir
410
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   394
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   395
dist/dictd/gadict_en-ru.c5: gadict_en-ru+uk.gadict py/gadict.py py/gadict_c5.py | dist/dictd/
410
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   396
	python3 -B py/gadict_c5.py  $< $@ ru
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   397
	echo "gadict En-Ru"> dist/dictd/gadict_en-ru.c5.name
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   398
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   399
dist/dictd/gadict_en-uk.c5: gadict_en-ru+uk.gadict py/gadict.py py/gadict_c5.py | dist/dictd/
410
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   400
	python3 -B py/gadict_c5.py  $< $@ uk
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   401
	echo "gadict En-Uk"> dist/dictd/gadict_en-uk.c5.name
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   402
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   403
dist/dictd/gadict_voa.c5: gadict_voa.gadict py/gadict.py py/gadict_c5.py | dist/dictd/
410
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   404
	python3 -B py/gadict_c5.py  $< $@ en
387
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   405
624
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   406
dist/dictd/%.c5: %.gadict py/gadict.py py/gadict_c5.py | dist/dictd/
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   407
	python3 -B py/gadict_c5.py  $< $@
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   408
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   409
dist/dictd/:
387
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   410
	mkdir -p $@
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   411
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   412
.PHONY: srs
555
4a3188fc8951 Generating Packaged Anki Desk files for Anki space repetition software.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 547
diff changeset
   413
srs: $(SRS_ANKI_FILES) $(SRS_TAB_FILES)
4a3188fc8951 Generating Packaged Anki Desk files for Anki space repetition software.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 547
diff changeset
   414
564
93d0bdb815a1 Separate target to build anki files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 558
diff changeset
   415
.PHONY: anki
93d0bdb815a1 Separate target to build anki files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 558
diff changeset
   416
anki: $(SRS_ANKI_FILES)
93d0bdb815a1 Separate target to build anki files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 558
diff changeset
   417
608
01fcbb1d5cea Add a way to mark card for deletion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 593
diff changeset
   418
dist/srs/%.apkg: %.gadict %.del py/gadict.py py/gadict_srs_anki.py $(MAKEFILE_LIST) | dist/srs/
01fcbb1d5cea Add a way to mark card for deletion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 593
diff changeset
   419
	PYTHONPATH=/usr/share/anki: python -B py/gadict_srs_anki.py $< $@
01fcbb1d5cea Add a way to mark card for deletion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 593
diff changeset
   420
555
4a3188fc8951 Generating Packaged Anki Desk files for Anki space repetition software.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 547
diff changeset
   421
dist/srs/%.apkg: %.gadict py/gadict.py py/gadict_srs_anki.py $(MAKEFILE_LIST) | dist/srs/
4a3188fc8951 Generating Packaged Anki Desk files for Anki space repetition software.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 547
diff changeset
   422
	PYTHONPATH=/usr/share/anki: python -B py/gadict_srs_anki.py $< $@
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   423
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   424
dist/srs/gadict_en-ru+uk.tab.txt: gadict_en-ru+uk.gadict py/gadict.py py/gadict_srs_tab.py $(MAKEFILE_LIST) | dist/srs/
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   425
	python3 -B py/gadict_srs_tab.py  $< $@ ru,uk
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   426
587
caf484e75e19 Generalise rule for building .tab.txt files. This helps build off project files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 564
diff changeset
   427
dist/srs/%.tab.txt: %.gadict py/gadict.py py/gadict_srs_tab.py $(MAKEFILE_LIST) | dist/srs/
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   428
	python3 -B py/gadict_srs_tab.py  $< $@
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   429
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   430
dist/srs/:
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   431
	mkdir -p $@
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   432
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   433
################################################################
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   434
# Install/uninstall targets.
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   435
23
946ae4b96419 Phony targets marked.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   436
.PHONY: install
624
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   437
install: $(DICTDZ_FILES) $(INDEX_FILES) $(PNG_FILES)
389
10020d94a315 Install/uninstall "gadict.el".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 388
diff changeset
   438
	mkdir -p $(datadir) $(elispdir)
624
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   439
	for f in $(DICTDZ_FILES) $(INDEX_FILES) $(PNG_FILES); do \
121
38e8a1063673 Add 'DESTDIR' - prefix to 'prefix' variable value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 120
diff changeset
   440
		$(INSTALL_DATA) $$f $(datadir); \
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   441
	done
389
10020d94a315 Install/uninstall "gadict.el".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 388
diff changeset
   442
	$(INSTALL_DATA) contrib/gadict.el $(elispdir)
10020d94a315 Install/uninstall "gadict.el".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 388
diff changeset
   443
	emacs -batch -f batch-byte-compile $(elispdir)/gadict.el
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   444
384
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   445
OLD_DICT_FILES := gadict-abbr.dict-c5 gadict-adjective-en-ru.dict-c5 \
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   446
gadict-adverb-en-ru.dict-c5 gadict-conjunction-en-ru.dict-c5            \
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   447
gadict-en-ru.dict-c5 gadict-irregular-verbs-en-ru.dict-c5               \
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   448
gadict-numeral-en-ru.dict-c5 gadict-phrasal-verbs-en-ru.dict-c5         \
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   449
gadict-preposition-en-ru.dict-c5 gadict-pronoun-en-ru.dict-c5           \
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   450
gadict-regular-verbs-en-ru.dict-c5
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   451
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   452
OLD_DICTDZ_FILES := $(OLD_DICT_FILES:.dict-c5=.dict.dz)
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   453
OLD_INDEX_FILES := $(OLD_DICT_FILES:.dict-c5=.index)
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   454
23
946ae4b96419 Phony targets marked.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   455
.PHONY: uninstall
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   456
uninstall:
41
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   457
	for f in $(DICTDZ_FILES) $(INDEX_FILES); do \
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   458
		rm -f $(datadir)/$$f; \
21
d4b27e5b7a4b Added per user install target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 20
diff changeset
   459
	done
384
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   460
	for f in $(OLD_DICTDZ_FILES) $(OLD_INDEX_FILES); do \
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   461
		rm -f $(datadir)/$$f; \
3af39c0b5229 A way to uninstall old C5 dictionaries.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 339
diff changeset
   462
	done
389
10020d94a315 Install/uninstall "gadict.el".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 388
diff changeset
   463
	rm -f $(elispdir)/gadict.el $(elispdir)/gadict.elc
13
d0e948499faf Added targets [un]install-user to proper install dict for current user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 9
diff changeset
   464
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   465
################################################################
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   466
# Documentation targets.
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   467
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   468
.PHONY: docs
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   469
docs: html
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   470
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   471
.PHONY: html
441
1a49797cea41 Build STAT.html file also on "html" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 439
diff changeset
   472
html: $(HTML_FILES)
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   473
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   474
$(INDEX_HTML_FILE): dist/www/README.html
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   475
	cp $< $@
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   476
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   477
$(RST_HTML_FILES): dist/www/%.html: www/%.rst $(RST_CSS_FILE) $(RST_TMPL_FILE) $(BUILD_SCRIPTS) | dist/www/
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   478
	$(RST2HTML) $(RST2HTML_FLAGS) --stylesheet=$(RST_CSS_FILE) --template=$(RST_TMPL_FILE)  www/$*.rst  $@
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   479
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   480
dist/www/:
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   481
	mkdir -p $@
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   482
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   483
$(RST_TMPL_FILE): www/tmpl/rst.tmpl.in $(BUILD_SCRIPTS) | $(dir $(RST_TMPL_FILE))
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   484
	\
482
fefea56726d2 Warn if build done without version file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 481
diff changeset
   485
[[ "${visclean}" = no ]] && warn1='<b>Warning</b>: Build done with local changes!' || :; \
fefea56726d2 Warn if build done without version file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 481
diff changeset
   486
[[ -z "${visclean}" ]] && warn1='<b>Warning</b>: Build done without <b>VERSION</b> file!' || :; \
fefea56726d2 Warn if build done without version file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 481
diff changeset
   487
[[ "${vatrelease}" = no ]] && warn2='<b>Warning</b>: Build is far from latest <tt>$(vtag)</tt> release state by $(vtagdist) changes.' || :; \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   488
sed -e "s|{date}|$$(date +%F)|" -e "s|{rev}|$$(hg id -i)|" -e "s|{warn1}|$$warn1|" -e "s|{warn2}|$$warn2|" <$< >$@
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   489
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   490
################################################################
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   491
# Article statistics.
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   492
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   493
.PHONY: stat
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   494
stat: $(STAT_HTML_FILE)
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   495
547
f571a9e4e70c Fix: directory without trailing "/" is not created.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 545
diff changeset
   496
$(STAT_HTML_FILE): $(STAT_RST_FILE) $(RST_CSS_FILE) $(RST_TMPL_FILE) | $(dir $(STAT_HTML_FILE))
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   497
	$(RST2HTML) $(RST2HTML_FLAGS) --stylesheet=$(RST_CSS_FILE) --template=$(RST_TMPL_FILE)  $<  $@
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   498
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   499
$(STAT_RST_FILE): $(GADICT_FILES) $(BUILD_SCRIPTS) | $(dir $(STAT_RST_FILE))
109
5bb58b8d87a7 Add version info into documentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 108
diff changeset
   500
	{ \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   501
echo '==========================='; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   502
echo ' gadict project statistics'; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   503
echo '==========================='; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   504
echo '.. contents::'; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   505
echo '   :local:'; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   506
echo; \
429
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   507
echo "Entries count"; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   508
echo "============="; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   509
echo; \
428
8598efaef822 Align STAT table columns to the right.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 427
diff changeset
   510
echo '.. class:: right'; \
8598efaef822 Align STAT table columns to the right.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 427
diff changeset
   511
echo; \
427
cc2a83d4d2f8 Make STAT table a little smaller.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 424
diff changeset
   512
echo '=================================== ======='; \
cc2a83d4d2f8 Make STAT table a little smaller.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 424
diff changeset
   513
echo '        Dictionary                  Entries'; \
cc2a83d4d2f8 Make STAT table a little smaller.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 424
diff changeset
   514
echo '=================================== ======='; \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   515
total=0; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   516
for dic in $(GADICT_FILES); do \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   517
  cnt=`grep '^__' $$dic | wc -l`; \
427
cc2a83d4d2f8 Make STAT table a little smaller.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 424
diff changeset
   518
  printf '%35s %7s\n' $${dic%.dict-c5} $$cnt; \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   519
  total=$$(($$total + $$cnt)); \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   520
done; \
427
cc2a83d4d2f8 Make STAT table a little smaller.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 424
diff changeset
   521
printf '%35s %7s\n' '**Total**' $$total; \
cc2a83d4d2f8 Make STAT table a little smaller.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 424
diff changeset
   522
echo '=================================== ======='; \
429
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   523
echo; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   524
echo "Translations count"; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   525
echo "=================="; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   526
echo; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   527
echo '.. class:: right'; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   528
echo; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   529
echo '==================== ============'; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   530
echo '   gadict_en-ru+uk   Translations'; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   531
echo '==================== ============'; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   532
ru_tr=`grep '^ru: ' gadict_en-ru+uk.gadict | wc -l`; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   533
uk_tr=`grep '^uk: ' gadict_en-ru+uk.gadict | wc -l`; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   534
printf '%20s Ru\n' $$ru_tr; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   535
printf '%20s Uk\n' $$uk_tr; \
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   536
echo '==================== ============'; \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   537
} >$@
276
66db1bbebe45 Generalise RST build code. Remove index.rst, use README.rst instead.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 275
diff changeset
   538
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   539
dist/misc/:
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   540
	mkdir -p $@
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   541
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   542
################################################################
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   543
# Misc targets.
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   544
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   545
.PHONY: logo
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   546
logo: logo-png
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   547
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   548
.PHONY: logo-png
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   549
logo-png: $(LOGO_PNG_FILES)
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   550
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   551
# Require:
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   552
#   $ sudo apt-get install imagemagick librsvg2-bin
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   553
$(LOGO_PNG_FILES): $(LOGO_NAME)-%.png: $(LOGO_SVG)
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   554
	convert +antialias -background transparent $< -resize $* $@
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   555
308
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   556
.PHONY: voa
614
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   557
voa: dist/pdf/voa-special.pdf
308
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   558
614
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   559
dist/pdf/voa-special.pdf: contrib/voa-special.tex | dist/pdf/
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   560
	$(LATEX2PDF) -output-directory dist/pdf/ $<
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   561
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   562
dist/pdf/:
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   563
	mkdir -p $@
308
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   564
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   565
################################################################
108
1f1363141da7 Dump version info with 'version' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 107
diff changeset
   566
# Helpers targets.
1f1363141da7 Dump version info with 'version' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 107
diff changeset
   567
1f1363141da7 Dump version info with 'version' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 107
diff changeset
   568
.PHONY: help
1f1363141da7 Dump version info with 'version' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 107
diff changeset
   569
help:
122
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   570
	@\
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   571
echo; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   572
echo Current configuration:; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   573
echo; \
480
4413ccc9e216 Include VERSION file into source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 479
diff changeset
   574
sed 's=^=  =' <$(VER_FILE)
122
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   575
	@if [ -f Makefile.config ]; then \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   576
		echo; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   577
		echo User configuration:; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   578
		echo; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   579
		sed 's=^=  =' <Makefile.config; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   580
	fi
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   581
	@\
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   582
echo; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   583
echo Supported targets:; \
123
49f373dba523 Fix output sanity.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 122
diff changeset
   584
echo; \
150
28cd06b06bb8 Rename BUILD_SCRIPT ==> BUILD_SCRIPTS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 148
diff changeset
   585
sed -n -e '/^[[:alnum:]_-]*:/{s=^\(.*\):.*=  \1=;p;}' $(BUILD_SCRIPTS)
94
1b2cf5b2b46c Add target that print statistics about word count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 85
diff changeset
   586
249
5ad075a475f2 TODO convention.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 245
diff changeset
   587
.PHONY: todo
5ad075a475f2 TODO convention.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 245
diff changeset
   588
todo:
5ad075a475f2 TODO convention.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 245
diff changeset
   589
	grep -nH 'TODO\|XXX' $(RST_FILES) $(C5_FILES)
5ad075a475f2 TODO convention.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 245
diff changeset
   590
94
1b2cf5b2b46c Add target that print statistics about word count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 85
diff changeset
   591
################################################################
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   592
# Clean targets.
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   593
23
946ae4b96419 Phony targets marked.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   594
.PHONY: distclean
946ae4b96419 Phony targets marked.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   595
distclean: clean
480
4413ccc9e216 Include VERSION file into source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 479
diff changeset
   596
	rm -rf $(VER_FILE)
13
d0e948499faf Added targets [un]install-user to proper install dict for current user.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 9
diff changeset
   597
23
946ae4b96419 Phony targets marked.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   598
.PHONY: clean
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   599
clean:
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   600
	rm -rf dist/
63
f1bd82604661 Add help target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 56
diff changeset
   601