#
# Arpack Makefile for netsolve
#
COMPONENT = ARPACK

info:
	@echo "make clean, make install"

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

CFLAGS = $(GLOBAL_CFLAGS) \
    -DNO_MPI \
    $(MPI_INCLUDES) -I$(NETSOLVE_EIGEN_DIR)

NETSOLVE_ARPACK_LIB_FILES = arpack_standard.o
NETSOLVE_ARPACK_TESTER_FILES = test_standard.o

install libfiles : libdir
	$(MAKE) $(NETSOLVE_ARPACK_LIB)
	$(MAKE) make_speig
tester :
	$(MAKE) $(NETSOLVE_ARPACK_LIB)
	/bin/rm -f standard ; $(MAKE) standard
SPEIG_ROUTINES  = dnstev.o dspstev.o Dinterface.o Zinterface.o dmvm.o dreadhb.o
#SPEIG_DIR = $(ARPACK_DIR)/../SPEIG
SPEIG_DIR = $(NETSOLVE_EIGEN_DIR)/arpack/SPEIG
make_speig :
	cd $(SPEIG_DIR) ; make $(SPEIG_ROUTINES)
	for file in $(SPEIG_ROUTINES) ; do \
	  ar r $(NETSOLVE_ARPACK_LIB) $(SPEIG_DIR)/$$file ; done
	ranlib $(NETSOLVE_ARPACK_LIB)
	cd $(SPEIG_DIR) ; /bin/rm -f *.o *.a
$(NETSOLVE_ARPACK_LIB) : $(NETSOLVE_ARPACK_LIB_FILES:.o=.c)
	$(MAKE) $(NETSOLVE_ARPACK_LIB_FILES)
	for file in $(NETSOLVE_ARPACK_LIB_FILES) ; do \
	  ar r $@ $$file ; done
	ranlib $@
	rm -f $(NETSOLVE_ARPACK_LIB_FILES)
standard : $(NETSOLVE_ARPACK_TESTER_FILES) $(NETSOLVE_ARPACK_LIB)
	@echo ; echo ".. linking .." ; echo
	$(FC) -o $@ test_$@.o \
		$(NETSOLVE_ARPACK_LIB) $(NETSOLVE_LIB_for_AUX) \
		$(ARPACK_LIB_LINK) $(SUPERLU_LIB_LINK) \
		$(LAPACK_LIB_LINK) $(BLAS_LIB_LINK) $(F2C_LIB_LINK) -lm
	chmod 755 $@

clean ::
	@/bin/rm -f standard $(NETSOLVE_ARPACK_LIB)
include ../Makefile.clean
