Makefile
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 22 Feb 2016 12:46:36 +0200
changeset 70 1c08c262dfba
parent 69 f82b136921b7
child 71 ca442493062e
permissions -rw-r--r--
Include only local subsections into TOC. This prevent duplication of TOC when build single page HTML document. Also this make unnecessary CSS hack to hide document title as top level section.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
e7fc05196363 Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 40
diff changeset
     1
e7fc05196363 Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 40
diff changeset
     2
################################################################
e7fc05196363 Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 40
diff changeset
     3
# Standard GNU Makefile settings.
e7fc05196363 Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 40
diff changeset
     4
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
SHELL = /bin/sh
3
194bc8d6504a Add work-around for PATH. Under Windows find.exe going in collision with
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2
diff changeset
     6
export PATH := /bin:/usr/bin:${PATH}
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
# Disable built in pattern rules.
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
MAKEFLAGS += -r
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
# Disable built in variables.
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
MAKEFLAGS += -R
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
# Disable built in suffix rules.
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
.SUFFIXES:
44
e7fc05196363 Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 40
diff changeset
    14
# Delete target file if command fails.
e7fc05196363 Delete target file if command fails.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 40
diff changeset
    15
.DELETE_ON_ERROR:
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
# Default target.
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
.DEFAULT_GOAL = all
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
################################################################
7
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    20
# Platform definition.
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    21
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    22
host_os := linux
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    23
ifneq '' '$(WINDIR)'
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    24
  host_os := cygwin
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    25
endif
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    26
target_os := $(host_os)
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    27
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    28
################################################################
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    29
# Build tool definition/switches.
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    30
12
2d3d783b1b75 small fix
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 11
diff changeset
    31
RST2HTML := rst2html
7
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    32
ifeq '$(host_os)' 'cygwin'
12
2d3d783b1b75 small fix
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 11
diff changeset
    33
  RST2HTML := rst2html.py
7
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    34
endif
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    35
11
00d3a2f1f32b Add warning flag for RST utils.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 10
diff changeset
    36
RST_WARNING_FLAGS := --halt warning
68
46721724e2a3 Add template to generate HTML 5 compliant code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 67
diff changeset
    37
RST_RENDER_FLAGS := --strip-comments --embed-stylesheet --no-xml-declaration --math-output=MathJax
46721724e2a3 Add template to generate HTML 5 compliant code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 67
diff changeset
    38
RST_FLAGS := $(RST_WARNING_FLAGS) $(RST_RENDER_FLAGS)
11
00d3a2f1f32b Add warning flag for RST utils.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 10
diff changeset
    39
7
6a41484fd3a4 Port to Debian.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 5
diff changeset
    40
################################################################
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
# Proj dirs/files.
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
17
c7017f58585c Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 16
diff changeset
    43
RST_FILES := $(filter-out HEADER.rst,$(wildcard *.rst))
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
TXT_FILES := $(wildcard *.txt)
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
HTML_DIR := tips-html
8
d07c0496cdfe Split values.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 7
diff changeset
    47
RST_HTML_FILES := $(patsubst %.rst,$(HTML_DIR)/%.html,$(RST_FILES))
10
992d7c458bbb Remove duplication.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 9
diff changeset
    48
HTML_FILES := $(RST_HTML_FILES) \
65
6e28048f3e74 Remove frame based publishing, stick to iframe. Clean CHM code generation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 64
diff changeset
    49
        $(HTML_DIR)/index.html $(HTML_DIR)/iframe.html
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
TXT__FILES := $(addprefix $(HTML_DIR)/,$(TXT_FILES))
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
1
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
    52
CHM_FILES := $(addprefix $(HTML_DIR)/,chm.hhp chm.hhc chm.stp)
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
    53
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
DIRS := $(HTML_DIR)
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
################################################################
14
a36529d7dc2b Add 'deploy2sourceforge' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 13
diff changeset
    57
# Deploy targets.
a36529d7dc2b Add 'deploy2sourceforge' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 13
diff changeset
    58
61
cba303c0ad38 Allow customising connection settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 60
diff changeset
    59
WWW_SRV_NAME := defun.work
cba303c0ad38 Allow customising connection settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 60
diff changeset
    60
WWW_SRV_USER := user
cba303c0ad38 Allow customising connection settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 60
diff changeset
    61
