1#===============================================================================
2# CHOLMOD/Tcov/Makefile
3#===============================================================================
4
5# If you compile CHOLMOD with -DNPARTITION, then you do not need METIS,
6# CCOLAMD, or the Partition module, but by default this test requres METIS.
7#
8# To compile and run: use "make".
9#
10# This test only works in Linux.
11
12default: go
13
14include ../../SuiteSparse_config/SuiteSparse_config.mk
15include Make.inc
16
17# Temp directory
18T = $(TCOV_TMP)/CHOLMOD_TCOV_TMP
19
20# Tcov requires gcc
21CC = gcc
22# BLAS = -lrefblas -lgfortran
23# LAPACK = -llapack
24
25# to test Tcov without METIS, but with CAMD, CCOLAMD, and CSYMAMD:
26# C = $(CC) $(CF) $(CHOLMOD_CONFIG) $(NANTESTS) -DNPARTITION
27
28# to test with everthing
29C = $(CC) $(CF) $(CHOLMOD_CONFIG) $(NANTESTS)
30
31# default LAPACK and BLAS from SuiteSparse_config.mk:
32  LDLIBS = -L../../lib \
33  	-lmetis -lm $(LAPACK) $(BLAS) -lrt -Wl,-rpath=$(SUITESPARSE)/lib
34
35# LAPACK and the Fortran reference BLAS, compiled with gfortran -g -O:
36# LDLIBS = $(METIS) -lm -llapack_plain -lblas_plain -lg2c
37# LDLIBS = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin
38# LDLIBS = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin
39# Linux:
40# LDLIBS = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread -lrt
41# Mac:
42# LDLIBS = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin -lpthread
43
44# Solaris
45# LDLIBS = $(METIS) -xlic_lib=sunperf
46
47#-------------------------------------------------------------------------------
48# With the CUDA BLAS:
49ifneq ($(GPU_CONFIG),)
50LDLIBS += $(CUDART_LIB) $(CUBLAS_LIB)
51endif
52#-------------------------------------------------------------------------------
53
54I = -I../../AMD/Include -I../../COLAMD/Include \
55	-I../../metis-5.1.0/include -I../../CCOLAMD/Include \
56	-I../../CAMD/Include \
57	-I../Include -I../../SuiteSparse_config $(CUDA_INC)
58
59I += $(GPU_CONFIG)
60
61ccode: cm cl zdemo ldemo cmread clread
62
63TEST = cm.c test_ops.c null.c null2.c lpdemo.c memory.c solve.c aug.c unpack.c \
64	raw_factor.c cctest.c ctest.c amdtest.c camdtest.c huge.c
65
66INC =   ../Include/cholmod.h \
67	../Include/cholmod_blas.h \
68	../Include/cholmod_check.h \
69	../Include/cholmod_cholesky.h \
70	../Include/cholmod_complexity.h \
71	../Include/cholmod_config.h \
72	../Include/cholmod_core.h \
73	../Include/cholmod_internal.h \
74	../Include/cholmod_matrixops.h \
75	../Include/cholmod_modify.h \
76	../Include/cholmod_partition.h \
77	../Include/cholmod_supernodal.h \
78	../Include/cholmod_template.h
79
80AMDSRC = ../../AMD/Source/amd_1.c \
81	../../AMD/Source/amd_2.c \
82	../../AMD/Source/amd_aat.c \
83	../../AMD/Source/amd_control.c \
84	../../AMD/Source/amd_defaults.c \
85	../../AMD/Source/amd_info.c \
86	../../AMD/Source/amd_order.c \
87	../../AMD/Source/amd_postorder.c \
88	../../AMD/Source/amd_post_tree.c \
89	../../AMD/Source/amd_preprocess.c \
90	../../AMD/Source/amd_valid.c \
91	../../AMD/Include/amd.h \
92	../../AMD/Include/amd_internal.h
93
94AMDOBJ = \
95	zz_amd_1.o \
96	zz_amd_2.o \
97	zz_amd_aat.o \
98	zz_amd_control.o \
99	zz_amd_defaults.o \
100	zz_amd_info.o \
101	zz_amd_order.o \
102	zz_amd_postorder.o \
103	zz_amd_post_tree.o \
104	zz_amd_preprocess.o \
105	zz_amd_valid.o
106# add this to AMDOBJ if debugging is enabled
107#	zz_amd_dump.o \
108
109LAMDOBJ = \
110	zl_amd_1.o \
111	zl_amd_2.o \
112	zl_amd_aat.o \
113	zl_amd_control.o \
114	zl_amd_defaults.o \
115	zl_amd_info.o \
116	zl_amd_order.o \
117	zl_amd_postorder.o \
118	zl_amd_post_tree.o \
119	zl_amd_preprocess.o \
120	zl_amd_valid.o
121# add this to LAMDOBJ if debugging is enabled
122#	zl_amd_dump.o \
123
124COLAMDSRC = ../../COLAMD/Source/colamd.c
125
126COLAMDOBJ = zz_colamd.o
127
128LCOLAMDOBJ = zl_colamd.o
129
130#-------------------------------------------------------------------------------
131# When using the Partition Module:
132
133CCOLAMDSRC = \
134	../../CCOLAMD/Source/ccolamd.c \
135	../../CCOLAMD/Include/ccolamd.h
136
137CCOLAMDOBJ = zz_ccolamd.o
138
139LCCOLAMDOBJ = zl_ccolamd.o
140
141$(CCOLAMDOBJ): $(CCOLAMDSRC)
142
143$(LCCOLAMDOBJ): $(CCOLAMDSRC)
144
145IPARTITION_OBJ = \
146	z_ccolamd.o \
147	z_csymamd.o \
148	z_camd.o \
149	z_metis.o \
150	z_nesdis.o
151
152LPARTITION_OBJ = \
153	l_ccolamd.o \
154	l_csymamd.o \
155	l_camd.o \
156	l_metis.o \
157	l_nesdis.o
158
159CAMDSRC = ../../CAMD/Source/camd_1.c \
160	../../CAMD/Source/camd_2.c \
161	../../CAMD/Source/camd_aat.c \
162	../../CAMD/Source/camd_control.c \
163	../../CAMD/Source/camd_defaults.c \
164	../../CAMD/Source/camd_info.c \
165	../../CAMD/Source/camd_order.c \
166	../../CAMD/Source/camd_postorder.c \
167	../../CAMD/Source/camd_preprocess.c \
168	../../CAMD/Source/camd_valid.c \
169	../../CAMD/Include/camd.h \
170	../../CAMD/Include/camd_internal.h
171
172CAMDOBJ = \
173	zz_camd_1.o \
174	zz_camd_2.o \
175	zz_camd_aat.o \
176	zz_camd_control.o \
177	zz_camd_defaults.o \
178	zz_camd_info.o \
179	zz_camd_order.o \
180	zz_camd_postorder.o \
181	zz_camd_preprocess.o \
182	zz_camd_valid.o
183# add this to CAMDOBJ if debugging is enabled
184#	zz_camd_dump.o \
185
186LCAMDOBJ = \
187	zl_camd_1.o \
188	zl_camd_2.o \
189	zl_camd_aat.o \
190	zl_camd_control.o \
191	zl_camd_defaults.o \
192	zl_camd_info.o \
193	zl_camd_order.o \
194	zl_camd_postorder.o \
195	zl_camd_preprocess.o \
196	zl_camd_valid.o
197# add this to LCAMDOBJ if debugging is enabled
198#	zl_camd_dump.o \
199
200$(CAMDOBJ): $(CAMDSRC)
201
202$(LCAMDOBJ): $(CAMDSRC)
203
204#-------------------------------------------------------------------------------
205# If you compile with -DNPARTITION, you may replace the above definitions
206# with empty ones (see immediately below), and then you do not need a copy of
207# CCOLAMD:
208# CCOLAMDSRC =
209# CCOLAMDOBJ =
210# LCCOLAMDOBJ =
211# IPARTITION_OBJ =
212# LPARTITION_OBJ =
213# CAMDSRC =
214# CAMDOBJ =
215# LCAMDOBJ =
216#-------------------------------------------------------------------------------
217
218IOBJ = \
219	z_common.o \
220	z_version.o \
221	z_dense.o \
222	z_factor.o \
223	z_change_factor.o \
224	z_memory.o \
225	z_sparse.o \
226	z_complex.o \
227	z_transpose.o \
228	z_band.o \
229	z_copy.o \
230	z_triplet.o \
231	z_error.o \
232	z_aat.o \
233	z_add.o \
234	z_check.o \
235	z_read.o \
236	z_write.o \
237	z_amd.o \
238	z_analyze.o \
239	z_colamd.o \
240	z_etree.o \
241	z_factorize.o \
242	z_postorder.o \
243	z_rcond.o \
244	z_resymbol.o \
245	z_rowcolcounts.o \
246	z_rowfac.o \
247	z_solve.o \
248	z_spsolve.o \
249	z_drop.o \
250	z_horzcat.o \
251	z_norm.o \
252	z_scale.o \
253	z_sdmult.o \
254	z_ssmult.o \
255	z_submatrix.o \
256	z_vertcat.o \
257	z_symmetry.o \
258	z_rowadd.o \
259	z_rowdel.o \
260	z_updown.o \
261	z_super_numeric.o \
262	z_super_solve.o \
263	z_super_symbolic.o \
264	z_gpu.o \
265	cholmod_gpu_kernels.o \
266	$(IPARTITION_OBJ)
267
268LOBJ = \
269	l_common.o \
270	l_version.o \
271	l_dense.o \
272	l_factor.o \
273	l_change_factor.o \
274	l_memory.o \
275	l_sparse.o \
276	l_complex.o \
277	l_transpose.o \
278	l_band.o \
279	l_copy.o \
280	l_triplet.o \
281	l_error.o \
282	l_aat.o \
283	l_add.o \
284	l_check.o \
285	l_read.o \
286	l_write.o \
287	l_amd.o \
288	l_analyze.o \
289	l_colamd.o \
290	l_etree.o \
291	l_factorize.o \
292	l_postorder.o \
293	l_rcond.o \
294	l_resymbol.o \
295	l_rowcolcounts.o \
296	l_rowfac.o \
297	l_solve.o \
298	l_spsolve.o \
299	l_drop.o \
300	l_horzcat.o \
301	l_norm.o \
302	l_scale.o \
303	l_sdmult.o \
304	l_ssmult.o \
305	l_submatrix.o \
306	l_vertcat.o \
307	l_symmetry.o \
308	l_rowadd.o \
309	l_rowdel.o \
310	l_updown.o \
311	l_super_numeric.o \
312	l_super_solve.o \
313	l_super_symbolic.o \
314	l_gpu.o \
315	cholmod_gpu_kernels.o \
316	$(LPARTITION_OBJ)
317
318CONFIG = zz_SuiteSparse_config.o
319
320IALL = $(IOBJ) $(AMDOBJ)  $(COLAMDOBJ)  $(CCOLAMDOBJ)  $(CAMDOBJ)   $(CONFIG)
321
322LALL = $(LOBJ) $(LAMDOBJ) $(LCOLAMDOBJ) $(LCCOLAMDOBJ) $(LCAMDOBJ)  $(CONFIG)
323
324
325cm: metis $(IALL) $(TEST) cm.h Makefile
326	$(C) $(I) $(TEST) -o cm $(IALL) $(LDLIBS)
327
328cl: metis $(LALL) $(TEST) cm.h Makefile
329	$(C) -DDLONG $(I) $(TEST) -o cl $(LALL) $(LDLIBS)
330
331cmread: metis $(IALL) cmread.c Makefile
332	$(C) $(I) cmread.c -o cmread $(IALL) $(LDLIBS)
333
334clread: metis $(LALL) cmread.c Makefile
335	$(C) -DDLONG $(I) cmread.c -o clread $(LALL) $(LDLIBS)
336
337zdemo: metis $(IALL) ../Demo/cholmod_demo.c cm.h Makefile \
338	../Demo/cholmod_demo.h
339	cat ../Demo/cholmod_demo.c > zdemo.c
340	$(C) $(I) -I../Demo zdemo.c -o zdemo $(IALL) $(LDLIBS)
341
342ldemo: metis $(LALL) ../Demo/cholmod_l_demo.c cm.h Makefile \
343	../Demo/cholmod_demo.h
344	cat ../Demo/cholmod_l_demo.c > ldemo.c
345	$(C) -DDLONG $(I) -I../Demo ldemo.c -o ldemo $(LALL) $(LDLIBS)
346
347go: zdemo ldemo cmread clread cm cl
348	mkdir -p $(T)
349	$(V) ./cl    < Matrix/galenet               > $(T)/l_galenet.out
350	$(V) ./cl -m < Matrix/z5lo                  > $(T)/l_z5lo.out
351	$(V) ./zdemo   ../Demo/Matrix/bcsstk01.tri  > $(T)/demo_k1.out
352	$(V) ./zdemo   ../Demo/Matrix/bcsstk02.tri  > $(T)/demo_k2.out
353	$(V) ./zdemo < ../Demo/Matrix/lp_afiro.tri  > $(T)/demo_afiro.out
354	$(V) ./zdemo < ../Demo/Matrix/can___24.mtx  > $(T)/demo_can24.out
355	$(V) ./zdemo < ../Demo/Matrix/c.tri         > $(T)/demo_c.out
356	$(V) ./zdemo < ../Demo/Matrix/d.tri         > $(T)/demo_d.out
357	$(V) ./zdemo < ../Demo/Matrix/up.tri        > $(T)/demo_up.out
358	$(V) ./zdemo < ../Demo/Matrix/c.mtx         > $(T)/demo_c_mtx.out
359	$(V) ./zdemo < ../Demo/Matrix/0.tri         > $(T)/demo_0.out
360	$(V) ./zdemo < Matrix/3_2                   > $(T)/demo_3_2.out
361	$(V) ./zdemo < Matrix/c5lo                  > $(T)/demo_c5lo.out
362	$(V) ./zdemo < Matrix/c10                   > $(T)/demo_c10.out
363	$(V) ./zdemo no_such_file                   > $(T)/demo_no_such_file.out
364	$(V) ./zdemo ../Demo/Matrix/mangle1.mtx     > $(T)/demo_mangle1.out
365	$(V) ./zdemo ../Demo/Matrix/mangle2.mtx     > $(T)/demo_mangle2.out
366	$(V) ./zdemo ../Demo/Matrix/mangle3.mtx     > $(T)/demo_mangle3.out
367	$(V) ./zdemo ../Demo/Matrix/mangle4.mtx     > $(T)/demo_mangle4.out
368	$(V) ./zdemo ../Demo/Matrix/pts5ldd03.mtx   > $(T)/demo_pts5ldd03.out
369	$(V) ./ldemo   ../Demo/Matrix/bcsstk01.tri  > $(T)/ldemo_k1.out
370	$(V) ./ldemo   ../Demo/Matrix/bcsstk02.tri  > $(T)/ldemo_k2.out
371	$(V) ./ldemo < ../Demo/Matrix/lp_afiro.tri  > $(T)/ldemo_afiro.out
372	$(V) ./ldemo < ../Demo/Matrix/can___24.mtx  > $(T)/ldemo_can24.out
373	$(V) ./ldemo < ../Demo/Matrix/c.tri         > $(T)/ldemo_c.out
374	$(V) ./ldemo   ../Demo/Matrix/c.tri 1       > $(T)/ldemo_c_zomplex.out
375	$(V) ./ldemo < ../Demo/Matrix/d.tri         > $(T)/ldemo_d.out
376	$(V) ./ldemo   ../Demo/Matrix/d.tri 1       > $(T)/ldemo_d.out
377	$(V) ./ldemo < ../Demo/Matrix/up.tri        > $(T)/ldemo_up.out
378	$(V) ./ldemo   ../Demo/Matrix/up.tri 1      > $(T)/ldemo_up_zomplex.out
379	$(V) ./ldemo < ../Demo/Matrix/c.mtx         > $(T)/ldemo_c_mtx.out
380	$(V) ./ldemo   ../Demo/Matrix/c.mtx 1       > $(T)/ldemo_c_mtx_zomplex.out
381	$(V) ./ldemo < ../Demo/Matrix/0.tri         > $(T)/ldemo_0.out
382	$(V) ./ldemo < Matrix/3_2                   > $(T)/ldemo_3_2.out
383	$(V) ./ldemo < Matrix/c5lo                  > $(T)/ldemo_c5lo.out
384	$(V) ./ldemo < Matrix/c10                   > $(T)/ldemo_c10.out
385	$(V) ./ldemo no_such_file                   > $(T)/ldemo_no_such_file.out
386	$(V) ./ldemo ../Demo/Matrix/mangle1.mtx     > $(T)/ldemo_mangle1.out
387	$(V) ./ldemo ../Demo/Matrix/mangle2.mtx     > $(T)/ldemo_mangle2.out
388	$(V) ./ldemo ../Demo/Matrix/mangle3.mtx     > $(T)/ldemo_mangle3.out
389	$(V) ./ldemo ../Demo/Matrix/mangle4.mtx     > $(T)/ldemo_mangle4.out
390	$(V) ./ldemo ../Demo/Matrix/pts5ldd03.mtx   > $(T)/ldemo_pts5ldd03.out
391	- grep resid $(T)/demo*
392	$(V) ./cmread no_such_file                  > $(T)/no_such_file.out
393	$(V) ./cmread Matrix/crud1                  > $(T)/crud1.out
394	$(V) ./cmread Matrix/crud2                  > $(T)/crud2.out
395	$(V) ./cmread Matrix/fullcrud.mtx           > $(T)/fullcrud.out
396	$(V) ./cmread Matrix/fullcrud1.mtx          > $(T)/fullcrud1.out
397	$(V) ./cmread Matrix/fullcrud2.mtx          > $(T)/fullcrud2.out
398	$(V) ./cmread Matrix/3by0.mtx               > $(T)/3by0.out
399	$(V) ./cmread Matrix/fullrza.mtx            > $(T)/fullrza.out
400	$(V) ./cmread Matrix/fullrsa.mtx            > $(T)/fullrsa.out
401	$(V) ./cmread Matrix/fullcsa.mtx            > $(T)/fullcsa.out
402	$(V) ./cmread Matrix/fullcza.mtx            > $(T)/fullcza.out
403	$(V) ./cmread Matrix/fullcha.mtx            > $(T)/fullcha.out
404	$(V) ./cmread Matrix/cha.mtx                > $(T)/cha.out
405	$(V) ./cmread Matrix/cza.mtx                > $(T)/cza.out
406	$(V) ./cmread Matrix/csa.mtx                > $(T)/csa.out
407	$(V) ./cmread Matrix/one                    > $(T)/one.out
408	$(V) ./cmread Matrix/rza.mtx                > $(T)/rza.out
409	$(V) ./cmread ../Demo/Matrix/mangle5.tri    > $(T)/mangle5.out
410	$(V) ./cmread ../Demo/Matrix/mangle6.tri    > $(T)/mangle6.out
411	$(V) ./cmread ../Demo/Matrix/mangle7.tri    > $(T)/mangle6.out
412	$(V) ./cmread ../Demo/Matrix/mangle8.tri    > $(T)/mangle8.out
413	$(V) ./cmread ../Demo/Matrix/empty.tri      > $(T)/empty.out
414	$(V) ./cmread ../Demo/Matrix/one.tri        > $(T)/one.out
415	$(V) ./cmread Matrix/plskz362.mtx           > $(T)/plskz363.out
416	$(V) ./cmread Matrix/2diag.tri              > $(T)/2diag.out
417	$(V) ./cmread Matrix/r5lo                   > $(T)/r5lo.out
418	$(V) ./cmread Matrix/r5lo2                  > $(T)/r5lo2.out
419	- diff $(T)/r5lo.out $(T)/r5lo2.out
420	$(V) ./cmread Matrix/cs.mtx                 > $(T)/cs.out
421	$(V) ./cmread Matrix/2lo.tri                > $(T)/2lo.out
422	$(V) ./cmread Matrix/2.tri                  > $(T)/2.out
423	$(V) ./cmread Matrix/2up.tri                > $(T)/2up.out
424	$(V) ./cmread Matrix/huge.tri               > $(T)/huge.out
425	$(V) ./cmread Matrix/1e99                   > $(T)/1e99.out
426	$(V) ./clread no_such_file                  > $(T)/l_no_such_file.out
427	$(V) ./clread Matrix/crud1                  > $(T)/l_crud1.out
428	$(V) ./clread Matrix/crud2                  > $(T)/l_crud2.out
429	$(V) ./clread Matrix/fullcrud.mtx           > $(T)/l_fullcrud.out
430	$(V) ./clread Matrix/fullcrud1.mtx          > $(T)/l_fullcrud1.out
431	$(V) ./clread Matrix/fullcrud2.mtx          > $(T)/l_fullcrud2.out
432	$(V) ./clread Matrix/3by0.mtx               > $(T)/l_3by0.out
433	$(V) ./clread Matrix/fullrza.mtx            > $(T)/l_fullrza.out
434	$(V) ./clread Matrix/fullrsa.mtx            > $(T)/l_fullrsa.out
435	$(V) ./clread Matrix/fullcsa.mtx            > $(T)/l_fullcsa.out
436	$(V) ./clread Matrix/fullcza.mtx            > $(T)/l_fullcza.out
437	$(V) ./clread Matrix/fullcha.mtx            > $(T)/l_fullcha.out
438	$(V) ./clread Matrix/cha.mtx                > $(T)/l_cha.out
439	$(V) ./clread Matrix/cza.mtx                > $(T)/l_cza.out
440	$(V) ./clread Matrix/csa.mtx                > $(T)/l_csa.out
441	$(V) ./clread Matrix/one                    > $(T)/l_one.out
442	$(V) ./clread Matrix/rza.mtx                > $(T)/l_rza.out
443	$(V) ./clread ../Demo/Matrix/mangle5.tri    > $(T)/l_mangle5.out
444	$(V) ./clread ../Demo/Matrix/mangle6.tri    > $(T)/l_mangle6.out
445	$(V) ./clread ../Demo/Matrix/mangle7.tri    > $(T)/l_mangle6.out
446	$(V) ./clread ../Demo/Matrix/mangle8.tri    > $(T)/l_mangle8.out
447	$(V) ./clread ../Demo/Matrix/empty.tri      > $(T)/l_empty.out
448	$(V) ./clread ../Demo/Matrix/one.tri        > $(T)/l_one.out
449	$(V) ./clread Matrix/plskz362.mtx           > $(T)/l_plskz363.out
450	$(V) ./clread Matrix/2diag.tri              > $(T)/l_2diag.out
451	$(V) ./clread Matrix/r5lo                   > $(T)/l_r5lo.out
452	$(V) ./clread Matrix/r5lo2                  > $(T)/l_r5lo2.out
453	- diff $(T)/r5lo.out $(T)/r5lo2.out
454	$(V) ./clread Matrix/cs.mtx                 > $(T)/l_cs.out
455	$(V) ./clread Matrix/2lo.tri                > $(T)/l_l_2lo.out
456	$(V) ./clread Matrix/2.tri                  > $(T)/l_2.out
457	$(V) ./clread Matrix/2up.tri                > $(T)/l_2up.out
458	$(V) ./clread Matrix/huge.tri               > $(T)/l_huge.out
459	$(V) ./clread Matrix/1e99                   > $(T)/l_1e99.out
460	$(V) ./cm    < Matrix/galenet               > $(T)/galenet.out
461	- $(COVER)
462	$(V) ./cm    < Matrix/5by50                 > $(T)/5by50.out
463	$(V) ./cl    < Matrix/5by50                 > $(T)/l_5by50.out
464	- $(COVER)
465	$(V) ./cm    < Matrix/r5lo                  > $(T)/r5lo.out
466	$(V) ./cl    < Matrix/r5lo                  > $(T)/l_r5lo.out
467	$(V) ./cm    < Matrix/r5up                  > $(T)/r5up.out
468	$(V) ./cl    < Matrix/r5up                  > $(T)/l_r5up.out
469	$(V) ./cm    < Matrix/r5up2                 > $(T)/r5up2.out
470	$(V) ./cl    < Matrix/r5up2                 > $(T)/l_r5up2.out
471	$(V) ./cm    < Matrix/c5up2                 > $(T)/c5up2.out
472	$(V) ./cl    < Matrix/c5up2                 > $(T)/l_c5up2.out
473	$(V) ./cm    < Matrix/z5up2                 > $(T)/z5up2.out
474	$(V) ./cl    < Matrix/z5up2                 > $(T)/l_z5up2.out
475	$(V) ./cm -m < Matrix/z5lo                  > $(T)/z5lo.out
476	$(V) ./cm    < Matrix/ibm32                 > $(T)/ibm.out
477	$(V) ./cl    < Matrix/ibm32                 > $(T)/l_ibm.out
478	- $(COVER)
479	$(V) ./cm -m < Matrix/c5lo                  > $(T)/c5lo.out
480	$(V) ./cl -m < Matrix/c5lo                  > $(T)/l_c5lo.out
481	$(V) ./cm -m < Matrix/z10                   > $(T)/z10.out
482	$(V) ./cl -m < Matrix/z10                   > $(T)/l_z10.out
483	$(V) ./cm -m < Matrix/z5up                  > $(T)/z5up.out
484	$(V) ./cl -m < Matrix/z5up                  > $(T)/l_z5up.out
485	- $(COVER)
486	$(V) ./cm -s < Matrix/3singular             > $(T)/3singular.out
487	$(V) ./cl -s < Matrix/3singular             > $(T)/l_3singular.out
488	$(V) ./cm -s < Matrix/z3singular            > $(T)/z3singular.out
489	$(V) ./cl -s < Matrix/z3singular            > $(T)/l_z3singular.out
490	$(V) ./cm -s < Matrix/c3singular            > $(T)/c3singular.out
491	$(V) ./cl -s < Matrix/c3singular            > $(T)/l_c3singular.out
492	$(V) ./cm -m < Matrix/0                     > $(T)/0.out
493	$(V) ./cl -m < Matrix/0                     > $(T)/l_0.out
494	$(V) ./cm -m < Matrix/afiro                 > $(T)/afiro.out
495	$(V) ./cl -m < Matrix/afiro                 > $(T)/l_afiro.out
496	- $(COVER)
497	$(V) ./cm -m < Matrix/k01up                 > $(T)/k01up.out
498	$(V) ./cl -m < Matrix/k01up                 > $(T)/l_k01up.out
499	- $(COVER)
500	$(V) ./cm    < Matrix/diag                  > $(T)/diag.out
501	$(V) ./cl    < Matrix/diag                  > $(T)/l_diag.out
502	$(V) ./cm -m < Matrix/ex5lo                 > $(T)/ex5lo.out
503	$(V) ./cl -m < Matrix/ex5lo                 > $(T)/l_ex5lo.out
504	- $(COVER)
505	$(V) ./cm    < Matrix/20lo                  > $(T)/20lo.out
506	$(V) ./cl    < Matrix/20lo                  > $(T)/l_20lo.out
507	$(V) ./cm    < Matrix/z30lo                 > $(T)/z30lo.out
508	$(V) ./cl    < Matrix/z30lo                 > $(T)/l_z30lo.out
509	- $(COVER)
510	$(V) ./cm -m < Matrix/z30up                 > $(T)/z30up.out
511	$(V) ./cl -m < Matrix/z30up                 > $(T)/l_z30up.out
512	$(V) ./cm    < Matrix/c10                   > $(T)/c10.out
513	$(V) ./cl    < Matrix/c10                   > $(T)/l_c10.out
514	$(V) ./cm    < Matrix/c30lo                 > $(T)/c30lo.out
515	$(V) ./cl    < Matrix/c30lo                 > $(T)/l_c30lo.out
516	- $(COVER)
517	$(V) ./cm    < Matrix/C9840                 > $(T)/C9840.out
518	$(V) ./cl    < Matrix/C9840                 > $(T)/l_C9840.out
519	- $(COVER)
520	$(V) ./cm -m < Matrix/c30up                 > $(T)/c30up.out
521	$(V) ./cl -m < Matrix/c30up                 > $(T)/l_c30up.out
522	$(V) ./cm    < Matrix/pi                    > $(T)/pi.out
523	$(V) ./cl    < Matrix/pi                    > $(T)/l_pi.out
524	$(V) ./cm    < Matrix/cpi                   > $(T)/cpi.out
525	$(V) ./cl    < Matrix/cpi                   > $(T)/l_cpi.out
526	$(V) ./cm    < Matrix/1_0                   > $(T)/1_0.out
527	$(V) ./cl    < Matrix/1_0                   > $(T)/l_1_0.out
528	$(V) ./cm -s < Matrix/3b                    > $(T)/3b.out
529	$(V) ./cl -s < Matrix/3b                    > $(T)/l_3b.out
530	$(V) ./cm -s < Matrix/cza                   > $(T)/cza2.out
531	$(V) ./cl -s < Matrix/cza                   > $(T)/l_cza2.out
532	$(V) ./cm    < Matrix/0_1                   > $(T)/0_1.out
533	$(V) ./cl    < Matrix/0_1                   > $(T)/l_0_1.out
534	- $(COVER)
535	$(V) ./cm -n < Matrix/galenet               > $(T)/galenet_nan.out
536	- $(COVER)
537	$(V) ./cl -n < Matrix/galenet               > $(T)/l_galenet_nan.out
538	- $(COVER)
539	$(V) ./cm    < Matrix/zero                  > $(T)/zero.out
540	$(V) ./cl    < Matrix/zero                  > $(T)/zero.out
541	- $(COVER)
542
543cov:
544	- $(COVER)
545
546# This test exercises the GPU. Do the following:
547#       setenv CHOLMOD_USE_GPU 1
548#       make gpu
549#       setenv CHOLMOD_USE_GPU 0
550#       make gpu
551gpu: ldemo
552	./ldemo ../../../Matrix/nd6k.mtx
553	./ldemo ../../../Matrix/nd6k_complex.mtx
554	./ldemo ../../../Matrix/nd6k_complex.mtx 1
555	- $(COVER)
556
557purge: distclean
558
559distclean: clean
560	- $(RM) cm cl cmread clread *.c.gcov *.out $(T) zdemo ldemo
561	- $(RM) leak zz_*.c z_*.c *.a l_*.c zl_*.c cov.sort ldemo.c zdemo.c
562	- $(RM) -r cm.profile cmread.profile zdemo.profile $(T)
563	- $(RM) -r cl.profile clread.profile ldemo.profile
564	- $(RM) temp*.mtx timelog.m
565	- $(RM) -r $(PURGE)
566
567clean:
568	- $(RM) -r $(CLEAN)
569
570
571$(AMDOBJ): $(AMDSRC)
572
573$(LAMDOBJ): $(AMDSRC)
574
575$(IOBJ): $(INC)
576
577$(LOBJ): $(INC)
578
579.c.o:
580	$(C) -c $(I) $*.c
581
582#-------------------------------------------------------------------------------
583# SUITESPARSE_CONFIG
584#-------------------------------------------------------------------------------
585
586zz_SuiteSparse_config.o: ../../SuiteSparse_config/SuiteSparse_config.c \
587    ../../SuiteSparse_config/SuiteSparse_config.h
588	$(C) -E $(I) $< | $(PRETTY) > zz_SuiteSparse_config.c
589	$(C) -c $(I) zz_SuiteSparse_config.c
590
591#-------------------------------------------------------------------------------
592# AMD
593#-------------------------------------------------------------------------------
594
595zz_amd_1.o: ../../AMD/Source/amd_1.c
596	$(C) -E $(I) $< | $(PRETTY) > zz_amd_1.c
597	$(C) -c $(I) zz_amd_1.c
598
599zz_amd_2.o: ../../AMD/Source/amd_2.c
600	$(C) -E $(I) $< | $(PRETTY) > zz_amd_2.c
601	$(C) -c $(I) zz_amd_2.c
602
603zz_amd_aat.o: ../../AMD/Source/amd_aat.c
604	$(C) -E $(I) $< | $(PRETTY) > zz_amd_aat.c
605	$(C) -c $(I) zz_amd_aat.c
606
607zz_amd_control.o: ../../AMD/Source/amd_control.c
608	$(C) -E $(I) $< | $(PRETTY) > zz_amd_control.c
609	$(C) -c $(I) zz_amd_control.c
610
611zz_amd_defaults.o: ../../AMD/Source/amd_defaults.c
612	$(C) -E $(I) $< | $(PRETTY) > zz_amd_defaults.c
613	$(C) -c $(I) zz_amd_defaults.c
614
615zz_amd_dump.o: ../../AMD/Source/amd_dump.c
616	$(C) -E $(I) $< | $(PRETTY) > zz_amd_dump.c
617	$(C) -c $(I) zz_amd_dump.c
618
619zz_amd_info.o: ../../AMD/Source/amd_info.c
620	$(C) -E $(I) $< | $(PRETTY) > zz_amd_info.c
621	$(C) -c $(I) zz_amd_info.c
622
623zz_amd_order.o: ../../AMD/Source/amd_order.c
624	$(C) -E $(I) $< | $(PRETTY) > zz_amd_order.c
625	$(C) -c $(I) zz_amd_order.c
626
627zz_amd_postorder.o: ../../AMD/Source/amd_postorder.c
628	$(C) -E $(I) $< | $(PRETTY) > zz_amd_postorder.c
629	$(C) -c $(I) zz_amd_postorder.c
630
631zz_amd_post_tree.o: ../../AMD/Source/amd_post_tree.c
632	$(C) -E $(I) $< | $(PRETTY) > zz_amd_post_tree.c
633	$(C) -c $(I) zz_amd_post_tree.c
634
635zz_amd_preprocess.o: ../../AMD/Source/amd_preprocess.c
636	$(C) -E $(I) $< | $(PRETTY) > zz_amd_preprocess.c
637	$(C) -c $(I) zz_amd_preprocess.c
638
639zz_amd_valid.o: ../../AMD/Source/amd_valid.c
640	$(C) -E $(I) $< | $(PRETTY) > zz_amd_valid.c
641	$(C) -c $(I) zz_amd_valid.c
642
643#-------------------------------------------------------------------------------
644
645zl_amd_1.o: ../../AMD/Source/amd_1.c
646	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_1.c
647	$(C) -c $(I) zl_amd_1.c
648
649zl_amd_2.o: ../../AMD/Source/amd_2.c
650	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_2.c
651	$(C) -c $(I) zl_amd_2.c
652
653zl_amd_aat.o: ../../AMD/Source/amd_aat.c
654	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_aat.c
655	$(C) -c $(I) zl_amd_aat.c
656
657zl_amd_control.o: ../../AMD/Source/amd_control.c
658	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_control.c
659	$(C) -c $(I) zl_amd_control.c
660
661zl_amd_defaults.o: ../../AMD/Source/amd_defaults.c
662	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_defaults.c
663	$(C) -c $(I) zl_amd_defaults.c
664
665zl_amd_dump.o: ../../AMD/Source/amd_dump.c
666	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_dump.c
667	$(C) -c $(I) zl_amd_dump.c
668
669zl_amd_info.o: ../../AMD/Source/amd_info.c
670	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_info.c
671	$(C) -c $(I) zl_amd_info.c
672
673zl_amd_order.o: ../../AMD/Source/amd_order.c
674	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_order.c
675	$(C) -c $(I) zl_amd_order.c
676
677zl_amd_postorder.o: ../../AMD/Source/amd_postorder.c
678	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_postorder.c
679	$(C) -c $(I) zl_amd_postorder.c
680
681zl_amd_post_tree.o: ../../AMD/Source/amd_post_tree.c
682	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_post_tree.c
683	$(C) -c $(I) zl_amd_post_tree.c
684
685zl_amd_preprocess.o: ../../AMD/Source/amd_preprocess.c
686	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_preprocess.c
687	$(C) -c $(I) zl_amd_preprocess.c
688
689zl_amd_valid.o: ../../AMD/Source/amd_valid.c
690	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_amd_valid.c
691	$(C) -c $(I) zl_amd_valid.c
692
693#-------------------------------------------------------------------------------
694# CAMD
695#-------------------------------------------------------------------------------
696
697zz_camd_1.o: ../../CAMD/Source/camd_1.c
698	$(C) -E $(I) $< | $(PRETTY) > zz_camd_1.c
699	$(C) -c $(I) zz_camd_1.c
700
701zz_camd_2.o: ../../CAMD/Source/camd_2.c
702	$(C) -E $(I) $< | $(PRETTY) > zz_camd_2.c
703	$(C) -c $(I) zz_camd_2.c
704
705zz_camd_aat.o: ../../CAMD/Source/camd_aat.c
706	$(C) -E $(I) $< | $(PRETTY) > zz_camd_aat.c
707	$(C) -c $(I) zz_camd_aat.c
708
709zz_camd_control.o: ../../CAMD/Source/camd_control.c
710	$(C) -E $(I) $< | $(PRETTY) > zz_camd_control.c
711	$(C) -c $(I) zz_camd_control.c
712
713zz_camd_defaults.o: ../../CAMD/Source/camd_defaults.c
714	$(C) -E $(I) $< | $(PRETTY) > zz_camd_defaults.c
715	$(C) -c $(I) zz_camd_defaults.c
716
717zz_camd_dump.o: ../../CAMD/Source/camd_dump.c
718	$(C) -E $(I) $< | $(PRETTY) > zz_camd_dump.c
719	$(C) -c $(I) zz_camd_dump.c
720
721zz_camd_info.o: ../../CAMD/Source/camd_info.c
722	$(C) -E $(I) $< | $(PRETTY) > zz_camd_info.c
723	$(C) -c $(I) zz_camd_info.c
724
725zz_camd_order.o: ../../CAMD/Source/camd_order.c
726	$(C) -E $(I) $< | $(PRETTY) > zz_camd_order.c
727	$(C) -c $(I) zz_camd_order.c
728
729zz_camd_postorder.o: ../../CAMD/Source/camd_postorder.c
730	$(C) -E $(I) $< | $(PRETTY) > zz_camd_postorder.c
731	$(C) -c $(I) zz_camd_postorder.c
732
733zz_camd_preprocess.o: ../../CAMD/Source/camd_preprocess.c
734	$(C) -E $(I) $< | $(PRETTY) > zz_camd_preprocess.c
735	$(C) -c $(I) zz_camd_preprocess.c
736
737zz_camd_valid.o: ../../CAMD/Source/camd_valid.c
738	$(C) -E $(I) $< | $(PRETTY) > zz_camd_valid.c
739	$(C) -c $(I) zz_camd_valid.c
740
741#-------------------------------------------------------------------------------
742
743zl_camd_1.o: ../../CAMD/Source/camd_1.c
744	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_1.c
745	$(C) -c $(I) zl_camd_1.c
746
747zl_camd_2.o: ../../CAMD/Source/camd_2.c
748	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_2.c
749	$(C) -c $(I) zl_camd_2.c
750
751zl_camd_aat.o: ../../CAMD/Source/camd_aat.c
752	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_aat.c
753	$(C) -c $(I) zl_camd_aat.c
754
755zl_camd_control.o: ../../CAMD/Source/camd_control.c
756	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_control.c
757	$(C) -c $(I) zl_camd_control.c
758
759zl_camd_defaults.o: ../../CAMD/Source/camd_defaults.c
760	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_defaults.c
761	$(C) -c $(I) zl_camd_defaults.c
762
763zl_camd_dump.o: ../../CAMD/Source/camd_dump.c
764	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_dump.c
765	$(C) -c $(I) zl_camd_dump.c
766
767zl_camd_info.o: ../../CAMD/Source/camd_info.c
768	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_info.c
769	$(C) -c $(I) zl_camd_info.c
770
771zl_camd_order.o: ../../CAMD/Source/camd_order.c
772	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_order.c
773	$(C) -c $(I) zl_camd_order.c
774
775zl_camd_postorder.o: ../../CAMD/Source/camd_postorder.c
776	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_postorder.c
777	$(C) -c $(I) zl_camd_postorder.c
778
779zl_camd_preprocess.o: ../../CAMD/Source/camd_preprocess.c
780	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_preprocess.c
781	$(C) -c $(I) zl_camd_preprocess.c
782
783zl_camd_valid.o: ../../CAMD/Source/camd_valid.c
784	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_camd_valid.c
785	$(C) -c $(I) zl_camd_valid.c
786
787#-------------------------------------------------------------------------------
788
789zz_colamd.o: ../../COLAMD/Source/colamd.c
790	$(C) -E $(I) $< | $(PRETTY) > zz_colamd.c
791	$(C) -c $(I) zz_colamd.c
792
793zl_colamd.o: ../../COLAMD/Source/colamd.c
794	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_colamd.c
795	$(C) -c $(I) zl_colamd.c
796
797#-------------------------------------------------------------------------------
798
799zz_ccolamd.o: ../../CCOLAMD/Source/ccolamd.c
800	$(C) -E $(I) $< | $(PRETTY) > zz_ccolamd.c
801	$(C) -c $(I) zz_ccolamd.c
802
803zl_ccolamd.o: ../../CCOLAMD/Source/ccolamd.c
804	$(C) -DDLONG -E $(I) $< | $(PRETTY) > zl_ccolamd.c
805	$(C) -c $(I) zl_ccolamd.c
806
807#-------------------------------------------------------------------------------
808
809z_check.o: ../Check/cholmod_check.c
810	$(C) -E $(I) $< | $(PRETTY) > z_check.c
811	$(C) -c $(I) z_check.c
812
813z_read.o: ../Check/cholmod_read.c
814	$(C) -E $(I) $< | $(PRETTY) > z_read.c
815	$(C) -c $(I) z_read.c
816
817z_write.o: ../Check/cholmod_write.c
818	$(C) -E $(I) $< | $(PRETTY) > z_write.c
819	$(C) -c $(I) z_write.c
820
821#-------------------------------------------------------------------------------
822
823z_common.o: ../Core/cholmod_common.c
824	$(C) -E $(I) $< | $(PRETTY) > z_common.c
825	$(C) -c $(I) z_common.c
826
827z_version.o: ../Core/cholmod_version.c
828	$(C) -E $(I) $< | $(PRETTY) > z_version.c
829	$(C) -c $(I) z_version.c
830
831z_dense.o: ../Core/cholmod_dense.c ../Core/t_cholmod_dense.c
832	$(C) -E $(I) $< | $(PRETTY) > z_dense.c
833	$(C) -c $(I) z_dense.c
834
835z_factor.o: ../Core/cholmod_factor.c
836	$(C) -E $(I) $< | $(PRETTY) > z_factor.c
837	$(C) -c $(I) z_factor.c
838
839z_change_factor.o: ../Core/cholmod_change_factor.c \
840	../Core/t_cholmod_change_factor.c
841	$(C) -E $(I) $< | $(PRETTY) > z_change_factor.c
842	$(C) -c $(I) z_change_factor.c
843
844z_memory.o: ../Core/cholmod_memory.c
845	$(C) -E $(I) $< | $(PRETTY) > z_memory.c
846	$(C) -c $(I) z_memory.c
847
848z_sparse.o: ../Core/cholmod_sparse.c
849	$(C) -E $(I) $< | $(PRETTY) > z_sparse.c
850	$(C) -c $(I) z_sparse.c
851
852z_complex.o: ../Core/cholmod_complex.c
853	$(C) -E $(I) $< | $(PRETTY) > z_complex.c
854	$(C) -c $(I) z_complex.c
855
856z_transpose.o: ../Core/cholmod_transpose.c ../Core/t_cholmod_transpose.c
857	$(C) -E $(I) $< | $(PRETTY) > z_transpose.c
858	$(C) -c $(I) z_transpose.c
859
860z_band.o: ../Core/cholmod_band.c
861	$(C) -E $(I) $< | $(PRETTY) > z_band.c
862	$(C) -c $(I) z_band.c
863
864z_copy.o: ../Core/cholmod_copy.c
865	$(C) -E $(I) $< | $(PRETTY) > z_copy.c
866	$(C) -c $(I) z_copy.c
867
868z_triplet.o: ../Core/cholmod_triplet.c ../Core/t_cholmod_triplet.c
869	$(C) -E $(I) $< | $(PRETTY) > z_triplet.c
870	$(C) -c $(I) z_triplet.c
871
872z_error.o: ../Core/cholmod_error.c
873	$(C) -E $(I) $< | $(PRETTY) > z_error.c
874	$(C) -c $(I) z_error.c
875
876z_aat.o: ../Core/cholmod_aat.c
877	$(C) -E $(I) $< | $(PRETTY) > z_aat.c
878	$(C) -c $(I) z_aat.c
879
880z_add.o: ../Core/cholmod_add.c
881	$(C) -E $(I) $< | $(PRETTY) > z_add.c
882	$(C) -c $(I) z_add.c
883
884#-------------------------------------------------------------------------------
885
886z_amd.o: ../Cholesky/cholmod_amd.c
887	$(C) -E $(I) $< | $(PRETTY) > z_amd.c
888	$(C) -c $(I) z_amd.c
889
890z_analyze.o: ../Cholesky/cholmod_analyze.c
891	$(C) -E $(I) $< | $(PRETTY) > z_analyze.c
892	$(C) -c $(I) z_analyze.c
893
894z_colamd.o: ../Cholesky/cholmod_colamd.c
895	$(C) -E $(I) $< | $(PRETTY) > z_colamd.c
896	$(C) -c $(I) z_colamd.c
897
898z_etree.o: ../Cholesky/cholmod_etree.c
899	$(C) -E $(I) $< | $(PRETTY) > z_etree.c
900	$(C) -c $(I) z_etree.c
901
902z_factorize.o: ../Cholesky/cholmod_factorize.c
903	$(C) -E $(I) $< | $(PRETTY) > z_factorize.c
904	$(C) -c $(I) z_factorize.c
905
906z_postorder.o: ../Cholesky/cholmod_postorder.c
907	$(C) -E $(I) $< | $(PRETTY) > z_postorder.c
908	$(C) -c $(I) z_postorder.c
909
910z_rcond.o: ../Cholesky/cholmod_rcond.c
911	$(C) -E $(I) $< | $(PRETTY) > z_rcond.c
912	$(C) -c $(I) z_rcond.c
913
914z_resymbol.o: ../Cholesky/cholmod_resymbol.c
915	$(C) -E $(I) $< | $(PRETTY) > z_resymbol.c
916	$(C) -c $(I) z_resymbol.c
917
918z_rowcolcounts.o: ../Cholesky/cholmod_rowcolcounts.c
919	$(C) -E $(I) $< | $(PRETTY) > z_rowcolcounts.c
920	$(C) -c $(I) z_rowcolcounts.c
921
922z_solve.o: ../Cholesky/cholmod_solve.c ../Cholesky/t_cholmod_lsolve.c \
923	../Cholesky/t_cholmod_ltsolve.c ../Cholesky/t_cholmod_solve.c
924	$(C) -E $(I) $< | $(PRETTY) > z_solve.c
925	$(C) -c $(I) z_solve.c
926
927z_spsolve.o: ../Cholesky/cholmod_spsolve.c
928	$(C) -E $(I) $< | $(PRETTY) > z_spsolve.c
929	$(C) -c $(I) z_spsolve.c
930
931z_rowfac.o: ../Cholesky/cholmod_rowfac.c ../Cholesky/t_cholmod_rowfac.c
932	$(C) -E $(I) $< | $(PRETTY) > z_rowfac.c
933	$(C) -c $(I) z_rowfac.c
934
935#-------------------------------------------------------------------------------
936z_ccolamd.o: ../Partition/cholmod_ccolamd.c
937	$(C) -E $(I) $< | $(PRETTY) > z_ccolamd.c
938	$(C) -c $(I) z_ccolamd.c
939
940z_csymamd.o: ../Partition/cholmod_csymamd.c
941	$(C) -E $(I) $< | $(PRETTY) > z_csymamd.c
942	$(C) -c $(I) z_csymamd.c
943
944z_camd.o: ../Partition/cholmod_camd.c
945	$(C) -E $(I) $< | $(PRETTY) > z_camd.c
946	$(C) -c $(I) z_camd.c
947
948z_metis.o: ../Partition/cholmod_metis.c
949	$(C) -E $(I) $< | $(PRETTY) > z_metis.c
950	$(C) -c $(I) z_metis.c
951
952z_nesdis.o: ../Partition/cholmod_nesdis.c
953	$(C) -E $(I) $< | $(PRETTY) > z_nesdis.c
954	$(C) -c $(I) z_nesdis.c
955
956#-------------------------------------------------------------------------------
957
958z_horzcat.o: ../MatrixOps/cholmod_horzcat.c
959	$(C) -E $(I) $< | $(PRETTY) > z_horzcat.c
960	$(C) -c $(I) z_horzcat.c
961
962z_norm.o: ../MatrixOps/cholmod_norm.c
963	$(C) -E $(I) $< | $(PRETTY) > z_norm.c
964	$(C) -c $(I) z_norm.c
965
966z_scale.o: ../MatrixOps/cholmod_scale.c
967	$(C) -E $(I) $< | $(PRETTY) > z_scale.c
968	$(C) -c $(I) z_scale.c
969
970z_drop.o: ../MatrixOps/cholmod_drop.c
971	$(C) -E $(I) $< | $(PRETTY) > z_drop.c
972	$(C) -c $(I) z_drop.c
973
974z_sdmult.o: ../MatrixOps/cholmod_sdmult.c ../MatrixOps/t_cholmod_sdmult.c
975	$(C) -E $(I) $< | $(PRETTY) > z_sdmult.c
976	$(C) -c $(I) z_sdmult.c
977
978z_ssmult.o: ../MatrixOps/cholmod_ssmult.c
979	$(C) -E $(I) $< | $(PRETTY) > z_ssmult.c
980	$(C) -c $(I) z_ssmult.c
981
982z_submatrix.o: ../MatrixOps/cholmod_submatrix.c
983	$(C) -E $(I) $< | $(PRETTY) > z_submatrix.c
984	$(C) -c $(I) z_submatrix.c
985
986z_vertcat.o: ../MatrixOps/cholmod_vertcat.c
987	$(C) -E $(I) $< | $(PRETTY) > z_vertcat.c
988	$(C) -c $(I) z_vertcat.c
989
990z_symmetry.o: ../MatrixOps/cholmod_symmetry.c
991	$(C) -E $(I) $< | $(PRETTY) > z_symmetry.c
992	$(C) -c $(I) z_symmetry.c
993
994#-------------------------------------------------------------------------------
995
996z_rowadd.o: ../Modify/cholmod_rowadd.c
997	$(C) -E $(I) $< | $(PRETTY) > z_rowadd.c
998	$(C) -c $(I) z_rowadd.c
999
1000z_rowdel.o: ../Modify/cholmod_rowdel.c
1001	$(C) -E $(I) $< | $(PRETTY) > z_rowdel.c
1002	$(C) -c $(I) z_rowdel.c
1003
1004z_updown.o: ../Modify/cholmod_updown.c \
1005	../Modify/t_cholmod_updown.c ../Modify/t_cholmod_updown_numkr.c
1006	$(C) -E $(I) $< | $(PRETTY) > z_updown.c
1007	$(C) -c $(I) z_updown.c
1008
1009#-------------------------------------------------------------------------------
1010
1011z_super_numeric.o: ../Supernodal/cholmod_super_numeric.c \
1012		../Supernodal/t_cholmod_super_numeric.c \
1013		../GPU/t_cholmod_gpu.c
1014	$(C) -E $(I) $< | $(PRETTY) > z_super_numeric.c
1015	$(C) -c $(I) z_super_numeric.c
1016
1017z_super_symbolic.o: ../Supernodal/cholmod_super_symbolic.c
1018	$(C) -E $(I) $< | $(PRETTY) > z_super_symbolic.c
1019	$(C) -c $(I) z_super_symbolic.c
1020
1021z_gpu.o: ../GPU/cholmod_gpu.c
1022	$(C) -E $(I) $< | $(PRETTY) > z_gpu.c
1023	$(C) -c $(I) z_gpu.c
1024
1025z_super_solve.o: ../Supernodal/cholmod_super_solve.c
1026	$(C) -E $(I) $< | $(PRETTY) > z_super_solve.c
1027	$(C) -c $(I) z_super_solve.c
1028
1029#-------------------------------------------------------------------------------
1030#-------------------------------------------------------------------------------
1031
1032l_check.o: ../Check/cholmod_check.c
1033	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_check.c
1034	$(C) -c $(I) l_check.c
1035
1036l_read.o: ../Check/cholmod_read.c
1037	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_read.c
1038	$(C) -c $(I) l_read.c
1039
1040l_write.o: ../Check/cholmod_write.c
1041	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_write.c
1042	$(C) -c $(I) l_write.c
1043
1044#-------------------------------------------------------------------------------
1045
1046l_common.o: ../Core/cholmod_common.c
1047	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_common.c
1048	$(C) -c $(I) l_common.c
1049
1050l_version.o: ../Core/cholmod_version.c
1051	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_version.c
1052	$(C) -c $(I) l_version.c
1053
1054l_dense.o: ../Core/cholmod_dense.c ../Core/t_cholmod_dense.c
1055	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_dense.c
1056	$(C) -c $(I) l_dense.c
1057
1058l_factor.o: ../Core/cholmod_factor.c
1059	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_factor.c
1060	$(C) -c $(I) l_factor.c
1061
1062l_change_factor.o: ../Core/cholmod_change_factor.c \
1063	../Core/t_cholmod_change_factor.c
1064	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_change_factor.c
1065	$(C) -c $(I) l_change_factor.c
1066
1067l_memory.o: ../Core/cholmod_memory.c
1068	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_memory.c
1069	$(C) -c $(I) l_memory.c
1070
1071l_sparse.o: ../Core/cholmod_sparse.c
1072	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_sparse.c
1073	$(C) -c $(I) l_sparse.c
1074
1075l_complex.o: ../Core/cholmod_complex.c
1076	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_complex.c
1077	$(C) -c $(I) l_complex.c
1078
1079l_transpose.o: ../Core/cholmod_transpose.c ../Core/t_cholmod_transpose.c
1080	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_transpose.c
1081	$(C) -c $(I) l_transpose.c
1082
1083l_band.o: ../Core/cholmod_band.c
1084	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_band.c
1085	$(C) -c $(I) l_band.c
1086
1087l_copy.o: ../Core/cholmod_copy.c
1088	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_copy.c
1089	$(C) -c $(I) l_copy.c
1090
1091l_triplet.o: ../Core/cholmod_triplet.c ../Core/t_cholmod_triplet.c
1092	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_triplet.c
1093	$(C) -c $(I) l_triplet.c
1094
1095l_error.o: ../Core/cholmod_error.c
1096	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_error.c
1097	$(C) -c $(I) l_error.c
1098
1099l_aat.o: ../Core/cholmod_aat.c
1100	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_aat.c
1101	$(C) -c $(I) l_aat.c
1102
1103l_add.o: ../Core/cholmod_add.c
1104	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_add.c
1105	$(C) -c $(I) l_add.c
1106
1107#-------------------------------------------------------------------------------
1108
1109l_amd.o: ../Cholesky/cholmod_amd.c
1110	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_amd.c
1111	$(C) -c $(I) l_amd.c
1112
1113l_analyze.o: ../Cholesky/cholmod_analyze.c
1114	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_analyze.c
1115	$(C) -c $(I) l_analyze.c
1116
1117l_colamd.o: ../Cholesky/cholmod_colamd.c
1118	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_colamd.c
1119	$(C) -c $(I) l_colamd.c
1120
1121l_etree.o: ../Cholesky/cholmod_etree.c
1122	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_etree.c
1123	$(C) -c $(I) l_etree.c
1124
1125l_factorize.o: ../Cholesky/cholmod_factorize.c
1126	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_factorize.c
1127	$(C) -c $(I) l_factorize.c
1128
1129l_postorder.o: ../Cholesky/cholmod_postorder.c
1130	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_postorder.c
1131	$(C) -c $(I) l_postorder.c
1132
1133l_rcond.o: ../Cholesky/cholmod_rcond.c
1134	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_rcond.c
1135	$(C) -c $(I) l_rcond.c
1136
1137l_resymbol.o: ../Cholesky/cholmod_resymbol.c
1138	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_resymbol.c
1139	$(C) -c $(I) l_resymbol.c
1140
1141l_rowcolcounts.o: ../Cholesky/cholmod_rowcolcounts.c
1142	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_rowcolcounts.c
1143	$(C) -c $(I) l_rowcolcounts.c
1144
1145l_solve.o: ../Cholesky/cholmod_solve.c ../Cholesky/t_cholmod_lsolve.c \
1146	../Cholesky/t_cholmod_ltsolve.c ../Cholesky/t_cholmod_solve.c
1147	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_solve.c
1148	$(C) -c $(I) l_solve.c
1149
1150l_spsolve.o: ../Cholesky/cholmod_spsolve.c
1151	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_spsolve.c
1152	$(C) -c $(I) l_spsolve.c
1153
1154l_rowfac.o: ../Cholesky/cholmod_rowfac.c ../Cholesky/t_cholmod_rowfac.c
1155	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_rowfac.c
1156	$(C) -c $(I) l_rowfac.c
1157
1158#-------------------------------------------------------------------------------
1159l_ccolamd.o: ../Partition/cholmod_ccolamd.c
1160	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_ccolamd.c
1161	$(C) -c $(I) l_ccolamd.c
1162
1163l_csymamd.o: ../Partition/cholmod_csymamd.c
1164	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_csymamd.c
1165	$(C) -c $(I) l_csymamd.c
1166
1167l_camd.o: ../Partition/cholmod_camd.c
1168	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_camd.c
1169	$(C) -c $(I) l_camd.c
1170
1171l_metis.o: ../Partition/cholmod_metis.c
1172	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_metis.c
1173	$(C) -c $(I) l_metis.c
1174
1175l_nesdis.o: ../Partition/cholmod_nesdis.c
1176	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_nesdis.c
1177	$(C) -c $(I) l_nesdis.c
1178
1179#-------------------------------------------------------------------------------
1180
1181l_horzcat.o: ../MatrixOps/cholmod_horzcat.c
1182	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_horzcat.c
1183	$(C) -c $(I) l_horzcat.c
1184
1185l_norm.o: ../MatrixOps/cholmod_norm.c
1186	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_norm.c
1187	$(C) -c $(I) l_norm.c
1188
1189l_scale.o: ../MatrixOps/cholmod_scale.c
1190	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_scale.c
1191	$(C) -c $(I) l_scale.c
1192
1193l_drop.o: ../MatrixOps/cholmod_drop.c
1194	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_drop.c
1195	$(C) -c $(I) l_drop.c
1196
1197l_sdmult.o: ../MatrixOps/cholmod_sdmult.c ../MatrixOps/t_cholmod_sdmult.c
1198	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_sdmult.c
1199	$(C) -c $(I) l_sdmult.c
1200
1201l_ssmult.o: ../MatrixOps/cholmod_ssmult.c
1202	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_ssmult.c
1203	$(C) -c $(I) l_ssmult.c
1204
1205l_submatrix.o: ../MatrixOps/cholmod_submatrix.c
1206	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_submatrix.c
1207	$(C) -c $(I) l_submatrix.c
1208
1209l_vertcat.o: ../MatrixOps/cholmod_vertcat.c
1210	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_vertcat.c
1211	$(C) -c $(I) l_vertcat.c
1212
1213l_symmetry.o: ../MatrixOps/cholmod_symmetry.c
1214	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_symmetry.c
1215	$(C) -c $(I) l_symmetry.c
1216
1217#-------------------------------------------------------------------------------
1218
1219l_rowadd.o: ../Modify/cholmod_rowadd.c
1220	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_rowadd.c
1221	$(C) -c $(I) l_rowadd.c
1222
1223l_rowdel.o: ../Modify/cholmod_rowdel.c
1224	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_rowdel.c
1225	$(C) -c $(I) l_rowdel.c
1226
1227l_updown.o: ../Modify/cholmod_updown.c \
1228	../Modify/t_cholmod_updown.c ../Modify/t_cholmod_updown_numkr.c
1229	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_updown.c
1230	$(C) -c $(I) l_updown.c
1231
1232#-------------------------------------------------------------------------------
1233
1234l_super_numeric.o: ../Supernodal/cholmod_super_numeric.c \
1235		../Supernodal/t_cholmod_super_numeric.c \
1236                ../GPU/t_cholmod_gpu.c
1237	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_super_numeric.c
1238	$(C) -c $(I) l_super_numeric.c
1239
1240l_super_symbolic.o: ../Supernodal/cholmod_super_symbolic.c
1241	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_super_symbolic.c
1242	$(C) -c $(I) l_super_symbolic.c
1243
1244l_gpu.o: ../GPU/cholmod_gpu.c
1245	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_gpu.c
1246	$(C) -c $(I) l_gpu.c
1247
1248l_super_solve.o: ../Supernodal/cholmod_super_solve.c
1249	$(C) -DDLONG -E $(I) $< | $(PRETTY) > l_super_solve.c
1250	$(C) -c $(I) l_super_solve.c
1251
1252cholmod_gpu_kernels.o: ../GPU/cholmod_gpu_kernels.c \
1253        ../GPU/cholmod_gpu_kernels.cu
1254	$(C) -DDLONG -c $(I) $<
1255	$(NVCC) -I../../SuiteSparse_config -Xcompiler -fPIC -O3 -c ../GPU/cholmod_gpu_kernels.cu
1256
1257#-------------------------------------------------------------------------------
1258
1259metis:
1260	( cd ../.. && $(MAKE) metis )
1261