1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
PARSER_LANG = bash
BASE_SRC_DIR = /usr/src/tree-sitter/$(PARSER_LANG)/@PARSER_VER@/parser/src
OBJ_DIR ?= $(CURDIR)/debian/.ts-parser-$(PARSER_LANG)
SOURCES = $(BASE_SRC_DIR)/parser.c $(BASE_SRC_DIR)/scanner.c
OBJECTS = $(patsubst $(BASE_SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SOURCES))
CFLAGS += $(shell pkg-config --cflags tree-sitter) -I $(BASE_SRC_DIR)
LDFLAGS += $(shell pkg-config --libs tree-sitter)
all: $(OBJ_DIR)/$(PARSER_LANG).so
$(OBJ_DIR):
mkdir -p $@
$(OBJ_DIR)/%.o: $(BASE_SRC_DIR)/%.c $(OBJ_DIR)
$(CC) $(CPPFLAGS) $(CFLAGS) -std=c11 -fPIC -c -o $@ $<
$(OBJ_DIR)/$(PARSER_LANG).so: $(OBJECTS)
$(CC) $(CPPFLAGS) $(LDFLAGS) -fPIC -shared -o $@ $^
|