
srcdir = .
top_builddir =  ..
abs_top_builddir = /home/jacob/Job/Prace/kernel_D_soft/kernel_D_update2
top_srcdir = ..
abs_top_srcdir = /home/jacob/Job/Prace/kernel_D_soft/kernel_D_update2
subdir = solver
builddir = .

CFLAGS = -std=c99 -fopenmp  -pedantic -Wall 
DEPFLAGS = -MM
LDFLAGS =  -L${HOME}/lib -L${top_builddir}/lib 
DEFS = -DHAVE_CONFIG_H
OPTARGS = -O

AR = ar
RANLIB = ranlib
CC = mpicc
CCDEP = gcc
CCLD = $(CC)
LINK = $(CCLD) $(CFLAGS) $(LDFLAGS) ${OPTARGS} -o $@
LEX = flex
AUTOCONF = autoconf
DEFS = -DHAVE_CONFIG_H

INCLUDES =  -I$(HOME)/include/ -I. -I${abs_top_builddir}/  -I${abs_top_srcdir}/ -I/include/ -I/include/
LDADD =
#COMPILE = ${CC} ${DEFS} $(INCLUDES) ${CFLAGS}
COMPILE = ${CC} ${DEFS} ${INCLUDES} ${CFLAGS} ${OPTARGS}

LIBRARIES = libsolver
libsolver_TARGETS = bicgstab_complex gmres incr_eigcg eigcg restart_X ortho \
	            cgs_real cg_her mr chrono_guess \
	            bicgstabell bicgstab2 eigenvalues fgmres \
	            gcr gcr4complex diagonalise_general_matrix \
	            quicksort gmres_dr lu_solve jdher Msap \
              jdher_bi gram-schmidt eigenvalues_bi \
              bicgstab_complex_bi cg_her_bi pcg_her \
              sub_low_ev cg_her_nd poly_precon \
              generate_dfl_subspace dfl_projector \
              cg_mms_tm cg_mms_tm_nd mixed_cg_mms_tm_nd \
              solver_field sumr mixed_cg_her index_jd \
							rg_mixed_cg_her rg_mixed_cg_her_nd \
              dirac_operator_eigenvectors	spectral_proj \
              jdher_su3vect cg_her_su3vect eigenvalues_Jacobi monomial_solve

libsolver_OBJECTS = $(addsuffix .o, ${libsolver_TARGETS})

# default rule

all: Makefile dep libsolver.a

# rules for debugging
debug all-debug: CFLAGS := $(CFLAGS) -g
debug all-debug: all

# rules for profiling information
profile all-profile: CFLAGS := $(filter-out -fomit-frame-pointer,${CFLAGS}) 
profile all-profile: all


#include dep rules

-include $(addsuffix .d,${libsolver_TARGETS})

include ${top_srcdir}/Makefile.global

# rule to compile objects

%.o: ${srcdir}/%.c %.d Makefile ${abs_top_builddir}/config.h
	$(COMPILE) -c $<


# rule to make liblinalg

libsolver.a: ${libsolver_OBJECTS} Makefile
	@rm -f libsolver.a
	@${AR} cru libsolver.a $(libsolver_OBJECTS)
	@$(RANLIB) libsolver.a
	@cp libsolver.a ${top_builddir}/lib/libsolver.a

# rule to generate .d files

$(addsuffix .d,$(libsolver_TARGETS)): %.d: ${srcdir}/%.c Makefile
	@$(CCDEP) ${DEFS} ${DEPFLAGS} ${INCLUDES} $< > $@

# rule to make dependencies

dep: ${addsuffix .d, ${libsolver_TARGETS}}

# rules to clean

compile-clean: Makefile
	rm -f ${$(addsuffix _OBJECTS, ${LIBRARIES})} *.d

clean: compile-clean 
	rm -f $(addsuffix .a, ${LIBRARIES})
	rm -f ../lib/libsolver.a

distclean: clean
	rm -f Makefile


.PHONY: all dep clean compile-clean distclean debug all-debug profile all-profile
