mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-06 13:30:01 -04:00
- support both scanner.cc and scanner.c - allow complete override for (CFLAGS,CXXFLAGS,LDFLAGS) - add `clean` target - add `install` target - add windows support
50 lines
834 B
Makefile
50 lines
834 B
Makefile
#
|
|
# compile_parsers.makefile
|
|
#
|
|
|
|
CFLAGS ?= -std=c99 -fPIC
|
|
CXXFLAGS ?= -std=c++14 -fPIC
|
|
LDFLAGS ?= -Os -shared
|
|
SRC_DIR ?= ./src
|
|
DEST_DIR ?= ./dest
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
MKDIR ?= mkdir
|
|
RM ?= cmd /C rmdir /Q /S
|
|
CP ?= copy
|
|
TARGET ?= parser.dll
|
|
else
|
|
MKDIR ?= mkdir -p
|
|
RM ?= rm -rf
|
|
CP ?= cp
|
|
TARGET ?= parser.so
|
|
endif
|
|
|
|
ifneq ($(wildcard src/*.cc),)
|
|
LDFLAGS += -lstdc++
|
|
endif
|
|
|
|
OBJECTS := parser.o scanner.o
|
|
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(OBJECTS)
|
|
$(CC) $(OBJECTS) -o $(TARGET) $(LDFLAGS)
|
|
|
|
%.o: src/%.c
|
|
$(CC) -c $(CFLAGS) -I$(SRC_DIR) -o $@ $<
|
|
|
|
%.o: src/%.cc
|
|
$(CC) -c $(CXXFLAGS) -I$(SRC_DIR) -o $@ $<
|
|
|
|
clean:
|
|
$(RM) $(OBJECTS) $(TARGET)
|
|
|
|
install: $(TARGET)
|
|
$(MKDIR) $(DEST_DIR)
|
|
$(CP) $^ $(DEST_DIR)
|
|
|
|
uninstall:
|
|
$(RM) $(DEST_DIR)/$(TARGET)
|
|
|
|
.PHONY: clean uninstall
|