-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathMakefile.header
More file actions
115 lines (92 loc) · 3.29 KB
/
Makefile.header
File metadata and controls
115 lines (92 loc) · 3.29 KB
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
# -*- Makefile -*-
TARGET_NAME = superbol-vscode-platform
MAIN_SRCDIR ?= src
STUDIO = superbol_vscode_platform
STUDIO_SRCDIR = $(MAIN_SRCDIR)/vscode/superbol-vscode-platform
GNUCOBOL_SRCDIR = import/gnucobol
SUPERBOL_LSP_PKG = lsp/superbol-free
JS_OUTDIR = _out
JS_TARGETS = $(addprefix $(JS_OUTDIR)/,superbol-vscode-platform-bundle.js \
superbol-vscode-gdb.js)
# Emacs lsp-mode source directory (https://github.com/emacs-lsp/lsp-mode):
# (could be a submodule)
LSP_MODE_SRCDIR ?= ../lsp-mode
MORE_DEV_OPAM_FILES := vendors/autofonce/opam/*.opam
AUTOFONCE_EXE = dune exec -- vendors/autofonce/src/autofonce/main.exe
# ---
include Makefile.vsix-rules
# ---
# js assembly
$(JS_OUTDIR)/superbol-vscode-platform-bundle.js: \
src/vscode/superbol-vscode-platform/bundle.js
@mkdir -p $(dir $@);
cp -f $< $@
$(JS_OUTDIR)/superbol-vscode-gdb.js: \
src/vscode/superbol-vscode-platform/gdb.js
@mkdir -p $(dir $@);
cp -f $< $@
# ---
.PHONY: opam-cross
# Generates opam files for cross-compilation. We don't generate
# specific files for js-only packages. As a result we also forcibly
# remove a dependency to `superbol-vscode-platform` (which is js-only)
# from the platform-specific version of `superbol-studio-oss`. This is
# ok as those files are only there to grab external dependencies
# before cross-compiling.
opam-cross:
opam exec -- drom dep --cross osx
rm -f opam/osx/*-js-*.opam
rm -f opam/osx/vscode-debug*.opam
rm -f opam/osx/*-vscode-*.opam
sed -i '/"superbol-vscode-platform-osx"/ d' \
opam/osx/superbol-studio-oss-osx.opam
opam exec -- drom dep --cross windows
rm -f opam/windows/*-js-*.opam
rm -f opam/windows/vscode-debug*.opam
rm -f opam/windows/*-vscode-*.opam
sed -i '/"superbol-vscode-platform-windows"/ d' \
opam/windows/superbol-studio-oss-windows.opam
# emacs-lsp:
emacs/lsp-superbol-customs.el: $(LSP_MODE_SRCDIR) package.json
emacs --batch > "$@" \
--load "$(LSP_MODE_SRCDIR)/scripts/lsp-generate-settings.el" \
--eval "(dolist (l (lsp-generate-settings \"package.json\")) (print l))" \
&& echo "Generated $@" 1>&2 \
|| rm -f "$@"
# 8.0.1
# --eval "(princ (lsp-generate-settings \"package.json\" 'lsp-superbol))" \
# --eval '(princ "\n")' \
.PHONY: test-promote
test-promote: test-syntax-promote test-utf8-promote
opam exec -- dune runtest --auto-promote
.PHONY: test-syntax
test-syntax: superbol-lsp-server
\! opam exec -- $(AUTOFONCE_EXE) 2>/dev/null || \
opam exec -- $(AUTOFONCE_EXE) run -t syntax
.PHONY: test-syntax-promote
test-syntax-promote:
-$(MAKE) test-syntax # To avoid promoting past tests
\! opam exec -- $(AUTOFONCE_EXE) 2>/dev/null || \
opam exec -- $(AUTOFONCE_EXE) promote -t syntax --apply
.PHONY: test-utf8
test-utf8: superbol-lsp-server
\! opam exec -- $(AUTOFONCE_EXE) 2>/dev/null || \
opam exec -- $(AUTOFONCE_EXE) run -t utf8
.PHONY: test-utf8-promote
test-utf8-promote:
-$(MAKE) test-utf8 # To avoid promoting past tests
\! opam exec -- $(AUTOFONCE_EXE) 2>/dev/null || \
opam exec -- $(AUTOFONCE_EXE) promote -t utf8 --apply
.PHONY: test-deps
test-deps:
opam install opam/*.opam --deps-only --with-test
MASTER_REMOTE ?= origin
.PHONY: build-master
build-master:
git checkout master
git checkout .
git pull $(MASTER_REMOTE) master
git submodule update --recursive --init
$(MAKE) build-deps
$(MAKE) clean
$(MAKE)