# -*- Makefile -*-
# 64-bit Windows, Intel C compiler

.PHONY: all test

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

CC = icl
CFLAGS = -I$(PATHDIR)/include

all: obstacle_shared.exe obstacle_static.exe

obstacle_shared.exe: obstacle.c Standalone_Path.c
	$(CC) $(CFLAGS) -DUSE_OUTPUT_INTERFACE -nologo -Fe$@ $^ $(PATHLIB)/path50.lib

# _PTH_STATIC_LIB implies PATH symbols declared without dllexport or WINAPI
obstacle_static.exe: obstacle.c Standalone_Path.c
	$(CC) -D_PTH_STATIC_LIB_ $(CFLAGS) -nologo -Fe$@ $^ $(PATHLIB)/path50_static.lib

test:
	rm -f path.opt
	./obstacle_shared.exe 6
	./obstacle_static.exe 6
	@echo "-------------------------------------------------------------"
	@echo "---- demo-size test passed: trying larger instances next ----"
	@echo "-------------------------------------------------------------"
	./obstacle_shared.exe 20
	./obstacle_static.exe 20
	@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.exe 20
	rm -f path.opt
endif
