55 lines
1.3 KiB
Makefile
55 lines
1.3 KiB
Makefile
.PHONY: all clean install install-dev test test-c test-scm valgrind
|
|
|
|
### install configuration ###
|
|
CPP = c++
|
|
RM ?= rm -f
|
|
INSTALL ?= install
|
|
MKDIR ?= $(INSTALL) -d
|
|
SYMLINK ?= ln -s
|
|
|
|
PREFIX ?= /usr/local
|
|
BINDIR ?= $(PREFIX)/bin
|
|
LIBDIR ?= $(PREFIX)/lib
|
|
SOLIBDIR ?= $(PREFIX)/lib
|
|
INCDIR ?= $(PREFIX)/include
|
|
MODDIR ?= $(PREFIX)/share
|
|
BINMODDIR ?= $(PREFIX)/lib
|
|
MANDIR ?= $(PREFIX)/share/man/man1
|
|
|
|
### library configuration ###
|
|
LIB_NAME = tree_sitter
|
|
DIR = $(shell pwd)
|
|
HEADERS = $(wildcard include/*.h)
|
|
SOURCES = $(wildcard src/*.cpp)
|
|
TESTS = $(wildcard spec/*.cpp)
|
|
OBJECTS = $(foreach file, $(C_SOURCES), $(basename $(file)).o)
|
|
LIB_FILE = lib$(LIB_NAME)$(SO)
|
|
TEST_BIN = spec/run.out
|
|
|
|
### build configuration ###
|
|
CFLAGS ?= -Wall -std=c++11 -stdlib=libc++ -g -m64
|
|
|
|
### targets ###
|
|
all: $(LIB_FILE)
|
|
|
|
src/%.o: src/%.cpp
|
|
$(CPP) $(CFLAGS) -c $< -o $@
|
|
|
|
test: $(TEST_BIN)
|
|
./$<
|
|
|
|
$(TEST_BIN): $(TESTS) $(SOURCES)
|
|
$(CPP) $(CFLAGS) -Ispec/externals/igloo -Isrc -L. $^ -o $@
|
|
|
|
# $(TEST_BIN): $(LIB_FILE) $(C_TESTS)
|
|
# $(CPP) $(CFLAGS) -Ispec/externals/igloo -Isrc -L. -l$(LIB_NAME) test/c/_runner.cc -o $@
|
|
|
|
debug: $(TEST_BIN)
|
|
gdb $<
|
|
|
|
valgrind: $(TEST_BIN)
|
|
valgrind --track-origins=yes $(TEST_BIN)
|
|
|
|
clean:
|
|
$(RM) $(OBJECTS) $(LIB_FILE) $(TEST_BIN)
|
|
|