# -*- Makefile -*-

.PHONY: all test

PATHDIR = ../..
PATHLIB = $(PATHDIR)/lib

# additional libs - we expect them to be required only for static builds
XLIBS = -lgfortran

CC    = gcc
CFLAGS = -I$(PATHDIR)/include -m64

# all: obstacle_shared obstacle_static
# Linux support for static linking is waning
all: obstacle_shared

obstacle_shared: obstacle.c Standalone_Path.c
	$(CC) $(CFLAGS) -o $@ $^         -L$(PATHLIB) -lpath50 -lm

obstacle_static: obstacle.c Standalone_Path.c
	$(CC) $(CFLAGS) -o $@ $^ -static -L$(PATHLIB) -lpath50 $(XLIBS) -lm

test:
	rm -f path.opt
	./obstacle_shared 6
	[ -x ./obstacle_static ] && ./obstacle_static 6 || true
	@echo "-------------------------------------------------------------"
	@echo "---- demo-size test passed: trying larger instances next ----"
	@echo "-------------------------------------------------------------"
	./obstacle_shared 20
	[ -x ./obstacle_static ] && ./obstacle_static 20 || true
	@echo "-------------------------------------------------------------"
	@echo "----------------- testing LUSOL BLU library------------------"
	@echo "-------------------------------------------------------------"
	echo > path.opt
	echo "factorization_method blu_lusol" >> path.opt
	./obstacle_shared 20
	rm -f path.opt
ifeq ($(TESTUMFPACK),yes)
	@echo "-------------------------------------------------------------"
	@echo "------------------ testing UMFPACK library ------------------"
	@echo "-------------------------------------------------------------"
	echo > path.opt
	echo "factorization_method umfpack" >> path.opt
ifneq ($(UMFPACK_LIBNAME),/umfpack_libname/not/set)
	echo "factorization_library_name $(UMFPACK_LIBNAME)" >> path.opt
endif
	./obstacle_shared 20
	rm -f path.opt
endif
