1
2
3
4
5
6
7
8
9
10
11
12
13
..
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
..
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
lua != which lua
luac != which luac
sh != which sh
extens = $(wildcard ext/*.lua)
extens-names ?= $(basename $(notdir $(extens)))
build = build
executable = cortav
default-format-flags = -m html:width 40em
prefix = $(HOME)/.local
bin-prefix = $(prefix)/bin
share-prefix = $(prefix)/share/$(executable)
................................................................................
# this is not necessary for parsing the format, and can be
# disabled by blanking the encoding-data list when building
# ($ make encoding-data=)
encoding-data = ucstbls
encoding-files = $(patsubst %,$(build)/%.lc,$(encoding-data))
encoding-data-ucs = https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt
$(build)/$(executable): sirsem.lua $(encoding-files) cortav.lua $(extens) cli.lua | $(build)/
@echo ' » building with extensions $(extens-names)'
echo '#!$(lua)' > $@
luac -o - $^ >> $@
chmod +x $@
$(build)/cortav.html: cortav.ct $(build)/$(executable) | $(build)/
$(build)/$(executable) $< -o $@ -m render:format html -y html:fossil-uv
................................................................................
echo "Exec=$(bin-prefix)/cortav-view.sh" >>$@
%/:
mkdir -p $@
$(build)/unicode.txt: | $(build)/
curl $(encoding-data-ucs) > $@
$(build)/ucstbls.lc: $(build)/unicode.txt | $(build)/
$(lua) tools/ucs.lua $< | $(luac) -o $@ -
.PHONY: install
install: $(build)/cortav $(build)/cortav-view.sh $(build)/velartrill-cortav-view.desktop | $(bin-prefix)/
install $(build)/$(executable) $(bin-prefix)
install $(build)/cortav-view.sh $(bin-prefix)
xdg-mime install desk/velartrill-cortav.xml
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
..
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
..
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# [ʞ] makefile
# ~ lexi hale <lexi@hale.su>
# 🄯 AGPLv3
# ? this script performs the tasks necessary to produce a mostly
# standalone cortav executable from the source files in the
# repository. it assumes the presence of the following tools
# in $SHELL or in $PATH:
#
# * which * cat
# * mkdir * echo
# * install * lua
# * luac * sh
#
# if any are not present, the build will fail, although a missing
# `which` can be worked around by specifying the paths to lua, luac,
# and `sh` directly
#
# eventually you will be able to set a "standalone" variable to
# create a truly standalone binary, by embedding the binary in a
# C program and statically linking it to lua.
lua != which lua
luac != which luac
sh != which sh
extens = $(wildcard ext/*.lua)
extens-names ?= $(basename $(notdir $(extens)))
rendrs = $(wildcard render/*.lua)
rendrs-names ?= $(basename $(notdir $(rendrs)))
build = build
executable = cortav
default-format-flags = -m html:width 40em
prefix = $(HOME)/.local
bin-prefix = $(prefix)/bin
share-prefix = $(prefix)/share/$(executable)
................................................................................
# this is not necessary for parsing the format, and can be
# disabled by blanking the encoding-data list when building
# ($ make encoding-data=)
encoding-data = ucstbls
encoding-files = $(patsubst %,$(build)/%.lc,$(encoding-data))
encoding-data-ucs = https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt
$(build)/$(executable): sirsem.lua $(encoding-files) cortav.lua $(rendrs) $(extens) cli.lua | $(build)/
@echo ' » building with extensions $(extens-names)'
@echo ' » building with renderers $(rendrs-names)'
echo '#!$(lua)' > $@
luac -o - $^ >> $@
chmod +x $@
$(build)/cortav.html: cortav.ct $(build)/$(executable) | $(build)/
$(build)/$(executable) $< -o $@ -m render:format html -y html:fossil-uv
................................................................................
echo "Exec=$(bin-prefix)/cortav-view.sh" >>$@
%/:
mkdir -p $@
$(build)/unicode.txt: | $(build)/
curl $(encoding-data-ucs) > $@
$(build)/ucstbls.lc: $(build)/unicode.txt tools/ucs.lua | $(build)/
$(lua) tools/ucs.lua $< | $(luac) -o $@ -
.PHONY: install
install: $(build)/cortav $(build)/cortav-view.sh $(build)/velartrill-cortav-view.desktop | $(bin-prefix)/
install $(build)/$(executable) $(bin-prefix)
install $(build)/cortav-view.sh $(bin-prefix)
xdg-mime install desk/velartrill-cortav.xml
|