1- VERSION := 0.21.2
1+ ifeq ($(OS ) ,Windows_NT)
2+ $(error Windows is not supported)
3+ endif
4+
5+ VERSION := 0.23.0
6+
7+ LANGUAGE_NAME := tree-sitter-typescript
28
39# repository
410SRC_DIR := src
1521
1622TS ?= tree-sitter
1723
18- # ABI versioning
19- SONAME_MAJOR := $(word 1,$(subst ., ,$(VERSION ) ) )
20- SONAME_MINOR := $(word 2,$(subst ., ,$(VERSION ) ) )
21-
2224# install directory layout
2325PREFIX ?= /usr/local
2426INCLUDEDIR ?= $(PREFIX ) /include
@@ -34,27 +36,29 @@ OBJS := $(patsubst %.c,%.o,$(PARSER) $(EXTRAS))
3436ARFLAGS ?= rcs
3537override CFLAGS += -I$(SRC_DIR ) -std=c11 -fPIC
3638
39+ # ABI versioning
40+ SONAME_MAJOR := $(word 1,$(subst ., ,$(VERSION ) ) )
41+ SONAME_MINOR := $(shell sed -n 's/#define LANGUAGE_VERSION //p' $(PARSER ) )
42+
3743# OS-specific bits
38- ifeq ($(OS ) ,Windows_NT)
39- $(error "Windows is not supported")
40- else ifeq ($(shell uname),Darwin)
44+ ifeq ($(shell uname) ,Darwin)
4145SOEXT = dylib
42- SOEXTVER_MAJOR = $(SONAME_MAJOR).dylib
43- SOEXTVER = $(SONAME_MAJOR).$(SONAME_MINOR).dylib
46+ SOEXTVER_MAJOR = $(SONAME_MAJOR).$(SOEXT)
47+ SOEXTVER = $(SONAME_MAJOR).$(SONAME_MINOR).$(SOEXT)
4448LINKSHARED := $(LINKSHARED)-dynamiclib -Wl,
4549ifneq ($(ADDITIONAL_LIBS),)
4650LINKSHARED := $(LINKSHARED)$(ADDITIONAL_LIBS),
4751endif
48- LINKSHARED := $(LINKSHARED)-install_name,$(LIBDIR)/lib$(LANGUAGE_NAME).$(SONAME_MAJOR).dylib ,-rpath,@executable_path/../Frameworks
52+ LINKSHARED := $(LINKSHARED)-install_name,$(LIBDIR)/lib$(LANGUAGE_NAME).$(SOEXTVER) ,-rpath,@executable_path/../Frameworks
4953else
5054SOEXT = so
51- SOEXTVER_MAJOR = so .$(SONAME_MAJOR)
52- SOEXTVER = so .$(SONAME_MAJOR).$(SONAME_MINOR)
55+ SOEXTVER_MAJOR = $(SOEXT) .$(SONAME_MAJOR)
56+ SOEXTVER = $(SOEXT) .$(SONAME_MAJOR).$(SONAME_MINOR)
5357LINKSHARED := $(LINKSHARED)-shared -Wl,
5458ifneq ($(ADDITIONAL_LIBS),)
5559LINKSHARED := $(LINKSHARED)$(ADDITIONAL_LIBS)
5660endif
57- LINKSHARED := $(LINKSHARED)-soname,lib$(LANGUAGE_NAME).so.$(SONAME_MAJOR )
61+ LINKSHARED := $(LINKSHARED)-soname,lib$(LANGUAGE_NAME).$(SOEXTVER )
5862endif
5963ifneq ($(filter $(shell uname) ,FreeBSD NetBSD DragonFly) ,)
6064PCLIBDIR := $(PREFIX)/libdata/pkgconfig
@@ -81,14 +85,14 @@ $(LANGUAGE_NAME).pc: ../bindings/c/$(LANGUAGE_NAME).pc.in
8185-e ' s|=$(PREFIX)|=$${prefix}|' \
8286-e ' s|@PREFIX@|$(PREFIX)|' $< > $@
8387
84- $(PARSER ) : grammar.js
85- $(TS ) generate --no-bindings
88+ $(PARSER ) : $( SRC_DIR ) / grammar.json
89+ $(TS ) generate --no-bindings $^
8690
8791install : all
8892install -d ' $(DESTDIR)$(INCLUDEDIR)' /tree_sitter ' $(DESTDIR)$(PCLIBDIR)' ' $(DESTDIR)$(LIBDIR)'
89- install -m644 ../ bindings/c/$(LANGUAGE_NAME ) .h ' $(DESTDIR)$(INCLUDEDIR)' /tree_sitter/$(LANGUAGE_NAME ) .h
93+ install -m644 bindings/c/$(LANGUAGE_NAME ) .h ' $(DESTDIR)$(INCLUDEDIR)' /tree_sitter/$(LANGUAGE_NAME ) .h
9094install -m644 $(LANGUAGE_NAME ) .pc ' $(DESTDIR)$(PCLIBDIR)' /$(LANGUAGE_NAME ) .pc
91- install -m755 lib$(LANGUAGE_NAME ) .a ' $(DESTDIR)$(LIBDIR)' /lib$(LANGUAGE_NAME ) .a
95+ install -m644 lib$(LANGUAGE_NAME ) .a ' $(DESTDIR)$(LIBDIR)' /lib$(LANGUAGE_NAME ) .a
9296install -m755 lib$(LANGUAGE_NAME ) .$(SOEXT ) ' $(DESTDIR)$(LIBDIR)' /lib$(LANGUAGE_NAME ) .$(SOEXTVER )
9397ln -sf lib$(LANGUAGE_NAME ) .$(SOEXTVER ) ' $(DESTDIR)$(LIBDIR)' /lib$(LANGUAGE_NAME ) .$(SOEXTVER_MAJOR )
9498ln -sf lib$(LANGUAGE_NAME ) .$(SOEXTVER_MAJOR ) ' $(DESTDIR)$(LIBDIR)' /lib$(LANGUAGE_NAME ) .$(SOEXT )
0 commit comments