

SOURCES := \
   eigs/auxiliary_eigs.c \
   eigs/auxiliary_eigs_normal.c \
   eigs/convergence.c \
   eigs/correction.c \
   eigs/factorize.c \
   eigs/init.c \
   eigs/inner_solve.c \
   eigs/main_iter.c \
   eigs/ortho.c \
   eigs/primme_c.c \
   eigs/primme_f77.c \
   eigs/primme_interface.c \
   eigs/restart.c \
   eigs/solve_projection.c \
   eigs/update_projection.c \
   eigs/update_W.c \
   linalg/auxiliary.c \
   linalg/blaslapack.c \
   linalg/magma_wrapper.c \
   linalg/memman.c \
   linalg/wtime.c \
   svds/primme_svds_c.c \
   svds/primme_svds_f77.c \
   svds/primme_svds_interface.c

OBJS := $(patsubst %.c,%.o,$(SOURCES))

LAPACK_SOURCES = zhegv.c

LAPACK_OBJS = $(patsubst %.c,%.o,$(LAPACK_SOURCES))

INCLUDE_PRIMME = $(INCLUDE) -I../../inst/include -Iinclude

#
# Compilation
#

%.o: %.c
	$(CC) $(CFLAGS) $(DEFINES) -c $< -o $@

$(OBJS): %.o: %.c
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDE_PRIMME) -c $< -o $@

#
# Archive object files in the full library
#

libprimme.a: $(OBJS)
	$(AR) rv $@ $(OBJS);\
	$(RANLIB) $@

libprimmeext.a: $(LAPACK_OBJS)
	$(AR) rv $@ $(LAPACK_OBJS);\
	$(RANLIB) $@

clean:
	-@rm -f $(OBJS) $(LAPACK_OBJS)

.DELETE_ON_ERROR: $(OBJS) $(LAPACK_OBJS)
.PHONY: clean
