#
# Aztec Makefile for netsolve
#
COMPONENT = AZTEC
TYPE = iterative

info ::
	@echo "make clean, tester, libfiles, deletelibs"
	@echo "set DEBUG_SWITCH=yes/no for debug code to be included"
	@echo ; echo "for parallel gdb during tester, do" ;
	  echo "\"make LINK_PETSC=1\" (this requires Petsc. D'oh)" ; echo

NETSOLVE_LIB_FILES_for_AZTEC = aztec_itmeth.o aztec_auxs.o aztec_matrix_auxs.o
NETSOLVE_TESTERS_for_AZTEC = itmeth
NETSOLVE_TESTER_FILES_for_AZTEC = test_itmeth.o

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

LINK_PETSC = 0
CFLAGS = $(GLOBAL_CFLAGS) -I$(AZTEC_INCLUDE_DIR) \
  `if [ "$(LINK_PETSC)" = "1" ] ; then echo $(PETSC_INCLUDES) ; fi` \
  -I$(NETSOLVE_SPARSE_DIR)/aux -DLINK_PETSC=$(LINK_PETSC)

include $(NETSOLVE_AUX_DIR)/Makefile.lib
include $(NETSOLVE_TEST_DIR)/Makefile.test
include $(NETSOLVE_TEST_DIR)/Makefile.lib
libfiles : libdir
	@$(MAKE) netsolvelib
itmeth matprod : $(NETSOLVE_TESTER_FILES_for_AZTEC) \
		$(NETSOLVE_AZTEC_LIB) $(AZTEC_LIB_DEPEND) \
		$(NETSOLVE_LIB_for_AUX) $(NETSOLVE_LIB_for_TESTER)
	echo $(NETSOLVE_TESTER_FILES_for_AZTEC)
	rm -f $@
	$(PURIFY) \
	$(LINKER) $(LDFLAGS) -o $@ test_$@.o \
	    $(NETSOLVE_LIB_for_AZTEC) \
	    $(NETSOLVE_LIB_for_DRIVER_ITERATIVE_AUXS) \
	    $(NETSOLVE_LIB_for_AUX) $(NETSOLVE_LIB_for_TESTER)\
	    $(AZTEC_LIB_LINK) $(LINK_AUX_LIB) \
	    $(MORE_LIBS)
	chmod 755 $@

$(NETSOLVE_LIB_FILES_for_AZTEC) : ../sparse_globals.h
$(NETSOLVE_TESTER_FILES_for_AZTEC) $(NETSOLVE_LIB_FILES_for_AZTEC) : \
		aztec_auxs.h netsolve_aztec.h \
		../aux/parallel_auxs.h ../aux/matrix_auxs.h
clean ::
	@/bin/rm -f itmeth matprod

include ../Makefile.clean

