#===============================================================================
# PPROJ/Demo/Makefile: For compiling the PPROJ demo
#===============================================================================

default: ccode

include ../../SuiteOPTconfig/SuiteOPTconfig.mk

# C code only:
ccode: run_pproj

I = -I$(SUITESPARSE)/include \
	-I$(SUITEOPT)/SuiteOPTconfig \
	-I$(SUITEOPT)/PPROJ/Include

C = $(CC) $(CF) $(OPTFLAGS) $(I)

LIB = $(SUITEOPT)/ldlibs/libpproj.a \
	$(SUITEOPT)/ldlibs/libsuiteoptconfig.a \
	$(SUITEOPT)/ldlibs/libcholmod.a \
	$(SUITEOPT)/ldlibs/libamd.a \
	$(SUITEOPT)/ldlibs/libcamd.a \
	$(SUITEOPT)/ldlibs/libccolamd.a \
	$(SUITEOPT)/ldlibs/libcolamd.a \
	$(SUITESPARSE)/lib/libmetis.so \
	$(SUITEOPT)/ldlibs/libsuitesparseconfig.a \
	$(LAPACK) $(BLAS) $(XERBLA) -lm

#-------------------------------------------------------------------------------
# SuiteOPT/include directory contains all include files:
#-------------------------------------------------------------------------------
INCLUDE = Makefile \
	$(SUITEOPT)/SuiteOPTconfig/Userconfig.mk \
	$(SUITEOPT)/SuiteOPTconfig/SuiteOPTconfig.mk \
	$(SUITEOPT)/SuiteOPTconfig/sopt.h \
	$(SUITEOPT)/PPROJ/Include/pproj.h \
	$(SUITEOPT)/PPROJ/Include/pproj_check.h \
	$(SUITESPARSE)/include/cholmod_blas.h \
	$(SUITESPARSE)/include/cholmod_check.h \
	$(SUITESPARSE)/include/cholmod_cholesky.h \
	$(SUITESPARSE)/include/cholmod_complexity.h \
	$(SUITESPARSE)/include/cholmod_config.h \
	$(SUITESPARSE)/include/cholmod_core.h \
	$(SUITESPARSE)/include/cholmod.h \
	$(SUITESPARSE)/include/cholmod_matrixops.h \
	$(SUITESPARSE)/include/cholmod_modify.h \
	$(SUITESPARSE)/include/cholmod_partition.h \
	$(SUITESPARSE)/include/cholmod_supernodal.h \
	$(SUITESPARSE)/include/cholmod_template.h \
	$(SUITESPARSE)/include/amd.h \
	$(SUITESPARSE)/include/ccolamd.h \
	$(SUITESPARSE)/include/SuiteSparse_config.h \
	$(SUITESPARSE)/include/colamd.h \
	$(SUITESPARSE)/include/metis.h

#-------------------------------------
# run_pproj
#-------------------------------------

run_pproj: lib $(INCLUDE) run_pproj.c
	$(C) -o run_pproj run_pproj.c $(LDLIBS) $(LIB) 

#-------------------------------------
# Purge
#-------------------------------------

purge:
	- $(RM) run_pproj

#-------------------------------------
# Lib
#-------------------------------------
lib:
	( cd ../../SuiteOPTconfig ; $(MAKE) )
	( cd ../Lib ; $(MAKE) )
