-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile.am
198 lines (147 loc) · 5.87 KB
/
Makefile.am
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
ACLOCAL_AMFLAGS = -I build-aux
AM_DISTCHECK_CONFIGURE_FLAGS = --enable-developer-mode
.ONESHELL:
.SECONDARY:
.SECONDEXPANSION:
.DELETE_ON_ERROR:
docdir = $(datarootdir)/doc/$(TRANSFORMED_PACKAGE_NAME)
licensedir = $(datarootdir)/licenses/$(TRANSFORMED_PACKAGE_NAME)
bin_PROGRAMS = decasify
decasify_SOURCES = src/bin/decasify.rs src/content.rs src/cli.rs src/lib.rs src/types.rs src/traits.rs
decasify_SOURCES += src/lua.rs src/python.rs src/wasm.rs
decasify_SOURCES += src/en.rs src/tr.rs
EXTRA_decasify_SOURCES = tests/cli.rs tests/lib.rs
EXTRA_DIST = pyproject.toml spec/decasify_spec.lua tests/test_all.py plugin/decasify.lua sile/decasify.lua
dist_doc_DATA = README.md CHANGELOG.md
dist_license_DATA = LICENSE.md
nodist_man_MANS =
BUILT_SOURCES =
CLEANFILES =
CARGO_FEATURE_ARGS = --features full
DISTCLEANFILES = @AMINCLUDE@
# A classical use of the autoconf-archive include macro would expand
# INC_AMINCLUDE here, but the perl script that inlines include statements
# runs before the automake that organizes logic and performs substitution.
# Consequentially with a substitution here it becomes impossible to use
# automake conditionals and substitutions in the included Makefile fragments.
# By entering the expanded value directly we are ready in time for the inlining
# functionality and hence can use conditionals in included makefile fragments.
include $(top_srcdir)/aminclude.am
SEMVER := $(shell $(AWK) -F\" '/^version/ { print $$2 }' $(top_srcdir)/Cargo.toml)
ROCKREV = 1
TAG := v$(SEMVER)
LUAROCKS_ARGS ?= --tree lua_modules
BUSTEDFLAGS ?=
DEV_SPEC := $(PACKAGE_NAME)-dev-$(ROCKREV).rockspec
DEV_ROCK := $(PACKAGE_NAME)-dev-$(ROCKREV).src.rock
DEV_ROCK_BIN := $(PACKAGE_NAME)-dev-$(ROCKREV).$(CARCH).rock
REL_SPEC := rockspecs/$(PACKAGE_NAME)-$(SEMVER)-$(ROCKREV).rockspec
REL_ROCK := $(PACKAGE_NAME)-$(SEMVER)-$(ROCKREV).src.rock
REL_ROCK_BIN := $(PACKAGE_NAME)-$(SEMVER)-$(ROCKREV).$(CARCH).rock
DEV_SPEC_NVIM := $(PACKAGE_NAME).nvim-dev-$(ROCKREV).rockspec
DEV_ROCK_NVIM := $(PACKAGE_NAME).nvim-dev-$(ROCKREV).src.rock
REL_SPEC_NVIM := rockspecs/$(PACKAGE_NAME).nvim-$(SEMVER)-$(ROCKREV).rockspec
REL_ROCK_NVIM := $(PACKAGE_NAME).nvim-$(SEMVER)-$(ROCKREV).src.rock
DEV_SPEC_SILE := $(PACKAGE_NAME).sile-dev-$(ROCKREV).rockspec
DEV_ROCK_SILE := $(PACKAGE_NAME).sile-dev-$(ROCKREV).src.rock
REL_SPEC_SILE := rockspecs/$(PACKAGE_NAME).sile-$(SEMVER)-$(ROCKREV).rockspec
REL_ROCK_SILE := $(PACKAGE_NAME).sile-$(SEMVER)-$(ROCKREV).src.rock
EXTRA_DIST += decasify.rockspec.in decasify.nvim.rockspec.in decasify.sile.rockspec.in
EXTRA_DIST += $(REL_SPEC) $(REL_SPEC_NVIM) $(REL_SPEC_SILE)
check: busted pytest
PHONY_DEVELOPER_TARGETS = rockspecs srcrocks rocks install-luarock busted pytest release-preview
.PHONY: $(PHONY_DEVELOPER_TARGETS)
if DEVELOPER_MODE
release-preview:
$(GITCLIFF) --unreleased
CHANGELOG.md:
$(GITCLIFF) -p $@ --unreleased -t $(TAG)
decasify-%.md: CHANGELOG.md
$(SED) -e '/^## \[$*\]/,/^## \[/!d' $< | \
$(SED) -e '1s/^/Release v$*\n/' | \
$(SED) -e '/^#/d' -e '/^$$/d' | \
$(SED) -e 's/\*//g' | \
$(SED) -e '1a\\' > $@
rockspecs: $(DEV_SPEC) $(DEV_SPEC_NVIM) $(DEV_SPEC_SILE) $(REL_SPEC) $(REL_SPEC_NVIM) $(REL_SPEC_SILE)
srcrocks: $(DEV_ROCK) $(DEV_ROCK_NVIM) $(DEV_ROCK_SILE) $(REL_ROCK) $(REL_ROCK_NVIM) $(REL_ROCK_SILE)
rocks: $(DEV_ROCK_BIN) $(REL_ROCK_BIN)
install-luarock: $(DEV_SPEC)
$(LUAROCKS) $(LUAROCKS_ARGS) make $<
busted: install-luarock
eval $$($(LUAROCKS) $(LUAROCKS_ARGS) path)
set -f; IFS=';'
packagepath=($${LUA_PATH})
packagecpath=($${LUA_CPATH})
$(BUSTED) -v --lpath="$${packagepath[*]};;" --cpath="$${packagecpath[*]};;" $(BUSTEDFLAGS) .
pytest:
$(UV) venv
$(UV) pip install pip
source .venv/bin/activate
$(MATURIN) develop
env PYTHONPATH=.venv/lib/python3.12/site-packages/decasify $(PYTEST)
define rockpec_template =
$(SED) -e "s/@""PACKAGE_NAME""@/$(PACKAGE_NAME)/g" \
-e "s/@SEMVER@/$(SEMVER)/g" \
-e "s/@ROCKREV@/$(ROCKREV)/g" \
-e "s/@TAG@/$(TAG)/g" \
$< > $@
endef
define dev_rockspec_props =
$(SED) -i \
-e '/tag =/s/tag/branch/' \
-e "1i -- DO NOT EDIT! Modify template $< and rebuild with \`make $@\`\n" \
$@
endef
define rel_rockspec_props =
$(SED) -i -e '/url = "git/a\ dir = "@PACKAGE_NAME@",' $@
endef
define downgrade_rockspec =
$(SED) -i \
-e '/rockspec_format/s/3.0/1.0/' \
-e '/issues_url/d' \
-e '/maintainer/d' \
-e '/labels/d' \
$@
endef
$(DEV_SPEC) $(DEV_SPEC_NVIM) $(DEV_SPEC_SILE): override private SEMVER := dev
$(DEV_SPEC) $(DEV_SPEC_NVIM) $(DEV_SPEC_SILE): override private TAG := master
$(DEV_SPEC): $(PACKAGE_NAME).rockspec.in
$(rockpec_template)
$(dev_rockspec_props)
$(DEV_SPEC_NVIM): $(PACKAGE_NAME).nvim.rockspec.in
$(rockpec_template)
$(dev_rockspec_props)
$(DEV_SPEC_SILE): $(PACKAGE_NAME).sile.rockspec.in
$(rockpec_template)
$(dev_rockspec_props)
$(REL_SPEC): $(PACKAGE_NAME).rockspec.in
$(rockpec_template)
$(rel_rockspec_props)
$(downgrade_rockspec)
$(REL_SPEC_NVIM): $(PACKAGE_NAME).nvim.rockspec.in
$(rockpec_template)
$(rel_rockspec_props)
$(REL_SPEC_SILE): $(PACKAGE_NAME).sile.rockspec.in
$(rockpec_template)
$(rel_rockspec_props)
$(downgrade_rockspec)
$(DEV_ROCK): $(DEV_SPEC)
$(LUAROCKS) $(LUAROCKS_ARGS) pack --sign -- $<
$(DEV_ROCK_BIN): $(DEV_SPEC)
$(LUAROCKS) $(LUAROCKS_ARGS) make --sign --pack-binary-rock -- $<
$(DEV_ROCK_NVIM): $(DEV_SPEC_NVIM)
$(LUAROCKS) $(LUAROCKS_ARGS) pack --sign -- $<
$(DEV_ROCK_SILE): $(DEV_SPEC_SILE)
$(LUAROCKS) $(LUAROCKS_ARGS) pack --sign -- $<
$(REL_ROCK): $(REL_SPEC)
$(LUAROCKS) $(LUAROCKS_ARGS) pack --sign -- $<
$(REL_ROCK_BIN): $(REL_SPEC)
$(LUAROCKS) $(LUAROCKS_ARGS) make --sign --pack-binary-rock -- $<
$(REL_ROCK_NVIM): $(REL_SPEC_NVIM)
$(LUAROCKS) $(LUAROCKS_ARGS) pack --sign -- $<
$(REL_ROCK_SILE): $(REL_SPEC_SILE)
$(LUAROCKS) $(LUAROCKS_ARGS) pack --sign -- $<
else !DEVELOPER_MODE
$(PHONY_DEVELOPER_TARGETS):
@: $(error "Please reconfigure using --enable-developer-mode to use developer tooling")
endif !DEVELOPER_MODE