HG_SRV_NAME := hg.defun.work
cba303c0ad38 Allow customising connection settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 60
diff changeset
    62
HG_SRV_USER := user
69
f82b136921b7 Deploy to local WEB server.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 68
diff changeset
    63
LOCAL_DIR := /srv/www/tips
61
cba303c0ad38 Allow customising connection settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 60
diff changeset
    64
22
a2914ae81c6d Update build info for deploy targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 21
diff changeset
    65
ifneq '' '$(filter deploy%,$(MAKECMDGOALS))'
a2914ae81c6d Update build info for deploy targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 21
diff changeset
    66
  $(shell rm -f HEADER.rst)
a2914ae81c6d Update build info for deploy targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 21
diff changeset
    67
endif
a2914ae81c6d Update build info for deploy targets.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 21
diff changeset
    68
14
a36529d7dc2b Add 'deploy2sourceforge' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 13
diff changeset
    69
.PHONY: deploy
60
387dd3541a06 Point to defun.work to grab sources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 59
diff changeset
    70
deploy: deploy2defun-web deploy2defun-hg deploy2sf-web deploy2sf-hg
57
66fd832dee47 Deploy to defun.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    71
65
6e28048f3e74 Remove frame based publishing, stick to iframe. Clean CHM code generation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 64
diff changeset
    72
# Will be accessible via: http://tips.defun.work/
57
66fd832dee47 Deploy to defun.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    73
.PHONY: deploy2defun-web
66fd832dee47 Deploy to defun.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    74
deploy2defun-web: html
61
cba303c0ad38 Allow customising connection settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 60
diff changeset
    75
	rsync --delete -avP -e ssh tips-html/ $(WWW_SRV_USER)@$(WWW_SRV_NAME):/srv/www/tips/
14
a36529d7dc2b Add 'deploy2sourceforge' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 13
diff changeset
    76
60
387dd3541a06 Point to defun.work to grab sources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 59
diff changeset
    77
.PHONY: deploy2defun-hg
387dd3541a06 Point to defun.work to grab sources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 59
diff changeset
    78
deploy2defun-hg:
61
cba303c0ad38 Allow customising connection settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 60
diff changeset
    79
	hg push ssh://$(HG_SRV_USER)@$(HG_SRV_NAME)//srv/hg/tips || [ $$? = 1 ]
60
387dd3541a06 Point to defun.work to grab sources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 59
diff changeset
    80
65
6e28048f3e74 Remove frame based publishing, stick to iframe. Clean CHM code generation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 64
diff changeset
    81
# Will be accessible via: http://gavenkoa.users.sourceforge.net/tips-html/
36
7fb39a216cef Push sources on 'deploy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 35
diff changeset
    82
.PHONY: deploy2sf-web
40
1c030a906e58 Fix typo in target name.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 39
diff changeset
    83
deploy2sf-web: html
14
a36529d7dc2b Add 'deploy2sourceforge' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 13
diff changeset
    84
	rsync --delete -avP -e ssh tips-html/ gavenkoa@frs.sourceforge.net:/home/user-web/g/ga/gavenkoa/htdocs/tips-html/
a36529d7dc2b Add 'deploy2sourceforge' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 13
diff changeset
    85
36
7fb39a216cef Push sources on 'deploy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 35
diff changeset
    86
.PHONY: deploy2sf-hg
7fb39a216cef Push sources on 'deploy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 35
diff changeset
    87
deploy2sf-hg:
39
fb55f2e84db1 If 'hg' found no changes it report error code 1. Ignore them as it is valid.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 36
diff changeset
    88
	hg push ssh://gavenkoa@hg.code.sf.net/u/gavenkoa/tips || [ $$? = 1 ]
36
7fb39a216cef Push sources on 'deploy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 35
diff changeset
    89
69
f82b136921b7 Deploy to local WEB server.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 68
diff changeset
    90
.PHONY: deploy2local
f82b136921b7 Deploy to local WEB server.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 68
diff changeset
    91
deploy2local: html
f82b136921b7 Deploy to local WEB server.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 68
diff changeset
    92
	rsync --delete -avP tips-html/ $(LOCAL_DIR)
f82b136921b7 Deploy to local WEB server.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 68
diff changeset
    93
