Makefile
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sat, 29 Jul 2017 17:55:19 +0300
changeset 895 ff43ef635b4d
parent 875 ebba66b977b6
child 930 2989d9b90b14
permissions -rw-r--r--
Prepared changelog for release.
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
875
ebba66b977b6 Ported Anki decks build to Cygwin+Windows. Added corresponding docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 844
diff changeset
   115
ifeq '$(ANKI_PY_DIR)' ''
ebba66b977b6 Ported Anki decks build to Cygwin+Windows. Added corresponding docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 844
diff changeset
   116
  ANKI_PY_DIR := /usr/share/anki
ebba66b977b6 Ported Anki decks build to Cygwin+Windows. Added corresponding docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 844
diff changeset
   117
endif
ebba66b977b6 Ported Anki decks build to Cygwin+Windows. Added corresponding docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 844
diff changeset
   118
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   119
################################################################
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   120
# Install paths.
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   121
41
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   122
ifeq '$(origin prefix)' 'undefined'
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   123
  ifeq '$(shell id -u)' '0'
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   124
    prefix = /usr/local
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   125
  else
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   126
    prefix = $(HOME)/usr
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   127
  endif
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   128
endif
388
d98d8f8cdef9 Eliminate "DESTDIR", "prefix" variable should be sufficient.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 387
diff changeset
   129
datarootdir := $(prefix)/share
389
10020d94a315 Install/uninstall "gadict.el".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 388
diff changeset
   130
datadir := $(datarootdir)/dictd
10020d94a315 Install/uninstall "gadict.el".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 388
diff changeset
   131
elispdir := $(datarootdir)/emacs/site-lisp
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   132
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   133
################################################################
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   134
# Project dirs/files.
21
d4b27e5b7a4b Added per user install target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 20
diff changeset
   135
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   136
pkgname = gadict
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   137
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
   138
401
791994f95561 Add dependency on py files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 396
diff changeset
   139
PY_FILES := $(wildcard py/gadict*.py)
791994f95561 Add dependency on py files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 396
diff changeset
   140
830
9631386b2ec2 Preserve order of dictionary files in order to simplify comparing of reports
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 829
diff changeset
   141
