1#=============================================================================== 2# SuiteSparseQR/Lib/Makefile 3#=============================================================================== 4 5LIBRARY = libspqr 6VERSION = 2.0.9 7SO_VERSION = 2 8 9default: library 10 11ccode: all 12 13include ../../SuiteSparse_config/SuiteSparse_config.mk 14 15# SPQR depends on CHOLMOD, AMD, COLAMD, LAPACK, the BLAS and SuiteSparse_config 16LDLIBS += -lamd -lcolamd -lcholmod -lsuitesparseconfig $(LAPACK) $(BLAS) $(TBB) 17 18# compile and install in SuiteSparse/lib 19library: 20 $(MAKE) install INSTALL=$(SUITESPARSE) 21 22#------------------------------------------------------------------------------- 23 24all: library 25 26purge: distclean 27 28distclean: clean 29 - $(RM) -r $(PURGE) 30 31clean: 32 - $(RM) -r $(CLEAN) 33 34INC = ../Include/spqr.hpp ../Include/SuiteSparseQR_C.h \ 35 ../Include/SuiteSparseQR_definitions.h \ 36 ../Include/SuiteSparseQR.hpp 37 38OBJ = \ 39 spqr_rmap.o \ 40 SuiteSparseQR_C.o \ 41 SuiteSparseQR_expert.o \ 42 spqr_parallel.o \ 43 spqr_kernel.o \ 44 spqr_analyze.o \ 45 spqr_assemble.o \ 46 spqr_cpack.o \ 47 spqr_csize.o \ 48 spqr_fcsize.o \ 49 spqr_debug.o \ 50 spqr_front.o \ 51 spqr_factorize.o \ 52 spqr_freenum.o \ 53 spqr_freesym.o \ 54 spqr_freefac.o \ 55 spqr_fsize.o \ 56 spqr_maxcolnorm.o \ 57 spqr_rconvert.o \ 58 spqr_rcount.o \ 59 spqr_rhpack.o \ 60 spqr_rsolve.o \ 61 spqr_stranspose1.o \ 62 spqr_stranspose2.o \ 63 spqr_hpinv.o \ 64 spqr_1fixed.o \ 65 spqr_1colamd.o \ 66 SuiteSparseQR.o \ 67 spqr_1factor.o \ 68 spqr_cumsum.o \ 69 spqr_shift.o \ 70 spqr_happly.o \ 71 spqr_panel.o \ 72 spqr_happly_work.o \ 73 SuiteSparseQR_qmult.o \ 74 spqr_trapezoidal.o \ 75 spqr_larftb.o \ 76 spqr_append.o \ 77 spqr_type.o \ 78 spqr_tol.o 79 80ifneq ($(GPU_CONFIG),) 81OBJ += \ 82 spqrgpu_kernel.o \ 83 spqrgpu_buildAssemblyMaps.o \ 84 spqrgpu_computeFrontStaging.o 85endif 86 87$(OBJ): $(INC) 88 89I = -I../../CHOLMOD/Include -I../../SuiteSparse_config -I../Include 90 91ifneq ($(GPU_CONFIG),) 92 I += -I../../SuiteSparse_GPURuntime/Include \ 93 -I../../GPUQREngine/Include $(CUDA_INC) 94endif 95 96C = $(CXX) $(CF) $(SPQR_CONFIG) $(CHOLMOD_CONFIG) $(CONFIG_PARTITION) $(I) 97 98ifneq ($(GPU_CONFIG),) 99 LDLIBS += $(CUDART_LIB) $(CUBLAS_LIB) \ 100 -lSuiteSparse_GPURuntime -lGPUQREngine 101endif 102 103#------------------------------------------------------------------------------- 104 105static: $(AR_TARGET) 106 107$(AR_TARGET): $(OBJ) 108 $(ARCHIVE) $@ $^ 109 - $(RANLIB) $@ 110 111#------------------------------------------------------------------------------- 112 113spqr_1colamd.o: ../Source/spqr_1colamd.cpp 114 $(C) -c $< 115 116spqr_1factor.o: ../Source/spqr_1factor.cpp 117 $(C) -c $< 118 119spqr_1fixed.o: ../Source/spqr_1fixed.cpp 120 $(C) -c $< 121 122spqr_analyze.o: ../Source/spqr_analyze.cpp 123 $(C) -c $< 124 125spqr_parallel.o: ../Source/spqr_parallel.cpp 126 $(C) -c $< 127 128spqr_kernel.o: ../Source/spqr_kernel.cpp 129 $(C) -c $< 130 131spqr_append.o: ../Source/spqr_append.cpp 132 $(C) -c $< 133 134spqr_assemble.o: ../Source/spqr_assemble.cpp 135 $(C) -c $< 136 137spqr_cpack.o: ../Source/spqr_cpack.cpp 138 $(C) -c $< 139 140spqr_csize.o: ../Source/spqr_csize.cpp 141 $(C) -c $< 142 143spqr_cumsum.o: ../Source/spqr_cumsum.cpp 144 $(C) -c $< 145 146spqr_debug.o: ../Source/spqr_debug.cpp 147 $(C) -c $< 148 149spqr_factorize.o: ../Source/spqr_factorize.cpp 150 $(C) -c $< 151 152spqr_fcsize.o: ../Source/spqr_fcsize.cpp 153 $(C) -c $< 154 155spqr_freefac.o: ../Source/spqr_freefac.cpp 156 $(C) -c $< 157 158spqr_freenum.o: ../Source/spqr_freenum.cpp 159 $(C) -c $< 160 161spqr_freesym.o: ../Source/spqr_freesym.cpp 162 $(C) -c $< 163 164spqr_fsize.o: ../Source/spqr_fsize.cpp 165 $(C) -c $< 166 167spqr_happly.o: ../Source/spqr_happly.cpp 168 $(C) -c $< 169 170spqr_panel.o: ../Source/spqr_panel.cpp 171 $(C) -c $< 172 173spqr_happly_work.o: ../Source/spqr_happly_work.cpp 174 $(C) -c $< 175 176spqr_hpinv.o: ../Source/spqr_hpinv.cpp 177 $(C) -c $< 178 179spqr_larftb.o: ../Source/spqr_larftb.cpp 180 $(C) -c $< 181 182spqr_rconvert.o: ../Source/spqr_rconvert.cpp 183 $(C) -c $< 184 185spqr_rcount.o: ../Source/spqr_rcount.cpp 186 $(C) -c $< 187 188spqr_rhpack.o: ../Source/spqr_rhpack.cpp 189 $(C) -c $< 190 191spqr_rsolve.o: ../Source/spqr_rsolve.cpp 192 $(C) -c $< 193 194spqr_shift.o: ../Source/spqr_shift.cpp 195 $(C) -c $< 196 197spqr_stranspose1.o: ../Source/spqr_stranspose1.cpp 198 $(C) -c $< 199 200spqr_stranspose2.o: ../Source/spqr_stranspose2.cpp 201 $(C) -c $< 202 203spqr_trapezoidal.o: ../Source/spqr_trapezoidal.cpp 204 $(C) -c $< 205 206spqr_type.o: ../Source/spqr_type.cpp 207 $(C) -c $< 208 209spqr_front.o: ../Source/spqr_front.cpp 210 $(C) -c $< 211 212SuiteSparseQR_expert.o: ../Source/SuiteSparseQR_expert.cpp 213 $(C) -c $< 214 215spqr_maxcolnorm.o: ../Source/spqr_maxcolnorm.cpp 216 $(C) -c $< 217 218SuiteSparseQR_qmult.o: ../Source/SuiteSparseQR_qmult.cpp 219 $(C) -c $< 220 221SuiteSparseQR.o: ../Source/SuiteSparseQR.cpp 222 $(C) -c $< 223 224spqr_tol.o: ../Source/spqr_tol.cpp 225 $(C) -c $< 226 227SuiteSparseQR_C.o: ../Source/SuiteSparseQR_C.cpp 228 $(C) -c $< 229 230spqr_rmap.o: ../Source/spqr_rmap.cpp 231 $(C) -c $< 232 233spqrgpu_kernel.o: ../SPQRGPU/spqrgpu_kernel.cpp 234 $(C) -c $< 235 236spqrgpu_buildAssemblyMaps.o: ../SPQRGPU/spqrgpu_buildAssemblyMaps.cpp 237 $(C) -c $< 238 239spqrgpu_computeFrontStaging.o: ../SPQRGPU/spqrgpu_computeFrontStaging.cpp 240 $(C) -c $< 241 242#------------------------------------------------------------------------------- 243 244# install SPQR 245install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) 246 247$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) 248 @mkdir -p $(INSTALL_LIB) 249 @mkdir -p $(INSTALL_INCLUDE) 250 @mkdir -p $(INSTALL_DOC) 251 $(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS) 252 ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) 253 ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) 254 $(CP) ../Include/SuiteSparseQR.hpp $(INSTALL_INCLUDE) 255 $(CP) ../Include/SuiteSparseQR_C.h $(INSTALL_INCLUDE) 256 $(CP) ../Include/SuiteSparseQR_definitions.h $(INSTALL_INCLUDE) 257 $(CP) ../Include/spqr.hpp $(INSTALL_INCLUDE) 258 $(CP) ../Doc/spqr_user_guide.pdf $(INSTALL_DOC) 259 $(CP) ../README.txt $(INSTALL_DOC)/SPQR_README.txt 260 chmod 755 $(INSTALL_LIB)/$(SO_TARGET) 261 chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR.hpp 262 chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR_C.h 263 chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR_definitions.h 264 chmod 644 $(INSTALL_INCLUDE)/spqr.hpp 265 chmod 644 $(INSTALL_DOC)/spqr_user_guide.pdf 266 chmod 644 $(INSTALL_DOC)/SPQR_README.txt 267 268# uninstall SPQR 269uninstall: 270 $(RM) $(INSTALL_LIB)/$(SO_TARGET) 271 $(RM) $(INSTALL_LIB)/$(SO_PLAIN) 272 $(RM) $(INSTALL_LIB)/$(SO_MAIN) 273 $(RM) $(INSTALL_INCLUDE)/SuiteSparseQR.hpp 274 $(RM) $(INSTALL_INCLUDE)/SuiteSparseQR_C.h 275 $(RM) $(INSTALL_INCLUDE)/SuiteSparseQR_definitions.h 276 $(RM) $(INSTALL_INCLUDE)/spqr.hpp 277 $(RM) $(INSTALL_DOC)/spqr_user_guide.pdf 278 $(RM) $(INSTALL_DOC)/SPQR_README.txt 279 280