1
#! /bin/sh /usr/share/dpatch/dpatch-run
2
## 11-UMFPACK_Lib_GNUmakefile.dpatch by Daniel Rus Morales <danirus@tol-project.org>
4
## All lines beginning with `## DP:' are a description of the patch.
5
## DP: Build shared version of UMFPACK library.
8
diff -u upstrm/UMFPACK/Lib/GNUmakefile debsrc/UMFPACK/Lib/GNUmakefile
9
--- upstrm/UMFPACK/Lib/GNUmakefile 2007-05-06 14:31:22.000000000 +0200
10
+++ debsrc/UMFPACK/Lib/GNUmakefile 2007-12-15 19:10:39.000000000 +0100
12
# UMFPACK Makefile for compiling on Unix systems (for GNU Make)
13
#-------------------------------------------------------------------------------
15
-default: ../Lib/libumfpack.a
16
+default: libumfpack.a libumfpack.so.3.1.0
18
include ../../UFconfig/UFconfig.mk
21
#-------------------------------------------------------------------------------
23
DI = $(addsuffix .o, $(subst umf_,umf_di_,$(UMF)) $(subst umfpack_,umfpack_di_,$(USER)))
24
+DI_SL = $(addsuffix .oo, $(subst umf_,umf_di_,$(UMF)) $(subst umfpack_,umfpack_di_,$(USER)))
25
DL = $(addsuffix .o, $(subst umf_,umf_dl_,$(UMF)) $(subst umfpack_,umfpack_dl_,$(USER)))
26
+DL_SL = $(addsuffix .oo, $(subst umf_,umf_dl_,$(UMF)) $(subst umfpack_,umfpack_dl_,$(USER)))
27
ZI = $(addsuffix .o, $(subst umf_,umf_zi_,$(UMF)) $(subst umfpack_,umfpack_zi_,$(USER)))
28
+ZI_SL = $(addsuffix .oo, $(subst umf_,umf_zi_,$(UMF)) $(subst umfpack_,umfpack_zi_,$(USER)))
29
ZL = $(addsuffix .o, $(subst umf_,umf_zl_,$(UMF)) $(subst umfpack_,umfpack_zl_,$(USER)))
30
+ZL_SL = $(addsuffix .oo, $(subst umf_,umf_zl_,$(UMF)) $(subst umfpack_,umfpack_zl_,$(USER)))
31
II = $(addsuffix .o, $(subst umf_,umf_i_,$(UMFINT)))
32
+II_SL = $(addsuffix .oo, $(subst umf_,umf_i_,$(UMFINT)))
33
LL = $(addsuffix .o, $(subst umf_,umf_l_,$(UMFINT)))
34
+LL_SL = $(addsuffix .oo, $(subst umf_,umf_l_,$(UMFINT)))
35
GN = $(addsuffix .o, $(subst umfpack_,umfpack_gn_,$(GENERIC)))
36
+GN_SL = $(addsuffix .oo, $(subst umfpack_,umfpack_gn_,$(GENERIC)))
38
#-------------------------------------------------------------------------------
39
# compile each int and UF_long routine (with no real/complex version)
42
umf_i_%.o: ../Source/umf_%.c $(INC)
43
$(C) -DDINT -c $< -o $@
44
+umf_i_%.oo: ../Source/umf_%.c $(INC)
45
+ $(C) -fPIC -DDINT -c $< -o $@
47
umf_l_%.o: ../Source/umf_%.c $(INC)
48
$(C) -DDLONG -c $< -o $@
49
+umf_l_%.oo: ../Source/umf_%.c $(INC)
50
+ $(C) -fPIC -DDLONG -c $< -o $@
52
#-------------------------------------------------------------------------------
53
# compile each routine in the DI version
56
umf_di_%.o: ../Source/umf_%.c $(INC)
57
$(C) -DDINT -c $< -o $@
58
+umf_di_%.oo: ../Source/umf_%.c $(INC)
59
+ $(C) -fPIC -DDINT -c $< -o $@
61
umf_di_%hsolve.o: ../Source/umf_%tsolve.c $(INC)
62
$(C) -DDINT -DCONJUGATE_SOLVE -c $< -o $@
63
+umf_di_%hsolve.oo: ../Source/umf_%tsolve.c $(INC)
64
+ $(C) -fPIC -DDINT -DCONJUGATE_SOLVE -c $< -o $@
66
umf_di_triplet_map_x.o: ../Source/umf_triplet.c $(INC)
67
$(C) -DDINT -DDO_MAP -DDO_VALUES -c $< -o $@
68
+umf_di_triplet_map_x.oo: ../Source/umf_triplet.c $(INC)
69
+ $(C) -fPIC -DDINT -DDO_MAP -DDO_VALUES -c $< -o $@
71
umf_di_triplet_map_nox.o: ../Source/umf_triplet.c $(INC)
72
$(C) -DDINT -DDO_MAP -c $< -o $@
73
+umf_di_triplet_map_nox.oo: ../Source/umf_triplet.c $(INC)
74
+ $(C) -fPIC -DDINT -DDO_MAP -c $< -o $@
76
umf_di_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC)
77
$(C) -DDINT -DDO_VALUES -c $< -o $@
78
+umf_di_triplet_nomap_x.oo: ../Source/umf_triplet.c $(INC)
79
+ $(C) -fPIC -DDINT -DDO_VALUES -c $< -o $@
81
umf_di_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC)
82
$(C) -DDINT -c $< -o $@
83
+umf_di_triplet_nomap_nox.oo: ../Source/umf_triplet.c $(INC)
84
+ $(C) -fPIC -DDINT -c $< -o $@
86
umf_di_assemble_fixq.o: ../Source/umf_assemble.c $(INC)
87
$(C) -DDINT -DFIXQ -c $< -o $@
88
+umf_di_assemble_fixq.oo: ../Source/umf_assemble.c $(INC)
89
+ $(C) -fPIC -DDINT -DFIXQ -c $< -o $@
91
umf_di_store_lu_drop.o: ../Source/umf_store_lu.c $(INC)
92
$(C) -DDINT -DDROP -c $< -o $@
93
+umf_di_store_lu_drop.oo: ../Source/umf_store_lu.c $(INC)
94
+ $(C) -fPIC -DDINT -DDROP -c $< -o $@
96
umfpack_di_wsolve.o: ../Source/umfpack_solve.c $(INC)
97
$(C) -DDINT -DWSOLVE -c $< -o $@
98
+umfpack_di_wsolve.oo: ../Source/umfpack_solve.c $(INC)
99
+ $(C) -fPIC -DDINT -DWSOLVE -c $< -o $@
101
umfpack_di_%.o: ../Source/umfpack_%.c $(INC)
102
$(C) -DDINT -c $< -o $@
103
+umfpack_di_%.oo: ../Source/umfpack_%.c $(INC)
104
+ $(C) -fPIC -DDINT -c $< -o $@
106
#-------------------------------------------------------------------------------
107
# compile each routine in the DL version
108
@@ -136,33 +167,53 @@
110
umf_dl_%.o: ../Source/umf_%.c $(INC)
111
$(C) -DDLONG -c $< -o $@
112
+umf_dl_%.oo: ../Source/umf_%.c $(INC)
113
+ $(C) -fPIC -DDLONG -c $< -o $@
115
umf_dl_%hsolve.o: ../Source/umf_%tsolve.c $(INC)
116
$(C) -DDLONG -DCONJUGATE_SOLVE -c $< -o $@
117
+umf_dl_%hsolve.oo: ../Source/umf_%tsolve.c $(INC)
118
+ $(C) -fPIC -DDLONG -DCONJUGATE_SOLVE -c $< -o $@
120
umf_dl_triplet_map_x.o: ../Source/umf_triplet.c $(INC)
121
$(C) -DDLONG -DDO_MAP -DDO_VALUES -c $< -o $@
122
+umf_dl_triplet_map_x.oo: ../Source/umf_triplet.c $(INC)
123
+ $(C) -fPIC -DDLONG -DDO_MAP -DDO_VALUES -c $< -o $@
125
umf_dl_triplet_map_nox.o: ../Source/umf_triplet.c $(INC)
126
$(C) -DDLONG -DDO_MAP -c $< -o $@
127
+umf_dl_triplet_map_nox.oo: ../Source/umf_triplet.c $(INC)
128
+ $(C) -fPIC -DDLONG -DDO_MAP -c $< -o $@
130
umf_dl_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC)
131
$(C) -DDLONG -DDO_VALUES -c $< -o $@
132
+umf_dl_triplet_nomap_x.oo: ../Source/umf_triplet.c $(INC)
133
+ $(C) -fPIC -DDLONG -DDO_VALUES -c $< -o $@
135
umf_dl_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC)
136
$(C) -DDLONG -c $< -o $@
137
+umf_dl_triplet_nomap_nox.oo: ../Source/umf_triplet.c $(INC)
138
+ $(C) -fPIC -DDLONG -c $< -o $@
140
umf_dl_assemble_fixq.o: ../Source/umf_assemble.c $(INC)
141
$(C) -DDLONG -DFIXQ -c $< -o $@
142
+umf_dl_assemble_fixq.oo: ../Source/umf_assemble.c $(INC)
143
+ $(C) -fPIC -DDLONG -DFIXQ -c $< -o $@
145
umf_dl_store_lu_drop.o: ../Source/umf_store_lu.c $(INC)
146
$(C) -DDLONG -DDROP -c $< -o $@
147
+umf_dl_store_lu_drop.oo: ../Source/umf_store_lu.c $(INC)
148
+ $(C) -fPIC -DDLONG -DDROP -c $< -o $@
150
umfpack_dl_wsolve.o: ../Source/umfpack_solve.c $(INC)
151
$(C) -DDLONG -DWSOLVE -c $< -o $@
152
+umfpack_dl_wsolve.oo: ../Source/umfpack_solve.c $(INC)
153
+ $(C) -fPIC -DDLONG -DWSOLVE -c $< -o $@
155
umfpack_dl_%.o: ../Source/umfpack_%.c $(INC)
156
$(C) -DDLONG -c $< -o $@
157
+umfpack_dl_%.oo: ../Source/umfpack_%.c $(INC)
158
+ $(C) -fPIC -DDLONG -c $< -o $@
160
#-------------------------------------------------------------------------------
161
# compile each routine in the ZI version
162
@@ -170,33 +221,58 @@
164
umf_zi_%.o: ../Source/umf_%.c $(INC)
165
$(C) -DZINT -c $< -o $@
166
+umf_zi_%.oo: ../Source/umf_%.c $(INC)
167
+ $(C) -fPIC -DZINT -c $< -o $@
169
umf_zi_%hsolve.o: ../Source/umf_%tsolve.c $(INC)
170
$(C) -DZINT -DCONJUGATE_SOLVE -c $< -o $@
171
+umf_zi_%hsolve.oo: ../Source/umf_%tsolve.c $(INC)
172
+ $(C) -fPIC -DZINT -DCONJUGATE_SOLVE -c $< -o $@
174
umf_zi_triplet_map_x.o: ../Source/umf_triplet.c $(INC)
175
$(C) -DZINT -DDO_MAP -DDO_VALUES -c $< -o $@
176
+umf_zi_triplet_map_x.oo: ../Source/umf_triplet.c $(INC)
177
+ $(C) -fPIC -DZINT -DDO_MAP -DDO_VALUES -c $< -o $@
179
umf_zi_triplet_map_nox.o: ../Source/umf_triplet.c $(INC)
180
$(C) -DZINT -DDO_MAP -c $< -o $@
181
+umf_zi_triplet_map_x.oo: ../Source/umf_triplet.c $(INC)
182
+ $(C) -fPIC -DZINT -DDO_MAP -DDO_VALUES -c $< -o $@
184
+ umf_zi_triplet_map_nox.o: ../Source/umf_triplet.c $(INC)
185
+ $(C) -DZINT -DDO_MAP -c $< -o $@
186
+umf_zi_triplet_map_nox.oo: ../Source/umf_triplet.c $(INC)
187
+ $(C) -fPIC -DZINT -DDO_MAP -c $< -o $@
189
umf_zi_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC)
190
$(C) -DZINT -DDO_VALUES -c $< -o $@
191
+umf_zi_triplet_nomap_x.oo: ../Source/umf_triplet.c $(INC)
192
+ $(C) -fPIC -DZINT -DDO_VALUES -c $< -o $@
194
umf_zi_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC)
195
$(C) -DZINT -c $< -o $@
196
+umf_zi_triplet_nomap_nox.oo: ../Source/umf_triplet.c $(INC)
197
+ $(C) -fPIC -DZINT -c $< -o $@
199
umf_zi_assemble_fixq.o: ../Source/umf_assemble.c $(INC)
200
$(C) -DZINT -DFIXQ -c $< -o $@
201
+umf_zi_assemble_fixq.oo: ../Source/umf_assemble.c $(INC)
202
+ $(C) -fPIC -DZINT -DFIXQ -c $< -o $@
204
umf_zi_store_lu_drop.o: ../Source/umf_store_lu.c $(INC)
205
$(C) -DZINT -DDROP -c $< -o $@
206
+umf_zi_store_lu_drop.oo: ../Source/umf_store_lu.c $(INC)
207
+ $(C) -fPIC -DZINT -DDROP -c $< -o $@
209
umfpack_zi_wsolve.o: ../Source/umfpack_solve.c $(INC)
210
$(C) -DZINT -DWSOLVE -c $< -o $@
211
+umfpack_zi_wsolve.oo: ../Source/umfpack_solve.c $(INC)
212
+ $(C) -fPIC -DZINT -DWSOLVE -c $< -o $@
214
umfpack_zi_%.o: ../Source/umfpack_%.c $(INC)
215
$(C) -DZINT -c $< -o $@
216
+umfpack_zi_%.oo: ../Source/umfpack_%.c $(INC)
217
+ $(C) -fPIC -DZINT -c $< -o $@
219
#-------------------------------------------------------------------------------
220
# compile each routine in the ZL version
221
@@ -204,33 +280,53 @@
223
umf_zl_%.o: ../Source/umf_%.c $(INC)
224
$(C) -DZLONG -c $< -o $@
225
+umf_zl_%.oo: ../Source/umf_%.c $(INC)
226
+ $(C) -fPIC -DZLONG -c $< -o $@
228
umf_zl_%hsolve.o: ../Source/umf_%tsolve.c $(INC)
229
$(C) -DZLONG -DCONJUGATE_SOLVE -c $< -o $@
230
+umf_zl_%hsolve.oo: ../Source/umf_%tsolve.c $(INC)
231
+ $(C) -fPIC -DZLONG -DCONJUGATE_SOLVE -c $< -o $@
233
umf_zl_triplet_map_x.o: ../Source/umf_triplet.c $(INC)
234
$(C) -DZLONG -DDO_MAP -DDO_VALUES -c $< -o $@
235
+umf_zl_triplet_map_x.oo: ../Source/umf_triplet.c $(INC)
236
+ $(C) -fPIC -DZLONG -DDO_MAP -DDO_VALUES -c $< -o $@
238
umf_zl_triplet_map_nox.o: ../Source/umf_triplet.c $(INC)
239
$(C) -DZLONG -DDO_MAP -c $< -o $@
240
+umf_zl_triplet_map_nox.oo: ../Source/umf_triplet.c $(INC)
241
+ $(C) -fPIC -DZLONG -DDO_MAP -c $< -o $@
243
umf_zl_triplet_nomap_x.o: ../Source/umf_triplet.c $(INC)
244
$(C) -DZLONG -DDO_VALUES -c $< -o $@
245
+umf_zl_triplet_nomap_x.oo: ../Source/umf_triplet.c $(INC)
246
+ $(C) -fPIC -DZLONG -DDO_VALUES -c $< -o $@
248
umf_zl_triplet_nomap_nox.o: ../Source/umf_triplet.c $(INC)
249
$(C) -DZLONG -c $< -o $@
250
+umf_zl_triplet_nomap_nox.oo: ../Source/umf_triplet.c $(INC)
251
+ $(C) -fPIC -DZLONG -c $< -o $@
253
umf_zl_assemble_fixq.o: ../Source/umf_assemble.c $(INC)
254
$(C) -DZLONG -DFIXQ -c $< -o $@
255
+umf_zl_assemble_fixq.oo: ../Source/umf_assemble.c $(INC)
256
+ $(C) -fPIC -DZLONG -DFIXQ -c $< -o $@
258
umf_zl_store_lu_drop.o: ../Source/umf_store_lu.c $(INC)
259
$(C) -DZLONG -DDROP -c $< -o $@
260
+umf_zl_store_lu_drop.oo: ../Source/umf_store_lu.c $(INC)
261
+ $(C) -fPIC -DZLONG -DDROP -c $< -o $@
263
umfpack_zl_wsolve.o: ../Source/umfpack_solve.c $(INC)
264
$(C) -DZLONG -DWSOLVE -c $< -o $@
265
+umfpack_zl_wsolve.oo: ../Source/umfpack_solve.c $(INC)
266
+ $(C) -fPIC -DZLONG -DWSOLVE -c $< -o $@
268
umfpack_zl_%.o: ../Source/umfpack_%.c $(INC)
269
$(C) -DZLONG -c $< -o $@
270
+umfpack_zl_%.oo: ../Source/umfpack_%.c $(INC)
271
+ $(C) -fPIC -DZLONG -c $< -o $@
273
#-------------------------------------------------------------------------------
274
# Create the generic routines (GN) using a generic rule
275
@@ -238,14 +334,20 @@
277
umfpack_gn_%.o: ../Source/umfpack_%.c $(INC)
279
+umfpack_gn_%.oo: ../Source/umfpack_%.c $(INC)
280
+ $(C) -fPIC -c $< -o $@
282
#-------------------------------------------------------------------------------
283
# Create the ../Lib/libumfpack.a library
284
#-------------------------------------------------------------------------------
286
-../Lib/libumfpack.a: $(II) $(LL) $(GN) $(DI) $(DL) $(ZI) $(ZL)
287
- $(AR) ../Lib/libumfpack.a $^
288
- - $(RANLIB) ../Lib/libumfpack.a
289
+libumfpack.a: $(II) $(LL) $(GN) $(DI) $(DL) $(ZI) $(ZL)
290
+ $(AR) libumfpack.a $^
291
+ - $(RANLIB) libumfpack.a
293
+libumfpack.so.3.1.0: $(II_SL) $(LL_SL) $(GN_SL) $(DI_SL) $(DL_SL) $(ZI_SL) $(ZL_SL)
294
+ $(CC) -shared $^ -lm -Wl,-soname -Wl,$@ -o $@
295
+ ln -s $@ libumfpack.so
297
#-------------------------------------------------------------------------------
298
# Remove all but the files in the original distribution