Mercurial > octave-nkf
comparison liboctave/UMFPACK/UMFPACK/OCTAVE/GNUmakefile @ 5164:57077d0ddc8e
[project @ 2005-02-25 19:55:24 by jwe]
author | jwe |
---|---|
date | Fri, 25 Feb 2005 19:55:28 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
5163:9f3299378193 | 5164:57077d0ddc8e |
---|---|
1 #------------------------------------------------------------------------------- | |
2 # UMFPACK GNUmakefile for the UMFPACK OCTAVE oct-file (GNU "make" only) | |
3 #------------------------------------------------------------------------------- | |
4 | |
5 .PRECIOUS: %.o | |
6 | |
7 # UMFPACK Version 4.3 (Jan. 16, 2004), Copyright (c) 2004 by Timothy A. | |
8 # Davis. All Rights Reserved. See ../README for License. | |
9 | |
10 all: umfpack luflop | |
11 | |
12 include ../Make/Make.include | |
13 | |
14 MKOCT = mkoctfile $(CONFIG) -DNRECIPROCAL -I/usr/include/atlas -I../Include -I../Source -I../../AMD/Include -I../../AMD/Source | |
15 | |
16 OCT_SPARSE_INC = -I../../../ | |
17 | |
18 | |
19 #------------------------------------------------------------------------------- | |
20 # source files | |
21 #------------------------------------------------------------------------------- | |
22 | |
23 # non-user-callable umf_*.[ch] files: | |
24 UMFCH = umf_assemble umf_blas3_update \ | |
25 umf_build_tuples umf_create_element \ | |
26 umf_dump umf_extend_front umf_garbage_collection \ | |
27 umf_get_memory umf_init_front umf_kernel \ | |
28 umf_kernel_init umf_kernel_wrapup \ | |
29 umf_local_search umf_lsolve umf_ltsolve \ | |
30 umf_mem_alloc_element umf_mem_alloc_head_block \ | |
31 umf_mem_alloc_tail_block umf_mem_free_tail_block \ | |
32 umf_mem_init_memoryspace \ | |
33 umf_report_vector umf_row_search umf_scale_column \ | |
34 umf_set_stats umf_solve umf_symbolic_usage umf_transpose \ | |
35 umf_tuple_lengths umf_usolve umf_utsolve umf_valid_numeric \ | |
36 umf_valid_symbolic umf_grow_front umf_start_front umf_2by2 \ | |
37 umf_store_lu umf_scale | |
38 | |
39 # non-user-callable umf_*.[ch] files, int/long versions only (no real/complex): | |
40 UMFINT = umf_analyze umf_apply_order umf_colamd umf_free umf_fsize \ | |
41 umf_is_permutation umf_malloc umf_realloc umf_report_perm \ | |
42 umf_singletons | |
43 | |
44 # non-user-callable and user-callable amd_*.[ch] files (int/long versions only): | |
45 AMD = amd_aat amd_1 amd_2 amd_dump amd_postorder amd_post_tree amd_defaults \ | |
46 amd_order amd_control amd_info amd_valid | |
47 | |
48 # non-user-callable, created from umf_ltsolve.c, umf_utsolve.c, | |
49 # umf_triplet.c, and umf_assemble.c , with int/long and real/complex versions: | |
50 UMF_CREATED = umf_lhsolve umf_uhsolve umf_triplet_map_nox \ | |
51 umf_triplet_nomap_x umf_triplet_nomap_nox umf_triplet_map_x \ | |
52 umf_assemble_fixq umf_store_lu_drop | |
53 | |
54 # non-user-callable, int/long and real/complex versions: | |
55 UMF = $(UMF_CREATED) $(UMFCH) | |
56 | |
57 # user-callable umfpack_*.[ch] files (int/long and real/complex): | |
58 UMFPACK = umfpack_col_to_triplet umfpack_defaults umfpack_free_numeric \ | |
59 umfpack_free_symbolic umfpack_get_numeric umfpack_get_lunz \ | |
60 umfpack_get_symbolic umfpack_get_determinant umfpack_numeric \ | |
61 umfpack_qsymbolic umfpack_report_control umfpack_report_info \ | |
62 umfpack_report_matrix umfpack_report_numeric umfpack_report_perm \ | |
63 umfpack_report_status umfpack_report_symbolic umfpack_report_triplet \ | |
64 umfpack_report_vector umfpack_solve umfpack_symbolic \ | |
65 umfpack_transpose umfpack_triplet_to_col umfpack_scale \ | |
66 umfpack_load_numeric umfpack_save_numeric \ | |
67 umfpack_load_symbolic umfpack_save_symbolic | |
68 | |
69 # user-callable, created from umfpack_solve.c (umfpack_wsolve.h exists, though): | |
70 # with int/long and real/complex versions: | |
71 UMFPACKW = umfpack_wsolve | |
72 | |
73 USER = $(UMFPACKW) $(UMFPACK) | |
74 | |
75 # user-callable, only one version for int/long, real/complex, *.[ch] files: | |
76 GENERIC = umfpack_timer umfpack_tictoc | |
77 | |
78 #------------------------------------------------------------------------------- | |
79 # include files: | |
80 #------------------------------------------------------------------------------- | |
81 | |
82 AMDH = ../../AMD/Source/amd_internal.h ../../AMD/Include/amd.h | |
83 | |
84 INC1 = umf_config.h umf_version.h umf_internal.h umf_triplet.h | |
85 | |
86 INC = ../Include/umfpack.h \ | |
87 $(addprefix ../Source/, $(INC1)) \ | |
88 $(addprefix ../Source/, $(addsuffix .h,$(UMFCH))) \ | |
89 $(addprefix ../Source/, $(addsuffix .h,$(UMFINT))) \ | |
90 $(addprefix ../Include/, $(addsuffix .h,$(USER))) \ | |
91 $(addprefix ../Include/, $(addsuffix .h,$(GENERIC))) \ | |
92 $(AMDH) | |
93 | |
94 #------------------------------------------------------------------------------- | |
95 # Create the umfpack and amd oct-file for OCTAVE (int versions only) | |
96 #------------------------------------------------------------------------------- | |
97 | |
98 OCTI = $(addsuffix .o, $(subst umf_,umf_o_,$(UMFINT))) | |
99 OCTDI = $(addsuffix .o, $(subst umf_,umf_od_,$(UMF)) $(subst umfpack_,umfpack_od_,$(USER))) | |
100 OCTZI = $(addsuffix .o, $(subst umf_,umf_oz_,$(UMF)) $(subst umfpack_,umfpack_oz_,$(USER)) ) | |
101 OCTAMD = $(addsuffix .o, $(subst amd_,amd_o_,$(AMD))) | |
102 OCTGN = $(addsuffix .o, $(subst umfpack_,umfpack_o_,$(GENERIC))) | |
103 | |
104 OCTUMFPACK = $(OCTI) $(OCTDI) $(OCTZI) $(OCTGN) | |
105 | |
106 OCTUMFPACK_LIB = umfpack_octave.o | |
107 | |
108 # Note that mkoctfile has an "-o" option, but it doesn't work in conjunction | |
109 # with the "-c" option, thus the need for $(MV) commands. | |
110 # If it did, then the rules would be much simpler: | |
111 # $(MKOCT) -DDINT -c $< -o $@ | |
112 | |
113 #---------------------------------------- | |
114 # integer-only routines (no real/complex): | |
115 #---------------------------------------- | |
116 | |
117 amd_o_%.o: ../../AMD/Source/amd_%.c $(AMDH) | |
118 $(MKOCT) -DDINT -c $< | |
119 - $(MV) ../../AMD/Source/amd_$*.o $@ | |
120 | |
121 | |
122 umf_o_%.o: ../Source/umf_%.c $(INC) | |
123 $(MKOCT) -DDINT -c $< | |
124 - $(MV) ../Source/umf_$*.o $@ | |
125 | |
126 #---------------------------------------- | |
127 # Double precision, int version, for OCTAVE | |
128 #---------------------------------------- | |
129 | |
130 umf_od_%.o: ../Source/umf_%.c $(INC) | |
131 $(MKOCT) -DDINT -c $< | |
132 - $(MV) ../Source/umf_$*.o $@ | |
133 | |
134 umf_od_%hsolve.o: ../Source/umf_%tsolve.c $(INC) | |
135 $(MKOCT) -DDINT -DCONJUGATE_SOLVE -c $< | |
136 - $(MV) ../Source/umf_$*tsolve.o $@ | |
137 | |
138 umf_od_triplet_map_x.o: ../Source/umf_triplet.c $(INC) | |
139 $(MKOCT) -DDINT -DDO_MAP -DDO_VALUES -c $< | |
140 - $(MV) ../Source/umf_triplet.o $@ | |
141 | |
142 umf_od_triplet_map_nox.o: ../Source/umf_triplet.c $(INC) | |
143 $(MKOCT) -DDINT -DDO_MAP -c $< | |
144 - $(MV) ../Source/umf_triplet.o $@ | |
145 | |
146 umf_od_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC) | |
147 $(MKOCT) -DDINT -DDO_VALUES -c $< | |
148 - $(MV) ../Source/umf_triplet.o $@ | |
149 | |
150 umf_od_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC) | |
151 $(MKOCT) -DDINT -c $< | |
152 - $(MV) ../Source/umf_triplet.o $@ | |
153 | |
154 umf_od_assemble_fixq.o: ../Source/umf_assemble.c $(INC) | |
155 $(MKOCT) -DDINT -DFIXQ -c $< | |
156 - $(MV) ../Source/umf_assemble.o $@ | |
157 | |
158 umf_od_store_lu_drop.o: ../Source/umf_store_lu.c $(INC) | |
159 $(MKOCT) -DDINT -DDROP -c $< | |
160 - $(MV) ../Source/umf_store_lu.o $@ | |
161 | |
162 umfpack_od_wsolve.o: ../Source/umfpack_solve.c $(INC) | |
163 $(MKOCT) -DDINT -DWSOLVE -c $< | |
164 - $(MV) ../Source/umfpack_solve.o $@ | |
165 | |
166 umfpack_od_%.o: ../Source/umfpack_%.c $(INC) | |
167 $(MKOCT) -DDINT -c $< | |
168 - $(MV) ../Source/umfpack_$*.o $@ | |
169 | |
170 #---------------------------------------- | |
171 # Complex double precision, int version, for OCTAVE | |
172 #---------------------------------------- | |
173 | |
174 umf_oz_%.o: ../Source/umf_%.c $(INC) | |
175 $(MKOCT) -DZINT -c $< | |
176 - $(MV) ../Source/umf_$*.o $@ | |
177 | |
178 umf_oz_%hsolve.o: ../Source/umf_%tsolve.c $(INC) | |
179 $(MKOCT) -DZINT -DCONJUGATE_SOLVE -c $< | |
180 - $(MV) ../Source/umf_$*tsolve.o $@ | |
181 | |
182 umf_oz_triplet_map_x.o: ../Source/umf_triplet.c $(INC) | |
183 $(MKOCT) -DZINT -DDO_MAP -DDO_VALUES -c $< | |
184 - $(MV) ../Source/umf_triplet.o $@ | |
185 | |
186 umf_oz_triplet_map_nox.o: ../Source/umf_triplet.c $(INC) | |
187 $(MKOCT) -DZINT -DDO_MAP -c $< | |
188 - $(MV) ../Source/umf_triplet.o $@ | |
189 | |
190 umf_oz_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC) | |
191 $(MKOCT) -DZINT -DDO_VALUES -c $< | |
192 - $(MV) ../Source/umf_triplet.o $@ | |
193 | |
194 umf_oz_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC) | |
195 $(MKOCT) -DZINT -c $< | |
196 - $(MV) ../Source/umf_triplet.o $@ | |
197 | |
198 umf_oz_assemble_fixq.o: ../Source/umf_assemble.c $(INC) | |
199 $(MKOCT) -DZINT -DFIXQ -c $< | |
200 - $(MV) ../Source/umf_assemble.o $@ | |
201 | |
202 umf_oz_store_lu_drop.o: ../Source/umf_store_lu.c $(INC) | |
203 $(MKOCT) -DZINT -DDROP -c $< | |
204 - $(MV) ../Source/umf_store_lu.o $@ | |
205 | |
206 umfpack_oz_wsolve.o: ../Source/umfpack_solve.c $(INC) | |
207 $(MKOCT) -DZINT -DWSOLVE -c $< | |
208 - $(MV) ../Source/umfpack_solve.o $@ | |
209 | |
210 umfpack_oz_%.o: ../Source/umfpack_%.c $(INC) | |
211 $(MKOCT) -DZINT -c $< | |
212 - $(MV) ../Source/umfpack_$*.o $@ | |
213 | |
214 #---------------------------------------- | |
215 # Generic routines for OCTAVE | |
216 #---------------------------------------- | |
217 | |
218 umfpack_o_timer.o: ../Source/umfpack_timer.c $(INC) | |
219 $(MKOCT) -c $< | |
220 - $(MV) ../Source/umfpack_timer.o $@ | |
221 | |
222 umfpack_o_tictoc.o: ../Source/umfpack_tictoc.c $(INC) | |
223 $(MKOCT) -c $< | |
224 - $(MV) ../Source/umfpack_tictoc.o $@ | |
225 | |
226 #---------------------------------------- | |
227 # umfpack oct-files | |
228 #---------------------------------------- | |
229 | |
230 umfpack: umfpack.cc $(OCTUMFPACK) $(OCTAMD) | |
231 $(MKOCT) $(OCT_SPARSE_INC) umfpack.cc $(OCTUMFPACK) $(OCTAMD) -o umfpack.oct | |
232 | |
233 luflop: luflop.cc | |
234 $(MKOCT) $(OCT_SPARSE_INC) luflop.cc -o luflop.oct | |
235 | |
236 #---------------------------------------- | |
237 # umfpack library to link with octave | |
238 #---------------------------------------- | |
239 | |
240 octave: $(OCTUMFPACK) $(OCTAMD) | |
241 ld -r $(OCTUMFPACK) $(OCTAMD) -o ../../../$(OCTUMFPACK_LIB) | |
242 | |
243 #------------------------------------------------------------------------------- | |
244 # Remove all but the files in the original distribution | |
245 #------------------------------------------------------------------------------- | |
246 | |
247 purge: clean | |
248 - $(RM) *.oct *.so |