
# sophia test-suite makefile
#

ifdef ENABLE_COVERAGE
TEST_COVERAGE = --coverage
else
TEST_COVERAGE =
endif

TEST_DEBUG   = -g -O0 -Wall
TEST_CFLAGS  = $(CFLAGS_INCLUDE) $(TEST_DEBUG) -I. -I../sophia -pthread
TEST_LDFLAGS = $(LDFLAGS) $(TEST_DEBUG) ../sophia/libsophia.a -pthread -lm $(TEST_COVERAGE)
TEST_LOGDIR  = logdir
TEST_DIR     = dir
TEST_GDB     = gdb
TEST_GREP    = grep
TEST_BINARY  = run

all: build
.c.o:
	$(E) "cc   $<"
	$(Q) $(CC) $(TEST_CFLAGS) -c $< -o $@
build: clean $(OBJECTS)
	$(E) "ld   $(TEST_BINARY)"
	$(Q) $(CC) $(OBJECTS) $(TEST_LDFLAGS) -o $(TEST_BINARY)
clean:
	$(Q) $(RM) -f $(TEST_BINARY)
	$(Q) $(RM) -f $(OBJECTS)
cleanup: clean
	$(Q) $(RM) -fr $(TEST_DIR) $(TEST_LOGDIR)
test_valgrind:
	$(Q) $(VALGRIND) ./$(TEST_BINARY)
test:
	$(Q) $(TEST_GDB) -q -return-child-result -batch -ex "run" -ex "bt" ./$(TEST_BINARY)

.PHONY: test

# vim: syntax=make
