This repository has been archived by the owner on Nov 27, 2022. It is now read-only.
forked from benbeshara/nova-cplusplus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
57 lines (42 loc) · 1.61 KB
/
Makefile
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
##
## Makefile for Nova ClangD extension.
## This builds the tree-sitter dynamic libraries for C and C++.
##
EXT_DIR = ClangD.novaextension
SYNTAX_DIR = $(EXT_DIR)/Syntaxes
APPBUNDLE = /Applications/Nova.app
FRAMEWORKS = "${APPBUNDLE}/Contents/Frameworks/"
CODESIGN = codesign
CP = cp
C_SRC_DIR = tree-sitter-c/src
C_OBJS = c_parser.o
C_LIBNAME = libtree-sitter-c.dylib
C_DYLIB = $(SYNTAX_DIR)/$(C_LIBNAME)
CPP_SRC_DIR = tree-sitter-cpp/src
CPP_OBJS = cpp_parser.o cpp_scanner.o
CPP_LIBNAME = libtree-sitter-cpp.dylib
CPP_DYLIB = $(SYNTAX_DIR)/$(CPP_LIBNAME)
OSXFLAGS = -arch arm64 -arch x86_64 -mmacosx-version-min=11.6
CFLAGS = -O3 -Wall -Wextra -Wno-unused -Wno-unused-parameter -fPIC
CXXFLAGS = -O3 -Wall -Wextra -Wno-unused -Wno-unused-parameter -fPIC
LDFLAGS=-F${FRAMEWORKS} -framework SyntaxKit -rpath @loader_path/../Frameworks
LINKSHARED := $(LINKSHARED)-dynamiclib -Wl,
LINKSHARED := $(LINKSHARED)-install_name,/lib/$(LIBNAME),-rpath,@executable_path/../Frameworks
all: $(C_DYLIB) $(CPP_DYLIB)
c_%.o: $(C_SRC_DIR)/%.c
$(CC) $(OSXFLAGS) $(CFLAGS) -I $(C_SRC_DIR) -c -o $@ $<
cpp_%.o: $(CPP_SRC_DIR)/%.c
$(CC) $(OSXFLAGS) $(CFLAGS) -I $(CPP_SRC_DIR) -c -o $@ $<
cpp_%.o: $(CPP_SRC_DIR)/%.cc
$(CXX) $(OSXFLAGS) $(CXXFLAGS) -I $(CPP_SRC_DIR) -c -o $@ $<
$(C_DYLIB): $(C_OBJS)
$(CC) $(OSXFLAGS) -I $(C_SRC_DIR) $(LDFLAGS) $(LINKSHARED) $^ $(LDLIBS) -o $@
$(CODESIGN) -s - $@
$(CPP_DYLIB): $(CPP_OBJS)
$(CXX) $(OSXFLAGS) -I $(CPP_SRC_DIR) $(LDFLAGS) $(LINKSHARED) $^ $(LDLIBS) -lc++ -o $@
$(CODESIGN) -s - $@
clean:
rm -f $(C_OBJS) $(CPP_OBJS)
clobber: clean
rm -f $(C_DYLIB) $(CPP_DYLIB)
.PHONY: all install clean