#
# SuperLU Makefile for netsolve
#
COMPONENT = SUPERLU
TYPE = direct

info ::
	@echo "make clean, tester, libfiles, deletelibs"
	@echo "add USE_SUPERLU_DIST= to disable distributed part,"
	@echo "add USE_SUPERLU_SERIAL= to disable serial part."

NETSOLVE_LIB_FILES_for_SUPERLU_DRIVER = superlu_solve.o
NETSOLVE_LIB_FILES_for_SUPERLU_SERIAL = superlu_solve.o slu_serial.o
NETSOLVE_LIB_FILES_for_SUPERLU_DIST = superlu_solve.o slu_dist.o
NETSOLVE_LIB_FILES_for_SUPERLU = \
  $(NETSOLVE_LIB_FILES_for_SUPERLU_DRIVER) \
  $(NETSOLVE_LIB_FILES_for_SUPERLU_SERIAL) \
  $(NETSOLVE_LIB_FILES_for_SUPERLU_DIST)

NETSOLVE_TESTERS_for_SUPERLU = solve
NETSOLVE_TESTER_FILES_for_SUPERLU_DRIVER = test_solve.o
NETSOLVE_TESTER_FILES_for_SUPERLU_SERIAL = test_solve.o
NETSOLVE_TESTER_FILES_for_SUPERLU_DIST = test_solve.o
NETSOLVE_TESTER_FILES_for_SUPERLU = test_solve.o

include ../../../../../conf/Makefile.inc
include ../../Makefile.env
include $(NETSOLVE_SPARSE_DIR)/Makefile.has
include $(NETSOLVE_SPARSE_DIR)/Makefile.inc
include Makefile.lib
include $(NETSOLVE_SPARSE_DIR)/Makefile.rules

CFLAGS = $(GLOBAL_CFLAGS) \
    $(USE_SUPERLU_SERIAL) $(USE_SUPERLU_DIST) \
    -I$(SUPERLU_INCLUDE_DIR) \
    -I$(SUPERLU_DIST_INCLUDE_DIR) \
    -I$(NETSOLVE_AUX_DIR)

include $(NETSOLVE_AUX_DIR)/Makefile.lib

libfiles : libdir
	@if [ "$(USE_SUPERLU_SERIAL)" != "" ] ; \
	    then echo .... superlu serial lib ; \
	         $(MAKE) COMPONENT=SUPERLU_SERIAL netsolvelib ; fi
	@if [ "$(USE_SUPERLU_DIST)" != "" ] ; \
	    then echo .... superlu distributed lib ; \
	         $(MAKE) COMPONENT=SUPERLU_DIST   netsolvelib ; fi
#	@echo .... superlu driver lib
#	@$(MAKE) COMPONENT=SUPERLU_DRIVER netsolvelib

TEST_PARAMS = echo 1
include $(NETSOLVE_TEST_DIR)/Makefile.test
include $(NETSOLVE_TEST_DIR)/Makefile.lib
solve : $(NETSOLVE_TESTER_FILES_for_SUPERLU) \
		$(NETSOLVE_SUPERLU_LIB) $(SUPERLU_LIB_DEPEND) \
		$(NETSOLVE_LIB_for_AUX)
	@rm -f $@
	$(PURIFY) \
	$(LINKER) $(LDFLAGS) -o $@ test_$@.o \
	    $(NETSOLVE_SUPERLU_LIB_LINK) \
	    $(NETSOLVE_LIB_for_AUX) $(NETSOLVE_LIB_for_TESTER) \
	    $(NETSOLVE_SUPERLU_SUPPORT_LIB_LINK) \
	    $(LINK_AUX_LIB) \
	    $(MORE_LIBS)
	@chmod 755 $@


$(NETSOLVE_TESTER_FILES_for_SUPERLU) $(NETSOLVE_LIB_FILES_for_SUPERLU) : \
		netsolve_superlu.h \
		../aux/matrix_auxs.h

include ../Makefile.clean


