diff options
Diffstat (limited to 'src/tools/mklsp.sh')
| -rwxr-xr-x | src/tools/mklsp.sh | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/tools/mklsp.sh b/src/tools/mklsp.sh index 5edf14a..9bab550 100755 --- a/src/tools/mklsp.sh +++ b/src/tools/mklsp.sh @@ -4,11 +4,19 @@ # src/lsp/server.zc. its memory map is sized to that program by src/tools/automap.sh, # so the genome slot is as big as it needs to be and no bigger. set -e +case "${1:-}" in + --help|-h) printf '%s\n' 'usage: src/tools/mklsp.sh [OUTDIR]' 'builds the native language server in OUTDIR/zclsp; defaults to build/lsp.' 'environment: CC selects the c compiler.'; exit 0 ;; + -*) echo "mklsp: unknown option $1; use --help for usage" >&2; exit 2 ;; +esac cd "$(dirname "$0")/../.." O=${1:-build/lsp}; CC=${CC:-gcc} # DOCS=1: the image carries the doc comments, so hover can show what a name is for -DOCS=1 bash src/tools/automap.sh lsp "$O" src/lsp/server.zc >/dev/null +mkdir -p "$O" +bash src/tools/embed.sh all --check || bash src/tools/embed.sh all +# the image carries its own sources (for go to definition into a built-in) +bash src/tools/embed.sh lsp "$O/embed.zc" +DOCS=1 bash src/tools/automap.sh lsp "$O" src/lsp/server.zc "$O/embed.zc" >/dev/null rm -rf "$O/src"; mkdir -p "$O/src" cp src/core/core.c src/core/io_linux.c src/core/fops.h src/core/bops.h src/core/stack.h "$O/memmap.h" "$O/src/" cp "$O/genome.h" "$O/src/lsp_genome.h" -$CC -O2 -w -fwrapv -DJTYPE=int -DZY_SANDBOX -DUSE_LSP_GENOME "$O/src/core.c" "$O/src/io_linux.c" -I"$O/src" -o "$O/zclsp" +$CC -O2 -w -fwrapv -pthread -DJTYPE=int -DZY_SANDBOX -DUSE_LSP_GENOME "$O/src/core.c" "$O/src/io_linux.c" -I"$O/src" -o "$O/zclsp" |