14
a36529d7dc2b Add 'deploy2sourceforge' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 13
diff changeset
    94
################################################################
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    95
# Build targets.
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    96
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    97
.PHONY: all
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    98
all:
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    99
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   100
.PHONY: html
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   101
html: $(HTML_FILES) $(TXT__FILES)
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   102
68
46721724e2a3 Add template to generate HTML 5 compliant code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 67
diff changeset
   103
$(HTML_DIR)/%.html: %.rst HEADER.rst rst.css rst.tmpl $(MAKEFILE_LIST) | $(HTML_DIR)
46721724e2a3 Add template to generate HTML 5 compliant code.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 67
diff changeset
   104
	$(RST2HTML) $(RST_FLAGS) --stylesheet=rst.css --template=rst.tmpl $*.rst $@
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   105
62
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   106
$(HTML_DIR)/iframe.html: $(RST_FILES) $(MAKEFILE_LIST) | $(HTML_DIR)
17
c7017f58585c Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 16
diff changeset
   107
	{ \
67
78cb29831702 set encoding for iframe navigation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 66
diff changeset
   108
echo '<html><head>'; \
78cb29831702 set encoding for iframe navigation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 66
diff changeset
   109
echo '<meta charset="utf-8">'; \
78cb29831702 set encoding for iframe navigation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 66
diff changeset
   110
echo '<style>'; \
64
e1866d4fdbad Apply consistent color schema. Remove duplicated links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   111
echo 'a { text-decoration: none; color: hsl(240, 100%, 50%); }'; \
66
edb06d57511f Highlight links on hover.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 65
diff changeset
   112
echo 'a:hover { opacity: .5; }'; \
64
e1866d4fdbad Apply consistent color schema. Remove duplicated links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   113
echo '</style></head><body>'; \
62
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   114
echo '<ul style="padding-left: 1em;">'; \
64
e1866d4fdbad Apply consistent color schema. Remove duplicated links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   115
for f in $(sort $(RST_FILES)); do \
62
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   116
  n=$${f%.rst}; \
65
6e28048f3e74 Remove frame based publishing, stick to iframe. Clean CHM code generation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 64
diff changeset
   117
  printf '<li><a target="_parent" href="%s.html">%s</a></li>\n' $$n $$n; \
62
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   118
done; \
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   119
echo '</ul>'; \
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   120
echo '</body></html>'; \
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   121
} >$@
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   122
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   123
HEADER.rst: $(MAKEFILE_LIST)
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   124
	{ \
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   125
echo '.. raw:: html'; \
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   126
echo; \
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   127
echo '  <div id="sidebar"><iframe src="iframe.html"></iframe></div>'; \
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   128
echo; \
21
95ea6db23736 Fix links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 20
diff changeset
   129
echo '.. _About: README.html'; \
64
e1866d4fdbad Apply consistent color schema. Remove duplicated links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   130
echo '.. _`Contacts`: http://resume.defun.work/'; \
59
92285d7eb0c5 Point to HTTP, as HTTPS uses in-house certificate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 58
diff changeset
   131
echo '.. _`Oleksandr Gavenko`: http://resume.defun.work/'; \
92285d7eb0c5 Point to HTTP, as HTTPS uses in-house certificate.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 58
diff changeset
   132
echo '.. _`gavenkoa`: http://resume.defun.work/'; \
18
2454ae5af5cc Add About and Licence statements.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 17
diff changeset
   133
echo '.. _Licence: README.html#tips-licence'; \
64
e1866d4fdbad Apply consistent color schema. Remove duplicated links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   134
echo; \
e1866d4fdbad Apply consistent color schema. Remove duplicated links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   135
echo '.. container:: header'; \
17
c7017f58585c Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 16
diff changeset
   136
echo; \
64
e1866d4fdbad Apply consistent color schema. Remove duplicated links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   137
echo '  [ About_ | Licence_ | `Contacts`_ ]'; \
e1866d4fdbad Apply consistent color schema. Remove duplicated links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   138
echo '.. container:: header small'; \
19
be271bde35fa Sign each document with author name and build info.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 18
diff changeset
   139
echo; \
64
e1866d4fdbad Apply consistent color schema. Remove duplicated links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 63
diff changeset
   140
echo '  Written by Oleksandr Gavenko (AKA gavenkoa), compiled at ``'`date +%F`'`` from rev ``'`hg id -i`'``.'; \
17
c7017f58585c Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 16
diff changeset
   141
} >$@
c7017f58585c Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 16
diff changeset
   142
