#!/usr/bin/make -f

CPPFLAGS = $(shell pkg-config fflas-ffpack --cflags) -std=gnu++11 \
	-I/usr/include/fflas-ffpack/utils
LIBS = $(shell pkg-config fflas-ffpack --libs)

TESTS = test-lu             \
	test-det            \
	test-echelon        \
	test-rankprofiles   \
	test-compressQ      \
	test-fadd           \
	test-finit          \
	test-fscal          \
	test-fgemm          \
	test-fger           \
	test-ftrsm          \
	test-multifile      \
	regression-check

test-lu_SOURCES           = tests/test-lu.C
test-det_SOURCES          = tests/test-det.C
test-echelon_SOURCES      = tests/test-echelon.C
test-rankprofiles_SOURCES = tests/test-rankprofiles.C
test-compressQ_SOURCES    = tests/test-compressQ.C
test-fadd_SOURCES         = tests/test-fadd.C
test-finit_SOURCES        = tests/test-finit.C
test-fscal_SOURCES        = tests/test-fscal.C
test-fgemm_SOURCES        = tests/test-fgemm.C
test-fger_SOURCES         = tests/test-fger.C
test-ftrsm_SOURCES        = tests/test-ftrsm.C
test-multifile_SOURCES    = tests/test-multifile1.C tests/test-multifile2.C
regression-check_SOURCES  = tests/regression-check.C

all: $(TESTS)
	@PASS=0; \
	FAIL=0; \
	for TEST in $(TESTS); \
	do \
		./$$TEST > /dev/null ; \
		if [ $$? = 0 ]; \
		then \
		echo "PASS: $$TEST"; \
		PASS=$$(($$PASS+1)); \
	else \
		echo "FAIL: $$TEST"; \
		FAIL=$$(($$FAIL+1)); \
	fi; \
	done; \
	echo "========"; \
	echo "Summary:"; \
	echo "========"; \
	echo "PASS: $$PASS"; \
	echo "FAIL: $$FAIL"; \
	rm -f $(TESTS) fflas-fpack/config.h; \
	exit $$FAIL

$(TESTS):
	$(CXX) $(CPPFLAGS) $($@_SOURCES) $(LIBS) -o $@
