tree-sitter/Makefile
2013-11-05 22:15:19 -08:00

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)