|
diff --git a/Makefile b/Makefile
|
| ... |
| 7 |
CFLAGS = $(EXTRA_FLAGS) -Wall -Wextra -std=gnu99 -pedantic -O3 |
7 |
CFLAGS = $(EXTRA_FLAGS) -Wall -Wextra -std=gnu99 -pedantic -O3 |
| 8 |
LIBS = -I./vendor/tree-sitter/lib/include -lpthread |
8 |
LIBS = -I./vendor/tree-sitter/lib/include -lpthread |
| 9 |
|
9 |
|
|
|
10 |
LANGS = c cpp python php go rust javascript lua zig |
|
|
11 |
QUERY_HEADERS = $(patsubst %, queries/%.h, $(LANGS)) |
|
|
12 |
TS_SUBDIRS = tree-sitter $(patsubst %, tree-sitter-%, $(LANGS)) |
|
|
13 |
|
| 10 |
$(info VENDOR_DIRS: $(VENDOR_DIRS)) |
14 |
$(info VENDOR_DIRS: $(VENDOR_DIRS)) |
|
|
15 |
$(info LANGS: $(LANGS)) |
|
|
16 |
$(info QUERY_HEADERS: $(QUERY_HEADERS)) |
|
|
17 |
$(info TS_SUBDIRS: $(TS_SUBDIRS)) |
| 11 |
$(info SOURCES: $(SOURCES)) |
18 |
$(info SOURCES: $(SOURCES)) |
| 12 |
$(info TS_ALIBS: $(TS_ALIBS)) |
19 |
$(info TS_ALIBS: $(TS_ALIBS)) |
| 13 |
$(info CFLAGS: $(CFLAGS)) |
20 |
$(info CFLAGS: $(CFLAGS)) |
| 14 |
$(info LIBS: $(LIBS)) |
21 |
$(info LIBS: $(LIBS)) |
| 15 |
|
22 |
|
| 16 |
$(TARGET): |
23 |
all: $(QUERY_HEADERS) tsbuild $(TARGET) |
| 17 |
$(CC) $(CFLAGS) $(SOURCES) $(LIBS) -o $(TARGET) $(TS_ALIBS) |
|
|
| 18 |
|
24 |
|
| 19 |
all: queries tsbuild $(TARGET) |
25 |
tsbuild: |
|
|
26 |
$(MAKE) -C vendor/tree-sitter libtree-sitter.a |
|
|
27 |
@for lang in $(LANGS); do \ |
|
|
28 |
$(MAKE) -C vendor/tree-sitter-$$lang libtree-sitter-$$lang.a || true; \ |
|
|
29 |
done |
| 20 |
|
30 |
|
| 21 |
queries: |
31 |
$(TARGET): $(SOURCES) tsbuild |
| 22 |
xxd -i -n query_c queries/c.scm > queries/c.h |
32 |
$(CC) $(CFLAGS) $(SOURCES) $(LIBS) -o $(TARGET) $(shell find vendor -name "*.a") |
| 23 |
xxd -i -n query_cpp queries/cpp.scm > queries/cpp.h |
|
|
| 24 |
xxd -i -n query_python queries/python.scm > queries/python.h |
|
|
| 25 |
xxd -i -n query_php queries/php.scm > queries/php.h |
|
|
| 26 |
xxd -i -n query_go queries/go.scm > queries/go.h |
|
|
| 27 |
xxd -i -n query_rust queries/rust.scm > queries/rust.h |
|
|
| 28 |
xxd -i -n query_javascript queries/javascript.scm > queries/javascript.h |
|
|
| 29 |
xxd -i -n query_lua queries/lua.scm > queries/lua.h |
|
|
| 30 |
xxd -i -n query_zig queries/zig.scm > queries/zig.h |
|
|
| 31 |
|
33 |
|
| 32 |
tsbuild: |
34 |
queries/%.h: queries/%.scm |
| 33 |
-$(MAKE) -C vendor/tree-sitter -B |
35 |
xxd -i -n query_$* $< > $@ |
| 34 |
-$(MAKE) -C vendor/tree-sitter-c -B |
36 |
|
| 35 |
-$(MAKE) -C vendor/tree-sitter-cpp -B |
37 |
queries: $(QUERY_HEADERS) |
| 36 |
-$(MAKE) -C vendor/tree-sitter-python -B |
|
|
| 37 |
-$(MAKE) -C vendor/tree-sitter-php -B |
|
|
| 38 |
-$(MAKE) -C vendor/tree-sitter-go -B |
|
|
| 39 |
-$(MAKE) -C vendor/tree-sitter-rust -B |
|
|
| 40 |
-$(MAKE) -C vendor/tree-sitter-javascript -B |
|
|
| 41 |
-$(MAKE) -C vendor/tree-sitter-lua -B |
|
|
| 42 |
-$(MAKE) -C vendor/tree-sitter-zig -B |
|
|
| 43 |
|
38 |
|
| 44 |
valgrind: |
39 |
valgrind: |
| 45 |
valgrind -s --leak-check=full ./$(TARGET) |
40 |
valgrind -s --leak-check=full ./$(TARGET) |
| ... |
| 51 |
clang-format -i *.c *.h |
46 |
clang-format -i *.c *.h |
| 52 |
|
47 |
|
| 53 |
clean: |
48 |
clean: |
| 54 |
rm -f *.o $(TARGET) callgrind.out.* |
49 |
rm -f *.o $(TARGET) callgrind.out.* queries/*.h |
| 55 |
$(MAKE) -C vendor/tree-sitter -B clean |
50 |
@for dir in $(TS_SUBDIRS); do \ |
| 56 |
$(MAKE) -C vendor/tree-sitter-c -B clean |
51 |
$(MAKE) -C vendor/$$dir clean; \ |
| 57 |
$(MAKE) -C vendor/tree-sitter-cpp -B clean |
52 |
done |
| 58 |
$(MAKE) -C vendor/tree-sitter-python -B clean |
|
|
| 59 |
$(MAKE) -C vendor/tree-sitter-php -B clean |
|
|
| 60 |
$(MAKE) -C vendor/tree-sitter-go -B clean |
|
|
| 61 |
$(MAKE) -C vendor/tree-sitter-rust -B clean |
|
|
| 62 |
$(MAKE) -C vendor/tree-sitter-javascript -B clean |
|
|
| 63 |
$(MAKE) -C vendor/tree-sitter-lua -B clean |
|
|
| 64 |
$(MAKE) -C vendor/tree-sitter-zig -B clean |
|
|