sources = \
	Source/cs_add.c       Source/cs_dl_add.c       Source/cs_ci_add.c       Source/cs_cl_add.c \
	Source/cs_amd.c       Source/cs_dl_amd.c       Source/cs_ci_amd.c       Source/cs_cl_amd.c \
	Source/cs_chol.c      Source/cs_dl_chol.c      Source/cs_ci_chol.c      Source/cs_cl_chol.c \
	Source/cs_cholsol.c   Source/cs_dl_cholsol.c   Source/cs_ci_cholsol.c   Source/cs_cl_cholsol.c \
	Source/cs_compress.c  Source/cs_dl_compress.c  Source/cs_ci_compress.c  Source/cs_cl_compress.c \
	Source/cs_convert.c \
	Source/cs_counts.c    Source/cs_dl_counts.c    Source/cs_ci_counts.c    Source/cs_cl_counts.c \
	Source/cs_cumsum.c    Source/cs_dl_cumsum.c    Source/cs_ci_cumsum.c    Source/cs_cl_cumsum.c \
	Source/cs_dfs.c       Source/cs_dl_dfs.c       Source/cs_ci_dfs.c       Source/cs_cl_dfs.c \
	Source/cs_dmperm.c    Source/cs_dl_dmperm.c    Source/cs_ci_dmperm.c    Source/cs_cl_dmperm.c \
	Source/cs_droptol.c   Source/cs_dl_droptol.c   Source/cs_ci_droptol.c   Source/cs_cl_droptol.c \
	Source/cs_dropzeros.c Source/cs_dl_dropzeros.c Source/cs_ci_dropzeros.c Source/cs_cl_dropzeros.c \
	Source/cs_dupl.c      Source/cs_dl_dupl.c      Source/cs_ci_dupl.c      Source/cs_cl_dupl.c \
	Source/cs_entry.c     Source/cs_dl_entry.c     Source/cs_ci_entry.c     Source/cs_cl_entry.c \
	Source/cs_ereach.c    Source/cs_dl_ereach.c    Source/cs_ci_ereach.c    Source/cs_cl_ereach.c \
	Source/cs_etree.c     Source/cs_dl_etree.c     Source/cs_ci_etree.c     Source/cs_cl_etree.c \
	Source/cs_fkeep.c     Source/cs_dl_fkeep.c     Source/cs_ci_fkeep.c     Source/cs_cl_fkeep.c \
	Source/cs_gaxpy.c     Source/cs_dl_gaxpy.c     Source/cs_ci_gaxpy.c     Source/cs_cl_gaxpy.c \
	Source/cs_happly.c    Source/cs_dl_happly.c    Source/cs_ci_happly.c    Source/cs_cl_happly.c \
	Source/cs_house.c     Source/cs_dl_house.c     Source/cs_ci_house.c     Source/cs_cl_house.c \
	Source/cs_ipvec.c     Source/cs_dl_ipvec.c     Source/cs_ci_ipvec.c     Source/cs_cl_ipvec.c \
	Source/cs_leaf.c      Source/cs_dl_leaf.c      Source/cs_ci_leaf.c      Source/cs_cl_leaf.c \
	Source/cs_load.c      Source/cs_dl_load.c      Source/cs_ci_load.c      Source/cs_cl_load.c \
	Source/cs_lsolve.c    Source/cs_dl_lsolve.c    Source/cs_ci_lsolve.c    Source/cs_cl_lsolve.c \
	Source/cs_ltsolve.c   Source/cs_dl_ltsolve.c   Source/cs_ci_ltsolve.c   Source/cs_cl_ltsolve.c \
	Source/cs_lu.c        Source/cs_dl_lu.c        Source/cs_ci_lu.c        Source/cs_cl_lu.c \
	Source/cs_lusol.c     Source/cs_dl_lusol.c     Source/cs_ci_lusol.c     Source/cs_cl_lusol.c \
	Source/cs_malloc.c    Source/cs_dl_malloc.c    Source/cs_ci_malloc.c    Source/cs_cl_malloc.c \
	Source/cs_maxtrans.c  Source/cs_dl_maxtrans.c  Source/cs_ci_maxtrans.c  Source/cs_cl_maxtrans.c \
	Source/cs_multiply.c  Source/cs_dl_multiply.c  Source/cs_ci_multiply.c  Source/cs_cl_multiply.c \
	Source/cs_norm.c      Source/cs_dl_norm.c      Source/cs_ci_norm.c      Source/cs_cl_norm.c \
	Source/cs_permute.c   Source/cs_dl_permute.c   Source/cs_ci_permute.c   Source/cs_cl_permute.c \
	Source/cs_pinv.c      Source/cs_dl_pinv.c      Source/cs_ci_pinv.c      Source/cs_cl_pinv.c \
	Source/cs_post.c      Source/cs_dl_post.c      Source/cs_ci_post.c      Source/cs_cl_post.c \
	Source/cs_print.c     Source/cs_dl_print.c     Source/cs_ci_print.c     Source/cs_cl_print.c \
	Source/cs_pvec.c      Source/cs_dl_pvec.c      Source/cs_ci_pvec.c      Source/cs_cl_pvec.c \
	Source/cs_qr.c        Source/cs_dl_qr.c        Source/cs_ci_qr.c        Source/cs_cl_qr.c \
	Source/cs_qrsol.c     Source/cs_dl_qrsol.c     Source/cs_ci_qrsol.c     Source/cs_cl_qrsol.c \
	Source/cs_randperm.c  Source/cs_dl_randperm.c  Source/cs_ci_randperm.c  Source/cs_cl_randperm.c \
	Source/cs_reach.c     Source/cs_dl_reach.c     Source/cs_ci_reach.c     Source/cs_cl_reach.c \
	Source/cs_scatter.c   Source/cs_dl_scatter.c   Source/cs_ci_scatter.c   Source/cs_cl_scatter.c \
	Source/cs_scc.c       Source/cs_dl_scc.c       Source/cs_ci_scc.c       Source/cs_cl_scc.c \
	Source/cs_schol.c     Source/cs_dl_schol.c     Source/cs_ci_schol.c     Source/cs_cl_schol.c \
	Source/cs_spsolve.c   Source/cs_dl_spsolve.c   Source/cs_ci_spsolve.c   Source/cs_cl_spsolve.c \
	Source/cs_sqr.c       Source/cs_dl_sqr.c       Source/cs_ci_sqr.c       Source/cs_cl_sqr.c \
	Source/cs_symperm.c   Source/cs_dl_symperm.c   Source/cs_ci_symperm.c   Source/cs_cl_symperm.c \
	Source/cs_tdfs.c      Source/cs_dl_tdfs.c      Source/cs_ci_tdfs.c      Source/cs_cl_tdfs.c \
	Source/cs_transpose.c Source/cs_dl_transpose.c Source/cs_ci_transpose.c Source/cs_cl_transpose.c \
	Source/cs_updown.c    Source/cs_dl_updown.c    Source/cs_ci_updown.c    Source/cs_cl_updown.c \
	Source/cs_usolve.c    Source/cs_dl_usolve.c    Source/cs_ci_usolve.c    Source/cs_cl_usolve.c \
	Source/cs_util.c      Source/cs_dl_util.c      Source/cs_ci_util.c      Source/cs_cl_util.c \
	Source/cs_utsolve.c   Source/cs_dl_utsolve.c   Source/cs_ci_utsolve.c   Source/cs_cl_utsolve.c \
	Source/cxsparse_version.c
objects = $(sources:.c=.o)
archive = CXSparse.a

PKG_CPPFLAGS = -I./Include -I../SuiteSparse_config

all : $(archive)

$(archive) : $(objects)
	rm -f $@
	$(AR) -cr $@ $(objects)
	$(RANLIB) $@

.c.o :
	$(CC) $(PKG_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) -c $< -o $*.o

clean :
	@rm -f $(objects) $(archive)