GADICT_FILES := $(sort $(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
   142
624
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   143
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
   144
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
   145
PNG_FILES := $(patsubst %.gadict,dist/dictd/%.png,$(GADICT_FILES))
387
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   146
DICT_FILES := $(C5_FILES:.c5=.dict)
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   147
DICTDZ_FILES := $(C5_FILES:.c5=.dict.dz)
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   148
INDEX_FILES := $(C5_FILES:.c5=.index)
1
b23e948de24a Make article for all verbs form.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   149
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   150
SRS_TAB_FILES := $(patsubst %.gadict,dist/srs/%.tab.txt,$(GADICT_FILES))
666
ef697459f88e Store Anki files in separate directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 665
diff changeset
   151
SRS_ANKI_FILES := $(patsubst %.gadict,dist/anki/%.apkg,$(GADICT_FILES))
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   152
776
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   153
DICT_HTML_FILES := $(patsubst %.gadict,dist/html/%.html,$(GADICT_FILES))
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   154
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   155
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
   156
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
   157
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   158
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
   159
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
   160
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   161
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
   162
794
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   163
STAT_MISSING_FILE := dist/misc/MISSING.rst
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   164
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
   165
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
   166
774
7e8a7ec72bb4 Avoid 'HTML_FILES' generic name usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 773
diff changeset
   167
WWW_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
   168
684
6ba6249fb194 Create new project logo. Add favicon to project sites.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 683
diff changeset
   169
LOGO_FILE := www/logo.svg
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   170
LOGO_DIM := 32x32 48x48 64x64
684
6ba6249fb194 Create new project logo. Add favicon to project sites.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 683
diff changeset
   171
LOGO_PNG_FILES := $(patsubst %,dist/misc/logo-%.png,$(LOGO_DIM))
6ba6249fb194 Create new project logo. Add favicon to project sites.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 683
diff changeset
   172
FAVICON := dist/www/favicon.ico
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   173
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   174
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
   175
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
   176
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   177
################################################################
633
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   178
# Install/uninstall targets.
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   179
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   180
.PHONY: install
754
2c32c47e83a9 Split Emacs mode installation from dictionary files installation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 724
diff changeset
   181
install: install-dict install-emacs
2c32c47e83a9 Split Emacs mode installation from dictionary files installation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 724
diff changeset
   182
2c32c47e83a9 Split Emacs mode installation from dictionary files installation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 724
diff changeset
   183
.PHONY: install-dict
2c32c47e83a9 Split Emacs mode installation from dictionary files installation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 724
diff changeset
   184
install-dict: $(DICTDZ_FILES) $(INDEX_FILES) $(PNG_FILES)
2c32c47e83a9 Split Emacs mode installation from dictionary files installation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 724
diff changeset
   185
	mkdir -p $(datadir)
633
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   186
	for f in $(DICTDZ_FILES) $(INDEX_FILES) $(PNG_FILES); do \
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   187
		$(INSTALL_DATA) $$f $(datadir); \
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   188
	done
754
2c32c47e83a9 Split Emacs mode installation from dictionary files installation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 724
diff changeset
   189
2c32c47e83a9 Split Emacs mode installation from dictionary files installation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 724
diff changeset
   190
.PHONY: install-emacs
2c32c47e83a9 Split Emacs mode installation from dictionary files installation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 724
diff changeset
   191
install-emacs:
2c32c47e83a9 Split Emacs mode installation from dictionary files installation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 724
diff changeset
   192
	mkdir -p $(elispdir)
633
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   193
	$(INSTALL_DATA) contrib/gadict.el $(elispdir)
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   194
	emacs -batch -f batch-byte-compile $(elispdir)/gadict.el
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   195
770
71b9d7ea4885 Fix 'uninstall' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   196
OLD_DICT_FILES := gadict-abbr.dict-c5 gadict-adjective-en-ru.dict-c5    \
633
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   197
gadict-adverb-en-ru.dict-c5 gadict-conjunction-en-ru.dict-c5            \
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   198
gadict-en-ru.dict-c5 gadict-irregular-verbs-en-ru.dict-c5               \
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   199
gadict-numeral-en-ru.dict-c5 gadict-phrasal-verbs-en-ru.dict-c5         \
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   200
gadict-preposition-en-ru.dict-c5 gadict-pronoun-en-ru.dict-c5           \
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   201
gadict-regular-verbs-en-ru.dict-c5
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   202
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   203
OLD_DICTDZ_FILES := $(OLD_DICT_FILES:.dict-c5=.dict.dz)
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   204
OLD_INDEX_FILES := $(OLD_DICT_FILES:.dict-c5=.index)
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   205
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   206
.PHONY: uninstall
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   207
uninstall:
770
71b9d7ea4885 Fix 'uninstall' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   208
	for f in $(notdir $(DICTDZ_FILES) $(INDEX_FILES) $(PNG_FILES)); do \
633
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   209
		rm -f $(datadir)/$$f; \
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   210
	done
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   211
	for f in $(OLD_DICTDZ_FILES) $(OLD_INDEX_FILES); do \
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   212
		rm -f $(datadir)/$$f; \
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   213
	done
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   214
	rm -f $(elispdir)/gadict.el $(elispdir)/gadict.elc
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   215
f622dfd21f2c Move install targets to top.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 632
diff changeset
   216
################################################################
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   217
# Deploy/release targets.
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   218
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   219
.PHONY: deploy
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   220
deploy: deploy2defun deploy2sf
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   221
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
   222
.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
   223
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
   224
837
ed8a84d9566f No need to include VOA marked in VOA HTML.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 830
diff changeset
   225
.PHONY: deploy-html
ed8a84d9566f No need to include VOA marked in VOA HTML.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 830
diff changeset
   226
deploy-html: deploy2defun-html deploy2sf-html
ed8a84d9566f No need to include VOA marked in VOA HTML.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 830
diff changeset
   227
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   228
.PHONY: release
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   229
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
   230
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   231
.PHONY: release2defun
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   232
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
   233
505
4ce3ced9057e Fix dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 503
diff changeset
   234
.PHONY: release2sf
4ce3ced9057e Fix dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 503
diff changeset
   235
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
   236
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   237
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   238
DEFUN_USER ?= user
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   239
DEFUN_HG_SRV ?= hg.defun.work
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   240
DEFUN_HG_DIR ?= /srv/hg/gadict
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   241
DEFUN_WWW_SRV ?= defun.work
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   242
DEFUN_WWW_DIR ?= /srv/www/gadict
493
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   243
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
   244
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   245
.PHONY: deploy2defun
777
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   246
deploy2defun: deploy2defun-www deploy2defun-dist deploy2defun-hg deploy2defun-html
118
c9ce7b6ae3bc Make SourceForge user name as configurable parameter.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 115
diff changeset
   247
558
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   248
.PHONY: deploy2defun-hg
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   249
deploy2defun-hg:
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   250
	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
   251
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   252
.PHONY: deploy2defun-www
774
7e8a7ec72bb4 Avoid 'HTML_FILES' generic name usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 773
diff changeset
   253
deploy2defun-www: $(WWW_HTML_FILES) $(FAVICON)
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   254
	( \
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   255
echo 'cd $(DEFUN_WWW_DIR)'; \
774
7e8a7ec72bb4 Avoid 'HTML_FILES' generic name usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 773
diff changeset
   256
for f in $(WWW_HTML_FILES) $(FAVICON); do \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   257
  n=$${f##*/}; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   258
  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
   259
  echo "chmod 644 $$n"; \
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   260
done; \
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   261
echo 'quit'; \
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   262
) | 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
   263
494
f931ef10c1b0 Rename target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 493
diff changeset
   264
.PHONY: deploy2defun-dist
f931ef10c1b0 Rename target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 493
diff changeset
   265
deploy2defun-dist: $(DISTREL_TARBALLS) $(DISTSRC_TARBALLS)
493
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   266
	( \
496
9ddd305404e6 Fix: sftp: Couldn't create directory: Failure
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 494
diff changeset
   267
echo "-mkdir $(DEFUN_REL_DIR)"; \
9ddd305404e6 Fix: sftp: Couldn't create directory: Failure
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 494
diff changeset
   268
echo "-mkdir $(DEFUN_REL_DIR)/v$(vmajor).$(vminor)"; \
493
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   269
echo "cd $(DEFUN_REL_DIR)/v$(vmajor).$(vminor)"; \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   270
for f in $(DISTREL_TARBALLS) $(DISTSRC_TARBALLS); do \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   271
  n=$${f##*/}; \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   272
  echo "put $$f $$n"; \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   273
  echo "chmod 644 $$n"; \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   274
done; \
8bfe8d4ad4a4 deploy2defun-distrel
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 482
diff changeset
   275
) | 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
   276
777
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   277
.PHONY: deploy2defun-html
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   278
deploy2defun-html: $(DICT_HTML_FILES)
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   279
	( \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   280
echo 'cd $(DEFUN_WWW_DIR)'; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   281
for f in $(DICT_HTML_FILES); do \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   282
  n=$${f##*/}; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   283
  echo "put $$f $$n"; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   284
  echo "chmod 644 $$n"; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   285
done; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   286
echo 'quit'; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   287
) | sftp -b - $(DEFUN_USER)@$(DEFUN_WWW_SRV)
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   288
338
61a9d2de0e3e New home page. SF is used as mirror.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 313
diff changeset
   289
SF_USER ?= gavenkoa
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   290
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   291
# 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
   292
#   $ sftp $(SF_USER),$(pkgname)@web.sourceforge.net
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   293
# as it may require interactive input for accepting server public key.
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   294
# Next time any action fully automated.
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   295
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   296
.PHONY: deploy2sf
777
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   297
deploy2sf: deploy2sf-www deploy2sf-dist deploy2sf-voa deploy2sf-hg deploy2sf-html
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   298
558
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   299
.PHONY: deploy2sf-hg
53fd793e345d Add shortcut to deploy to HG repos.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 557
diff changeset
   300
deploy2sf-hg:
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   301
	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
   302
119
20f1d1080886 Rename 'name' ==> 'pkgname'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 118
diff changeset
   303
# 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
   304
.PHONY: deploy2sf-www
774
7e8a7ec72bb4 Avoid 'HTML_FILES' generic name usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 773
diff changeset
   305
deploy2sf-www: $(WWW_HTML_FILES) $(FAVICON)
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   306
	( echo 'cd htdocs'; \
774
7e8a7ec72bb4 Avoid 'HTML_FILES' generic name usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 773
diff changeset
   307
for f in $(WWW_HTML_FILES) $(FAVICON); do \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   308
  n=$${f##*/}; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   309
  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
   310
  echo "chmod 644 $$n"; \
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   311
done; \
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   312
echo 'quit'; \
120
cb5ab06a72a7 Inline URL to make code more verbose.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 119
diff changeset
   313
) | sftp -b - $(SF_USER),$(pkgname)@web.sourceforge.net
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   314
308
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   315
.PHONY: deploy2sf-voa
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   316
deploy2sf-voa: voa
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   317
	( 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
   318
  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
   319
  echo "chmod 644 voa-special.pdf"; \
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   320
echo 'quit'; \
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   321
) | 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
   322
501
3ebfd12fc276 Enable release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 499
diff changeset
   323
.PHONY: deploy2sf-dist
3ebfd12fc276 Enable release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 499
diff changeset
   324
deploy2sf-dist: $(DISTREL_TARBALLS) $(DISTSRC_TARBALLS)
287
d01045b55e04 Avoid names inlining.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 276
diff changeset
   325
	( 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
   326
echo "put  www/README.rst"; \
115
1c6ffaecdf50 Fix sftp command usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 112
diff changeset
   327
echo "chmod 644 README.rst"; \
496
9ddd305404e6 Fix: sftp: Couldn't create directory: Failure
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 494
diff changeset
   328
echo "-mkdir v$(vmajor).$(vminor)"; \
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   329
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
   330
for f in $(DISTREL_TARBALLS) $(DISTSRC_TARBALLS); do \
503
6a32a94eeab2 Fix dist release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 501
diff changeset
   331
  n=$${f##*/}; \
6a32a94eeab2 Fix dist release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 501
diff changeset
   332
  echo "put $$f $$n"; \
6a32a94eeab2 Fix dist release to SF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 501
diff changeset
   333
  echo "chmod 644 $$n"; \
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   334
done; \
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   335
echo 'quit'; \
120
cb5ab06a72a7 Inline URL to make code more verbose.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 119
diff changeset
   336
) | sftp -b - $(SF_USER),$(pkgname)@frs.sourceforge.net
111
84fe35f49224 Add 'deploy' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 110
diff changeset
   337
779
c2520fea743b Fix typo.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 777
diff changeset
   338
.PHONY: deploy2sf-html
c2520fea743b Fix typo.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 777
diff changeset
   339
deploy2sf-html: $(DICT_HTML_FILES)
777
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   340
	( echo 'cd htdocs'; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   341
for f in $(DICT_HTML_FILES); do \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   342
  n=$${f##*/}; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   343
  echo "put $$f $$n"; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   344
  echo "chmod 644 $$n"; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   345
done; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   346
echo 'quit'; \
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   347
) | sftp -b - $(SF_USER),$(pkgname)@web.sourceforge.net
6c191fc06fce Deploy dictionaries in HTML format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
   348
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   349
.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
   350
validate-release:
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   351
	\
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   352
case ${visclean} in \
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   353
  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
   354
    exit 1;; \
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   355
esac
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   356
	\
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   357
case $(vatrelease) in \
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   358
  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
   359
    exit 1;; \
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   360
esac
124
7d9f38580ed9 Add 'deploy-check' target to check source sanity before release.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 123
diff changeset
   361
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   362
################################################################
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   363
# Dist targets.
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   364
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   365
.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
   366
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
   367
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   368
.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
   369
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
   370
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   371
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
   372
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
   373
DISTREL_RST_FILES := $(patsubst %,dist/$(fullpkgname)/doc/txt/%,$(notdir $(RST_FILES)))
774
7e8a7ec72bb4 Avoid 'HTML_FILES' generic name usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 773
diff changeset
   374
DISTREL_WWW_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
   375
DISTREL_SRS_TAB_FILES := $(patsubst %,dist/$(fullpkgname)/srs/%,$(notdir $(SRS_TAB_FILES)))
666
ef697459f88e Store Anki files in separate directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 665
diff changeset
   376
DISTREL_SRS_ANKI_FILES := $(patsubst %,dist/$(fullpkgname)/anki/%,$(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
   377
774
7e8a7ec72bb4 Avoid 'HTML_FILES' generic name usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 773
diff changeset
   378
dist/$(fullpkgname).tar.gz: $(DISTREL_DICTDZ_FILES) $(DISTREL_INDEX_FILES) $(DISTREL_SRS_TAB_FILES) $(DISTREL_SRS_ANKI_FILES) $(DISTREL_RST_FILES) $(DISTREL_WWW_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
   379
	rm -rf $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   380
	tar zcf $@ -C dist/ $(fullpkgname)
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   381
774
7e8a7ec72bb4 Avoid 'HTML_FILES' generic name usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 773
diff changeset
   382
dist/$(fullpkgname).zip: $(DISTREL_DICTDZ_FILES) $(DISTREL_INDEX_FILES) $(DISTREL_RST_FILES) $(DISTREL_WWW_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
   383
	rm -rf $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   384
	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
   385
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   386
$(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
   387
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   388
545
15e5f62b2f6f Include import files in tab format for SRS to release bundle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 536
diff changeset
   389
$(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
   390
	cp $< $@
15e5f62b2f6f Include import files in tab format for SRS to release bundle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 536
diff changeset
   391
666
ef697459f88e Store Anki files in separate directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 665
diff changeset
   392
$(DISTREL_SRS_ANKI_FILES): dist/$(fullpkgname)/anki/%: dist/anki/% | dist/$(fullpkgname)/anki/
557
d7a42a700255 Package Anki files to binary release.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 555
diff changeset
   393
	cp $< $@
d7a42a700255 Package Anki files to binary release.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 555
diff changeset
   394
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   395
$(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
   396
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   397
774
7e8a7ec72bb4 Avoid 'HTML_FILES' generic name usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 773
diff changeset
   398
$(DISTREL_WWW_HTML_FILES): dist/$(fullpkgname)/doc/html/%: dist/www/% | dist/$(fullpkgname)/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
   399
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   400
666
ef697459f88e Store Anki files in separate directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 665
diff changeset
   401
$(patsubst %,dist/$(fullpkgname)/%, dictd/ srs/ anki/ 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
   402
	mkdir -p $@
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   403
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   404
.PHONY: dist-src
105
35cc545ec03d 'clean'-like targets delete artefacts after 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 103
diff changeset
   405
dist-src: $(DISTSRC_TARBALLS)
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   406
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   407
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
   408
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
   409
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
   410
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
   411
DISTSRC_BUILD_SCRIPTS := $(patsubst %,dist/$(fullpkgname)_src/%, Makefile VERSION)
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   412
481
f2b8c358716d Include HTML template to allow full build from distribution tarball.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 480
diff changeset
   413
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
   414
	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
   415
	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
   416
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   417
$(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
   418
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   419
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   420
$(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
   421
	cp $< $@
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   422
478
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   423
$(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
   424
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   425
481
f2b8c358716d Include HTML template to allow full build from distribution tarball.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 480
diff changeset
   426
$(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
   427
	cp $< $@
f2b8c358716d Include HTML template to allow full build from distribution tarball.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 480
diff changeset
   428
480
4413ccc9e216 Include VERSION file into source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 479
diff changeset
   429
$(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
   430
	cp $< $@
740943860879 Add new target for binary distribution and update target for source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 441
diff changeset
   431
481
f2b8c358716d Include HTML template to allow full build from distribution tarball.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 480
diff changeset
   432
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
   433
	mkdir -p $@
103
b5b1dc62bdc0 Add 'dist' targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 94
diff changeset
   434
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   435
################################################################
643
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   436
# Word frequency statistic.
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   437
664
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   438
define FREQ_MACRO
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   439
$(1)_OPT += -freq:$(2):$(3)=$(4)
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   440
$(1)_DEP += $(4)
651
08417d7454ec Add VOA to frequency list. Fix dependency on freq list.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 646
diff changeset
   441
endef
08417d7454ec Add VOA to frequency list. Fix dependency on freq list.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 646
diff changeset
   442
664
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   443
# For gadict_voa.
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   444
$(eval $(call FREQ_MACRO,VOA_FREQLIST,freq,GSL,wordlist/gsl.freq))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   445
$(eval $(call FREQ_MACRO,VOA_FREQLIST,freq,AWL,wordlist/awl.freq))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   446
$(eval $(call FREQ_MACRO,VOA_FREQLIST,freq,NGSL,wordlist/ngsl.freq))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   447
$(eval $(call FREQ_MACRO,VOA_FREQLIST,freq,NAWL,wordlist/nawl.freq))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   448
$(eval $(call FREQ_MACRO,VOA_FREQLIST,var,BSL,wordlist/bsl.var))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   449
$(eval $(call FREQ_MACRO,VOA_FREQLIST,var,TSL,wordlist/tsl.var))
646
2d488cfc4c0c Add frequency markers to dictd dictionary and Anki cards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 644
diff changeset
   450
664
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   451
# For other dictionaries.
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   452
$(eval $(call FREQ_MACRO,FREQLIST,freq,GSL,wordlist/gsl.freq))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   453
$(eval $(call FREQ_MACRO,FREQLIST,freq,AWL,wordlist/awl.freq))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   454
$(eval $(call FREQ_MACRO,FREQLIST,freq,NGSL,wordlist/ngsl.freq))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   455
$(eval $(call FREQ_MACRO,FREQLIST,freq,NAWL,wordlist/nawl.freq))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   456
$(eval $(call FREQ_MACRO,FREQLIST,var,VOA,dist/wordlist/voa.list))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   457
$(eval $(call FREQ_MACRO,FREQLIST,var,BSL,wordlist/bsl.var))
77df10cfe3ba Add freq list markers to VOA Anki deck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 660
diff changeset
   458
$(eval $(call FREQ_MACRO,FREQLIST,var,TSL,wordlist/tsl.var))
643
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   459
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   460
# BNC_COCA_BASEWORD := $(wildcard wordlist/bnc+coca/basewrd[0-1]?.txt)
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   461
# FREQ_DEP += $(BNC_COCA_BASEWORD)
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   462
# FREQ_FILTER += $(patsubst %,-b:%,$(BNC_COCA_BASEWORD))
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   463
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   464
GSL_BASEWORD := $(wildcard wordlist/gsl_1000_*.var)
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   465
# FREQ_DEP += $(GSL_BASEWORD)
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   466
# FREQ_FILTER += $(patsubst %,-b:%,$(GSL_BASEWORD))
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   467
FREQ_DEP += dist/wordlist/gsl.var
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   468
FREQ_FILTER += -b:dist/wordlist/gsl.var
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   469
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   470
NGSL_BASEWORD := $(wildcard wordlist/ngsl_1000_[1-3].var wordlist/ngsl_supplemental.var)
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   471
# FREQ_DEP += $(NGSL_BASEWORD)
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   472
# FREQ_FILTER += $(patsubst %,-b:%,$(NGSL_BASEWORD))
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   473
FREQ_DEP += dist/wordlist/ngsl.var
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   474
FREQ_FILTER += -b:dist/wordlist/ngsl.var
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   475
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   476
# FAMOUS_FREQLIST := wordlist/awl.freq wordlist/gsl.freq wordlist/nawl.freq wordlist/ngsl.freq
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   477
# FREQ_FILTER += $(patsubst %,-f:%,$(FAMOUS_FREQLIST))
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   478
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   479
AWL_BASEWORD := wordlist/awl.var
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   480
FREQ_DEP += $(AWL_BASEWORD)
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   481
FREQ_FILTER += $(patsubst %,-b:%,$(AWL_BASEWORD))
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   482
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   483
NAWL_BASEWORD := wordlist/nawl.var
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   484
FREQ_DEP += $(NAWL_BASEWORD)
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   485
FREQ_FILTER += $(patsubst %,-b:%,$(NAWL_BASEWORD))
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   486
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   487
VOA_BASEWORD := dist/wordlist/voa.list
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   488
FREQ_DEP += $(VOA_BASEWORD)
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   489
FREQ_FILTER += $(patsubst %,-b:%,$(VOA_BASEWORD))
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   490
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   491
FREQ_FILTER += -12000f:wordlist/oanc.freq
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   492
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   493
.PHONY: freq
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   494
freq: dist/wordlist/gadict.list py/gadict_freq.py $(FREQ_DEP) $(BUILD_SCRIPTS)
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   495
	python3 -B py/gadict_freq.py +b:dist/wordlist/gadict.list $(FREQ_FILTER)
723
53095b480a73 Treat first argument in format like the rest arguments. Targets to print
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 684
diff changeset
   496
53095b480a73 Treat first argument in format like the rest arguments. Targets to print
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 684
diff changeset
   497
.PHONY: missing
724
98fd211d27db Target to show combined statistics about missing words.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 723
diff changeset
   498
missing: missing-words missing-stat
98fd211d27db Target to show combined statistics about missing words.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 723
diff changeset
   499
98fd211d27db Target to show combined statistics about missing words.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 723
diff changeset
   500
.PHONY: missing-words
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   501
missing-words: dist/wordlist/gadict.list $(FREQ_DEP) $(BUILD_SCRIPTS)
723
53095b480a73 Treat first argument in format like the rest arguments. Targets to print
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 684
diff changeset
   502
	@echo ===== VOA =====
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   503
	python3 -B py/gadict_freq.py -b:dist/wordlist/gadict.list +b:dist/wordlist/voa.list
723
53095b480a73 Treat first argument in format like the rest arguments. Targets to print
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 684
diff changeset
   504
	@echo ===== GSL =====
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   505
	python3 -B py/gadict_freq.py -b:dist/wordlist/gadict.list +f:wordlist/gsl.freq
723
53095b480a73 Treat first argument in format like the rest arguments. Targets to print
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 684
diff changeset
   506
	@echo ===== AWL =====
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   507
	python3 -B py/gadict_freq.py -b:dist/wordlist/gadict.list +f:wordlist/awl.freq
723
53095b480a73 Treat first argument in format like the rest arguments. Targets to print
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 684
diff changeset
   508
	@echo ===== NGSL =====
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   509
	python3 -B py/gadict_freq.py -b:dist/wordlist/gadict.list +f:wordlist/ngsl.freq
723
53095b480a73 Treat first argument in format like the rest arguments. Targets to print
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 684
diff changeset
   510
	@echo ===== NAWL =====
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   511
	python3 -B py/gadict_freq.py -b:dist/wordlist/gadict.list +f:wordlist/nawl.freq
723
53095b480a73 Treat first argument in format like the rest arguments. Targets to print
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 684
diff changeset
   512
	@echo ===== BSL =====
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   513
	python3 -B py/gadict_freq.py -b:dist/wordlist/gadict.list +b:wordlist/bsl.var
723
53095b480a73 Treat first argument in format like the rest arguments. Targets to print
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 684
diff changeset
   514
	@echo ===== TSL =====
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   515
	python3 -B py/gadict_freq.py -b:dist/wordlist/gadict.list +b:wordlist/tsl.var
723
53095b480a73 Treat first argument in format like the rest arguments. Targets to print
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 684
diff changeset
   516
829
f5c7e513cbff Removed trick with pattern-specific variables because build fail in some situations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 801
diff changeset
   517
define stat-cmd
f5c7e513cbff Removed trick with pattern-specific variables because build fail in some situations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 801
diff changeset
   518
{ \
794
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   519
stat() { \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   520
  lack=`python3 -B py/gadict_freq.py -b:dist/wordlist/gadict.list $$2:$$3 | wc -l`; \
801
04397698b6be Count only base word in missing statistic.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 794
diff changeset
   521
  total=`grep -v '^[ 	]' $$3 | wc -l`; \
794
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   522
  cover=$$((total - lack)); \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   523
  printf "   %4s %5s %5s %4s\n" $$1 $$cover $$total $$lack; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   524
}; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   525
echo "   ==== ===== ===== ===="; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   526
echo "   List Cover Total Lack"; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   527
echo "   ==== ===== ===== ===="; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   528
stat VOA +b dist/wordlist/voa.list; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   529
stat GSL +f wordlist/gsl.freq; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   530
stat AWL +f wordlist/awl.freq; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   531
stat NGSL +f wordlist/ngsl.freq; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   532
stat NAWL +f wordlist/nawl.freq; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   533
stat BSL +b wordlist/bsl.var; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   534
stat TSL +b wordlist/tsl.var; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   535
echo "   ==== ===== ===== ===="; \
829
f5c7e513cbff Removed trick with pattern-specific variables because build fail in some situations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 801
diff changeset
   536
}
f5c7e513cbff Removed trick with pattern-specific variables because build fail in some situations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 801
diff changeset
   537
endef
f5c7e513cbff Removed trick with pattern-specific variables because build fail in some situations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 801
diff changeset
   538
f5c7e513cbff Removed trick with pattern-specific variables because build fail in some situations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 801
diff changeset
   539
.PHONY: missing-stat
f5c7e513cbff Removed trick with pattern-specific variables because build fail in some situations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 801
diff changeset
   540
missing-stat: dist/wordlist/gadict.list $(FREQ_DEP) $(BUILD_SCRIPTS)
f5c7e513cbff Removed trick with pattern-specific variables because build fail in some situations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 801
diff changeset
   541
	@${stat-cmd}
643
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   542
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   543
dist/wordlist/%.list: %.gadict py/gadict_headwords.py $(BUILD_SCRIPTS) | dist/wordlist/
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   544
	python3 -B py/gadict_headwords.py  $< $@
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   545
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   546
dist/wordlist/gsl.var: $(GSL_BASEWORD) | dist/wordlist/
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   547
	cat $(GSL_BASEWORD) >$@
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   548
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   549
dist/wordlist/ngsl.var: $(NGSL_BASEWORD) | dist/wordlist/
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   550
	cat $(NGSL_BASEWORD) >$@
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   551
651
08417d7454ec Add VOA to frequency list. Fix dependency on freq list.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 646
diff changeset
   552
dist/wordlist/voa.list: gadict_voa.gadict py/gadict_headwords.py $(MAKEFILE_LIST) | dist/wordlist/
643
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   553
	python3 -B py/gadict_headwords.py gadict_voa.gadict >$@
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   554
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   555
dist/wordlist/:
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   556
	mkdir -p $@
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   557
c2c32f45dde6 Search rare words in gadict.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 633
diff changeset
   558
################################################################
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   559
# Build targets.
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   560
23
946ae4b96419 Phony targets marked.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   561
.PHONY: all
245
5b9fac360762 Rename target to avoid disambiguate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 241
diff changeset
   562
all: dict
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   563
431
4ec7d0ea1602 Fix: ".name" and ".url" intermediate files for dictd automatically removed by GNU make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 429
diff changeset
   564
.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
   565
dictd c5: dict
245
5b9fac360762 Rename target to avoid disambiguate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 241
diff changeset
   566
dict: $(DICTDZ_FILES) $(INDEX_FILES)
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   567
592
f45410f1f80e Move dictfmt options to variable.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 589
diff changeset
   568
DICTFMT := dictfmt
41
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   569
#  --case-sensitive
593
32de94c1b039 Disable word wrapping for dictd dictionary.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 592
diff changeset
   570
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
   571
404
cdfa6dfa9072 Integrate dictionary metainfo line name and home page url into dictd build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 401
diff changeset
   572
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
   573
	(cd dist/dictd; $(DICTFMT) $(DICTFMT_OPT)  -c5  -s "`cat $*.c5.name`" -u "`cat $*.c5.url`"  $*)  < $<
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   574
387
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   575
dist/dictd/%.dict.dz: dist/dictd/%.dict
41
8f1dc5d77f3d Switch dictionary to dictd -c5 format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 28
diff changeset
   576
	dictzip -c $< >$@
1
b23e948de24a Make article for all verbs form.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   577
624
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   578
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
   579
	convert $< $@
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   580
431
4ec7d0ea1602 Fix: ".name" and ".url" intermediate files for dictd automatically removed by GNU make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 429
diff changeset
   581
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
   582
.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
   583
.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
   584
cdfa6dfa9072 Integrate dictionary metainfo line name and home page url into dictd build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 401
diff changeset
   585
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
   586
	:
cdfa6dfa9072 Integrate dictionary metainfo line name and home page url into dictd build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 401
diff changeset
   587
396
4f16fb80b2a7 Suppress __pycache__ dir.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 393
diff changeset
   588
# -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
   589
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   590
dist/dictd/gadict.c5: gadict.gadict $(FREQLIST_DEP) py/gadict.py py/gadict_c5.py $(MAKEFILE_LIST) | dist/dictd/
646
2d488cfc4c0c Add frequency markers to dictd dictionary and Anki cards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 644
diff changeset
   591
	python3 -B py/gadict_c5.py $(FREQLIST_OPT)  $< $@
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   592
	echo "gadict En-Ru+Uk"> dist/dictd/gadict.c5.name
646
2d488cfc4c0c Add frequency markers to dictd dictionary and Anki cards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 644
diff changeset
   593
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   594
dist/dictd/gadict_en-ru.c5: gadict.gadict py/gadict.py py/gadict_c5.py $(MAKEFILE_LIST) | dist/dictd/
644
e38cd6112193 New command line format for passing language list.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 643
diff changeset
   595
	python3 -B py/gadict_c5.py  $< $@ -lang:ru
410
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   596
	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
   597
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   598
dist/dictd/gadict_en-uk.c5: gadict.gadict py/gadict.py py/gadict_c5.py $(MAKEFILE_LIST) | dist/dictd/
644
e38cd6112193 New command line format for passing language list.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 643
diff changeset
   599
	python3 -B py/gadict_c5.py  $< $@ -lang:uk
410
65b38ec04ea4 Include VOA in build. Make possible separate Ru/Uk build.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 404
diff changeset
   600
	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
   601
646
2d488cfc4c0c Add frequency markers to dictd dictionary and Anki cards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 644
diff changeset
   602
dist/dictd/gadict_voa.c5: gadict_voa.gadict py/gadict.py py/gadict_c5.py $(MAKEFILE_LIST) | dist/dictd/
644
e38cd6112193 New command line format for passing language list.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 643
diff changeset
   603
	python3 -B py/gadict_c5.py  $< $@ -lang:en
387
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   604
646
2d488cfc4c0c Add frequency markers to dictd dictionary and Anki cards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 644
diff changeset
   605
dist/dictd/%.c5: %.gadict py/gadict.py py/gadict_c5.py $(MAKEFILE_LIST) | dist/dictd/
624
934a2a6cbe27 Add dictionaries logo. Goldendict supports PNG format and by default display
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 614
diff changeset
   606
	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
   607
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   608
dist/dictd/:
387
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   609
	mkdir -p $@
1616fc7c1f09 Start using "gadict.py".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 384
diff changeset
   610
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   611
.PHONY: srs
555
4a3188fc8951 Generating Packaged Anki Desk files for Anki space repetition software.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 547
diff changeset
   612
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
   613
564
93d0bdb815a1 Separate target to build anki files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 558
diff changeset
   614
.PHONY: anki
93d0bdb815a1 Separate target to build anki files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 558
diff changeset
   615
anki: $(SRS_ANKI_FILES)
93d0bdb815a1 Separate target to build anki files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 558
diff changeset
   616
775
6aa817943828 Makefile warn about duplicate implicit rules.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 774
diff changeset
   617
GADICT_DEL_FILE := $(wildcard gadict.del)
6aa817943828 Makefile warn about duplicate implicit rules.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 774
diff changeset
   618
GADICT_DEL_OPT :=
6aa817943828 Makefile warn about duplicate implicit rules.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 774
diff changeset
   619
ifneq '' '$(GADICT_DEL_FILE)'
6aa817943828 Makefile warn about duplicate implicit rules.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 774
diff changeset
   620
  GADICT_DEL_OPT := -delfile=$(GADICT_DEL_FILE)
6aa817943828 Makefile warn about duplicate implicit rules.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 774
diff changeset
   621
endif
6aa817943828 Makefile warn about duplicate implicit rules.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 774
diff changeset
   622
773
3bf7e4c6233f Old name for 'gadict_en-ru+uk' should be passed to keep hash values the same
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 772
diff changeset
   623
# Specific rules (due to renames or other customization).
775
6aa817943828 Makefile warn about duplicate implicit rules.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 774
diff changeset
   624
dist/anki/gadict.apkg: gadict.gadict $(GADICT_DEL_FILE) py/gadict.py py/gadict_srs_anki.py $(FREQLIST_DEP) $(MAKEFILE_LIST) | dist/anki/
875
ebba66b977b6 Ported Anki decks build to Cygwin+Windows. Added corresponding docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 844
diff changeset
   625
	PYTHONPATH=$(ANKI_PY_DIR): python -B py/gadict_srs_anki.py -name="gadict_en-ru+uk" -rich $(GADICT_DEL_OPT) $(FREQLIST_OPT) $< $@
773
3bf7e4c6233f Old name for 'gadict_en-ru+uk' should be passed to keep hash values the same
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 772
diff changeset
   626
3bf7e4c6233f Old name for 'gadict_en-ru+uk' should be passed to keep hash values the same
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 772
diff changeset
   627
dist/anki/gadict_voa.apkg: gadict_voa.gadict py/gadict.py py/gadict_srs_anki.py $(VOA_FREQLIST_DEP) $(MAKEFILE_LIST) | dist/anki/
875
ebba66b977b6 Ported Anki decks build to Cygwin+Windows. Added corresponding docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 844
diff changeset
   628
	PYTHONPATH=$(ANKI_PY_DIR): python -B py/gadict_srs_anki.py -name="gadict_voa" $(VOA_FREQLIST_OPT) $< $@
773
3bf7e4c6233f Old name for 'gadict_en-ru+uk' should be passed to keep hash values the same
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 772
diff changeset
   629
3bf7e4c6233f Old name for 'gadict_en-ru+uk' should be passed to keep hash values the same
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 772
diff changeset
   630
# General rules.
666
ef697459f88e Store Anki files in separate directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 665
diff changeset
   631
dist/anki/%.apkg: %.gadict %.del py/gadict.py py/gadict_srs_anki.py $(FREQLIST_DEP) $(MAKEFILE_LIST) | dist/anki/
875
ebba66b977b6 Ported Anki decks build to Cygwin+Windows. Added corresponding docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 844
diff changeset
   632
	PYTHONPATH=$(ANKI_PY_DIR): python -B py/gadict_srs_anki.py -name=$* -rich -delfile=$*.del $(FREQLIST_OPT) $< $@
608
01fcbb1d5cea Add a way to mark card for deletion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 593
diff changeset
   633
666
ef697459f88e Store Anki files in separate directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 665
diff changeset
   634
dist/anki/%.apkg: %.gadict py/gadict.py py/gadict_srs_anki.py $(FREQLIST_DEP) $(MAKEFILE_LIST) | dist/anki/
875
ebba66b977b6 Ported Anki decks build to Cygwin+Windows. Added corresponding docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 844
diff changeset
   635
	PYTHONPATH=$(ANKI_PY_DIR): python -B py/gadict_srs_anki.py -name=$* -rich $(FREQLIST_OPT) $< $@
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   636
772
ea173f7395a0 Separate target to generate SRS tab-files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 771
diff changeset
   637
.PHONY: tab
ea173f7395a0 Separate target to generate SRS tab-files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 771
diff changeset
   638
tab: $(SRS_TAB_FILES)
ea173f7395a0 Separate target to generate SRS tab-files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 771
diff changeset
   639
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   640
dist/srs/gadict.tab.txt: gadict.gadict py/gadict.py py/gadict_srs_tab.py $(MAKEFILE_LIST) | dist/srs/
644
e38cd6112193 New command line format for passing language list.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 643
diff changeset
   641
	python3 -B py/gadict_srs_tab.py  $< $@ -lang:ru,uk
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   642
587
caf484e75e19 Generalise rule for building .tab.txt files. This helps build off project files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 564
diff changeset
   643
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
   644
	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
   645
666
ef697459f88e Store Anki files in separate directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 665
diff changeset
   646
dist/anki/ dist/srs/:
536
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   647
	mkdir -p $@
c9f0064d8661 Generate import file for space repetition software in TAB format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 505
diff changeset
   648
776
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   649
.PHONY: html
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   650
html: $(DICT_HTML_FILES)
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   651
837
ed8a84d9566f No need to include VOA marked in VOA HTML.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 830
diff changeset
   652
dist/html/gadict_voa.html: gadict_voa.gadict py/gadict.py py/gadict_html.py $(VOA_FREQLIST_DEP) $(MAKEFILE_LIST) | dist/html/
ed8a84d9566f No need to include VOA marked in VOA HTML.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 830
diff changeset
   653
	python3 -B py/gadict_html.py $(VOA_FREQLIST_OPT) $< $@
ed8a84d9566f No need to include VOA marked in VOA HTML.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 830
diff changeset
   654
776
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   655
dist/html/%.html: %.gadict py/gadict.py py/gadict_html.py $(FREQLIST_DEP) $(MAKEFILE_LIST) | dist/html/
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   656
	python3 -B py/gadict_html.py $(FREQLIST_OPT) $< $@
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   657
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   658
dist/html/:
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   659
	mkdir -p $@
d57c28843156 Generate HTML form of dictionary for online presents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 775
diff changeset
   660
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   661
################################################################
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   662
# Documentation targets.
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   663
768
bd3278653eaa 'html' target will be used for other purpose.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 754
diff changeset
   664
.PHONY: docs web
bd3278653eaa 'html' target will be used for other purpose.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 754
diff changeset
   665
docs web: www
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   666
768
bd3278653eaa 'html' target will be used for other purpose.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 754
diff changeset
   667
.PHONY: www
774
7e8a7ec72bb4 Avoid 'HTML_FILES' generic name usage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 773
diff changeset
   668
www: $(WWW_HTML_FILES)
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   669
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   670
$(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
   671
	cp $< $@
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   672
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   673
$(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
   674
	$(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
   675
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   676
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
   677
	mkdir -p $@
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   678
789
1a78ecda2555 Add dependency on version information for www files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 779
diff changeset
   679
$(RST_TMPL_FILE): www/tmpl/rst.tmpl.in VERSION $(BUILD_SCRIPTS) | $(dir $(RST_TMPL_FILE))
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   680
	\
482
fefea56726d2 Warn if build done without version file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 481
diff changeset
   681
[[ "${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
   682
[[ -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
   683
[[ "${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
   684
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
   685
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   686
################################################################
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   687
# Article statistics.
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   688
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   689
.PHONY: stat
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   690
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
   691
547
f571a9e4e70c Fix: directory without trailing "/" is not created.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 545
diff changeset
   692
$(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
   693
	$(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
   694
794
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   695
$(STAT_RST_FILE): $(GADICT_FILES) $(STAT_MISSING_FILE) $(BUILD_SCRIPTS) | $(dir $(STAT_RST_FILE))
109
5bb58b8d87a7 Add version info into documentation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 108
diff changeset
   696
	{ \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   697
echo '==========================='; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   698
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
   699
echo '==========================='; \
429
e721e428b909 Translations count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 428
diff changeset
   700
echo; \
428
8598efaef822 Align STAT table columns to the right.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 427
diff changeset
   701
echo '.. class:: right'; \
8598efaef822 Align STAT table columns to the right.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 427
diff changeset
   702
echo; \
794
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   703
echo '==================== ======== ======== ========'; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   704
echo '   Dictionary        Articles Meanings Examples'; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   705
echo '==================== ======== ======== ========'; \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   706
total=0; \
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   707
for dic in $(GADICT_FILES); do \
681
13b9335eae0d Add number of meanings and examples statistic. Remove ru/uk statistic because
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 674
diff changeset
   708
  awk '\
13b9335eae0d Add number of meanings and examples statistic. Remove ru/uk statistic because
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 674
diff changeset
   709
BEGIN { art=0; tr=0; ex = 0; };\
13b9335eae0d Add number of meanings and examples statistic. Remove ru/uk statistic because
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 674
diff changeset
   710
/^__$$/{ art += 1 };\
13b9335eae0d Add number of meanings and examples statistic. Remove ru/uk statistic because
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 674
diff changeset
   711
/^(en|ru|uk)> /{ ex += 1 };\
13b9335eae0d Add number of meanings and examples statistic. Remove ru/uk statistic because
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 674
diff changeset
   712
/^(n|det|pron|adj|v|adv|prep|conj|num|int|phr|phr\.v|contr|abbr|prefix)$$/{ tr += 1 };'\
794
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   713
"END {printf \"%20s %8s %8s %8s\n\", \"$${dic%.gadict}\", art, tr, ex};"\
681
13b9335eae0d Add number of meanings and examples statistic. Remove ru/uk statistic because
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 674
diff changeset
   714
  <$$dic; \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   715
done; \
794
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   716
echo '==================== ======== ======== ========'; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   717
echo; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   718
echo '.. table:: ``gadict`` coverage of famous word lists'; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   719
echo '   :class: right'; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   720
echo; \
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   721
cat  $(STAT_MISSING_FILE); \
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   722
} >$@
276
66db1bbebe45 Generalise RST build code. Remove index.rst, use README.rst instead.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 275
diff changeset
   723
844
e8e98ed4e381 Fix dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 837
diff changeset
   724
$(STAT_MISSING_FILE): dist/wordlist/gadict.list $(FREQ_DEP) $(BUILD_SCRIPTS) | $(dir $(STAT_MISSING_FILE))
829
f5c7e513cbff Removed trick with pattern-specific variables because build fail in some situations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 801
diff changeset
   725
	@echo '*' make stat
f5c7e513cbff Removed trick with pattern-specific variables because build fail in some situations.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 801
diff changeset
   726
	@${stat-cmd} >$(STAT_MISSING_FILE)
794
b6b7f7a3b4dc Include statistic on wordlist coverage.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 789
diff changeset
   727
424
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   728
dist/misc/:
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   729
	mkdir -p $@
98c8f14fc972 Fix "stat" target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 410
diff changeset
   730
66
be91c79007e9 Add 'html' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   731
################################################################
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   732
# Misc targets.
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   733
684
6ba6249fb194 Create new project logo. Add favicon to project sites.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 683
diff changeset
   734
.PHONY: favicon
6ba6249fb194 Create new project logo. Add favicon to project sites.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 683
diff changeset
   735
favicon: $(FAVICON)
6ba6249fb194 Create new project logo. Add favicon to project sites.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 683
diff changeset
   736
6ba6249fb194 Create new project logo. Add favicon to project sites.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 683
diff changeset
   737
$(FAVICON): $(LOGO_FILE) $(MAKEFILE_LIST) | $(dir $(FAVICON))
6ba6249fb194 Create new project logo. Add favicon to project sites.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 683
diff changeset
   738
	convert +antialias $< -resize 16x16 $@
6ba6249fb194 Create new project logo. Add favicon to project sites.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 683
diff changeset
   739
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   740
.PHONY: logo
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   741
logo: logo-png
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   742
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   743
.PHONY: logo-png
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   744
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
   745
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   746
# Require:
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   747
#   $ sudo apt-get install imagemagick librsvg2-bin
684
6ba6249fb194 Create new project logo. Add favicon to project sites.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 683
diff changeset
   748
$(LOGO_PNG_FILES): dist/misc/logo-%.png: $(LOGO_FILE) | dist/misc/
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   749
	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
   750
308
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   751
.PHONY: voa
614
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   752
voa: dist/pdf/voa-special.pdf
308
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   753
614
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   754
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
   755
	$(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
   756
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   757
dist/pdf/:
594fd4168b66 Fix: do not mess up project root with LaTeX related files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 608
diff changeset
   758
	mkdir -p $@
308
7a5f4265a581 Build and deploy VOA in PDF format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 287
diff changeset
   759
275
9f70f66ee2a1 Merge with 'ffead' project. Most significant is generating different sizes PNG
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 274
diff changeset
   760
################################################################
108
1f1363141da7 Dump version info with 'version' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 107
diff changeset
   761
# Helpers targets.
1f1363141da7 Dump version info with 'version' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 107
diff changeset
   762
1f1363141da7 Dump version info with 'version' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 107
diff changeset
   763
.PHONY: help
1f1363141da7 Dump version info with 'version' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 107
diff changeset
   764
help:
122
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   765
	@\
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   766
echo; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   767
echo Current configuration:; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   768
echo; \
480
4413ccc9e216 Include VERSION file into source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 479
diff changeset
   769
sed 's=^=  =' <$(VER_FILE)
122
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   770
	@if [ -f Makefile.config ]; then \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   771
		echo; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   772
		echo User configuration:; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   773
		echo; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   774
		sed 's=^=  =' <Makefile.config; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   775
	fi
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   776
	@\
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   777
echo; \
003356f9e504 Gather all available version info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 121
diff changeset
   778
echo Supported targets:; \
123
49f373dba523 Fix output sanity.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 122
diff changeset
   779
echo; \
150
28cd06b06bb8 Rename BUILD_SCRIPT ==> BUILD_SCRIPTS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 148
diff changeset
   780
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
   781
249
5ad075a475f2 TODO convention.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 245
diff changeset
   782
.PHONY: todo
5ad075a475f2 TODO convention.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 245
diff changeset
   783
todo:
5ad075a475f2 TODO convention.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 245
diff changeset
   784
	grep -nH 'TODO\|XXX' $(RST_FILES) $(C5_FILES)
5ad075a475f2 TODO convention.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 245
diff changeset
   785
660
5305f170237d Add spell checker based on hunspell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 655
diff changeset
   786
# Install:
5305f170237d Add spell checker based on hunspell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 655
diff changeset
   787
#   $ sudo apt-get install python3-enchant hunspell-en-us hunspell-en-gb hunspell-en-au hunspell-en-ca
5305f170237d Add spell checker based on hunspell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 655
diff changeset
   788
.PHONY: check
5305f170237d Add spell checker based on hunspell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 655
diff changeset
   789
check:
769
7877b9a74af7 Rename 'gadict_en-ru+uk' to simply 'gadict' because '+' sign should be escaped in URL.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 768
diff changeset
   790
	python3 -B py/gadict_spellcheck.py gadict.gadict
660
5305f170237d Add spell checker based on hunspell.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 655
diff changeset
   791
94
1b2cf5b2b46c Add target that print statistics about word count.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 85
diff changeset
   792
################################################################
54
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   793
# Clean targets.
12426df26196 Add headlines docs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 50
diff changeset
   794
23
946ae4b96419 Phony targets marked.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   795
.PHONY: distclean
946ae4b96419 Phony targets marked.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   796
distclean: clean
480
4413ccc9e216 Include VERSION file into source distribution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 479
diff changeset
   797
	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
   798
23
946ae4b96419 Phony targets marked.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   799
.PHONY: clean
0
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   800
clean:
339
4d8d46bbe30d Move RST files to separate directory. Build HTML files out of sources
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   801
	rm -rf dist/
63
f1bd82604661 Add help target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 56
diff changeset
   802