1
+ # #######
2
+ #
3
+ # Tree-Sitter Base and Common Language Parsers
4
+ #
5
+
6
+ CFLAGS =/nologo /FC /O2 /GL /Ob3 /Zc:inline /Gm- /Oi /Z7 /Gy /diagnostics:column /Icsharp-tree-sitter/tree-sitter/tree-sitter/lib/include
7
+ LFLAGS =/def:csharp-tree-sitter/tree-sitter/$(@B ) .def /incremental:no /debug /OPT:REF /OPT:ICF /LTCG
8
+ LFLAGS2 =/def:$(@B ) .def /incremental:no /debug /OPT:REF /OPT:ICF /LTCG
9
+
10
+ BIN =out
11
+
12
+ DLLS =\
13
+ $(BIN ) /tree-sitter.dll \
14
+ $(BIN ) /tree-sitter-cpp.dll \
15
+ $(BIN ) /tree-sitter-c-sharp.dll \
16
+ $(BIN ) /tree-sitter-rust.dll \
17
+
18
+ all : dirs $(DLLS )
19
+
20
+ dirs :
21
+ @if not exist $(BIN ) \n ul mkdir $(BIN )
22
+
23
+ # #######
24
+ #
25
+ # Tree-Sitter Base Library
26
+ #
27
+ $(BIN ) /tree-sitter.obj : \
28
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/alloc.c \
29
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/get_changed_ranges.c \
30
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/language.c \
31
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/lexer.c \
32
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/lib.c \
33
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/node.c \
34
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/parser.c \
35
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/query.c \
36
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/stack.c \
37
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/subtree.c \
38
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/tree.c \
39
+ csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/tree_cursor.c
40
+ cl $(CFLAGS ) /Fo:$@ \
41
+ /Icsharp-tree-sitter/tree-sitter/tree-sitter/lib/src /Icsharp-tree-sitter/tree-sitter/tree-sitter/lib/src/unicode \
42
+ /c csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/lib.c
43
+
44
+ $(BIN ) /tree-sitter.dll : $(BIN ) /tree-sitter.obj
45
+ cl /LD $(CFLAGS ) /Fe:$@ $* * /link $(LFLAGS )
46
+
47
+
48
+ # #######
49
+ #
50
+ # C++
51
+ #
52
+ $(BIN ) /tree-sitter-cpp-parser.obj : csharp-tree-sitter/tree-sitter/tree-sitter-cpp/src/parser.c
53
+ cl $(CFLAGS ) /Fo:$@ /Icsharp-tree-sitter/tree-sitter/tree-sitter-cpp/src/include /c $* *
54
+
55
+ $(BIN ) /tree-sitter-cpp-scanner.obj : csharp-tree-sitter/tree-sitter/tree-sitter-cpp/src/scanner.c
56
+ cl $(CFLAGS ) /Fo:$@ /Icsharp-tree-sitter/tree-sitter/tree-sitter-cpp/src/include /c $* *
57
+
58
+ $(BIN ) /tree-sitter-cpp.dll : $(BIN ) /tree-sitter-cpp-parser.obj $(BIN ) /tree-sitter-cpp-scanner.obj
59
+ cl /LD $(CFLAGS ) /Fe:$@ $* * /link $(LFLAGS )
60
+
61
+ # #######
62
+ #
63
+ # C#
64
+ #
65
+ $(BIN ) /tree-sitter-c-sharp-parser.obj : tree-sitter-c-sharp/src/parser.c
66
+ cl $(CFLAGS ) /Fo:$@ /Itree-sitter-c-sharp/src/include /c $* *
67
+
68
+ $(BIN ) /tree-sitter-c-sharp-scanner.obj : tree-sitter-c-sharp/src/scanner.c
69
+ cl $(CFLAGS ) /Fo:$@ /Itree-sitter-c-sharp/src/include /c $* *
70
+
71
+ $(BIN ) /tree-sitter-c-sharp.dll : $(BIN ) /tree-sitter-c-sharp-parser.obj $(BIN ) /tree-sitter-c-sharp-scanner.obj
72
+ cl /LD $(CFLAGS ) /Fe:$@ $* * /link $(LFLAGS2 )
73
+
74
+ # #######
75
+ #
76
+ # Rust
77
+ #
78
+ $(BIN ) /tree-sitter-rust-parser.obj : tree-sitter-rust/src/parser.c
79
+ cl $(CFLAGS ) /Fo:$@ /Itree-sitter-rust/src/include /c $* *
80
+
81
+ $(BIN ) /tree-sitter-rust-scanner.obj : tree-sitter-rust/src/scanner.c
82
+ cl $(CFLAGS ) /Fo:$@ /Itree-sitter-rust/src/include /c $* *
83
+
84
+ $(BIN ) /tree-sitter-rust.dll : $(BIN ) /tree-sitter-rust-parser.obj $(BIN ) /tree-sitter-rust-scanner.obj
85
+ cl /LD $(CFLAGS ) /Fe:$@ $* * /link $(LFLAGS2 )
86
+
87
+ # #######
88
+ #
89
+ # Clean
90
+ #
91
+ clean :
92
+ -del * .obj $(BIN ) \* .obj 2> nul
93
+ -del $(BIN ) \t ree-sitter* .dll $(BIN ) \t ree-sitter* .exp $(BIN ) \t ree-sitter* .lib $(BIN ) \t ree-sitter* .pdb 2> nul
94
+ -del tree-sitter* .dll tree-sitter* .exp tree-sitter* .lib tree-sitter* .pdb 2> nul
95
+ -del $(BIN ) \x red.* $(BIN ) \t est.exe $(BIN ) \t est.exp $(BIN ) \t est.pdb $(BIN ) \t est.lib 2> nul
96
+ -del * ~ 2> nul
97
+ @-echo.
98
+ @-echo.
0 commit comments