62
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   143
$(HTML_DIR)/index.html: $(HTML_DIR)/README.html $(MAKEFILE_LIST) | $(HTML_DIR)
83c835137c2e Generate UX friendly index.html with iframe to tips index.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 61
diff changeset
   144
	cp $< $@
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   145
13
245100f28fc0 Add dependency on build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 12
diff changeset
   146
$(HTML_DIR)/%.html: %.html $(MAKEFILE_LIST) | $(HTML_DIR)
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   147
	cp $< $@
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   148
13
245100f28fc0 Add dependency on build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 12
diff changeset
   149
$(HTML_DIR)/%.txt: %.txt $(MAKEFILE_LIST) | $(HTML_DIR)
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   150
	cp $< $@
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   151
1
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   152
.PHONY: chm
65
6e28048f3e74 Remove frame based publishing, stick to iframe. Clean CHM code generation.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 64
diff changeset
   153
chm: html $(CHM_FILES) $(HTML_DIR)/iframe.html
1
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   154
	cd $(HTML_DIR); for file in *.html; do sed -i '/<\?xml.*\?>/d' $$file; done
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   155
13
245100f28fc0 Add dependency on build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 12
diff changeset
   156
$(HTML_DIR)/%.stp: %.stp $(MAKEFILE_LIST) | $(HTML_DIR)
1
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   157
	cp $< $@
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   158
13
245100f28fc0 Add dependency on build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 12
diff changeset
   159
$(HTML_DIR)/chm.hhp: chm-hhp.sh $(MAKEFILE_LIST) | $(HTML_DIR)
1
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   160
	./chm-hhp.sh >$@
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   161
13
245100f28fc0 Add dependency on build script.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 12
diff changeset
   162
$(HTML_DIR)/chm.hhc: chm-hhc.sh $(MAKEFILE_LIST) | $(HTML_DIR)
1
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   163
	./chm-hhc.sh >$@
fd4cd9134e53 Add chm output format.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 0
diff changeset
   164
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   165
################################################################
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   166
# Init targets.
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   167
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   168
$(DIRS):
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   169
	mkdir -p $@
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   170
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   171
################################################################
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   172
# Clean targets.
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   173
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   174
.PHONY: distclean
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   175
distclean: clean
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   176
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   177
.PHONY: clean
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   178
clean:
17
c7017f58585c Include common header with quick links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 16
diff changeset
   179
	rm -r -f $(DIRS) HEADER.rst
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   180
5
3fce7236e888 Add 'help' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 4
diff changeset
   181
################################################################
3fce7236e888 Add 'help' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 4
diff changeset
   182
# Helper target.
0
6ee132e4cd5f Build html version of tips.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   183
35
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   184
.PHONY: help
5
3fce7236e888 Add 'help' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 4
diff changeset
   185
help:
3fce7236e888 Add 'help' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 4
diff changeset
   186
	@echo Supported targets:
3fce7236e888 Add 'help' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 4
diff changeset
   187
	@sed -n -e '/^[[:alnum:]_-]*:/{s=^\(.*\):.*=  \1=;p;}' $(MAKEFILE_LIST)
3fce7236e888 Add 'help' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 4
diff changeset
   188
35
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   189
.PHONY: check-format-policy
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   190
check-format-policy:
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   191
	\
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   192
for f in *.rst; do \
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   193
  if grep '.. -\*- coding: utf-8; -\*-' $$f >/dev/null; then :; else \
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   194
    echo $$f:1:" Has no 'coding: utf-8' directive."; \
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   195
  fi; \
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   196
  if grep '.. include:: HEADER.rst' $$f >/dev/null; then :; else \
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   197
    echo $$f:2:" Has no 'include:: HEADER.rst' directive."; \
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   198
  fi; \
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   199
  if grep '.. contents::' $$f >/dev/null; then :; else \
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   200
    echo $$f:7:" Has no 'contents::' directive."; \
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   201
  fi; \
648d3bf5204d Add 'check-format-policy' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 22
diff changeset
   202
done
5
3fce7236e888 Add 'help' target.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 4
diff changeset
   203