a b/Makefile
1
# Makefile for Numerical libary by Michael Riedl
2
# ==============================================
3
4
# Choose target IO System
5
6
IOSYS=MRI
7
# IOSYS=ISOIO
8
9
# Choose target Compilter 
10
11
COMPILER=XDS
12
# COMPILER=GM2
13
14
ENDIAN=LITTLEENDIAN
15
# ENDIAN=BIGENDIAN
16
17
#................................................................................
18
19
BLASLIB = BLAS
20
# BLASLIB = BLASF77
21
22
# LinPack also has "inline" option
23
BLASLIBin = BLAS
24
# BLASLIBin = BLASF77
25
# BLASLIBin = inline
26
27
M2PP = ../../Werkzeuge/m2pp # -b
28
29
ifeq ($(COMPILER),GM2)
30
#*********************
31
32
OPTIONS= -fiso -flibs=iso \
33
         -I /usr/local/gm2/lib/gcc/x86_64-pc-linux-gnu/6.4.0/m2/iso \
34
         -I /usr/local/gm2/lib/gcc/x86_64-pc-linux-gnu/6.4.0/m2/pim \
35
         -I /home/mriedl/Modula-2/InOut/quellen.iso \
36
         -L /usr/local/gm2/libs \
37
         -O0 -g
38
39
OPTIONS= -fiso -flibs=iso \
40
         -I /usr/local/gm2/lib/gcc/i586-linux-gnu/4.7.4/m2/iso \
41
         -I /usr/local/gm2/lib/gcc/i586-linux-gnu/4.7.4/m2/pim \
42
         -I /home/mriedl/Modula-2/InOut/quellen.iso \
43
         -L /usr/local/gm2/libs \
44
         -O0 -g
45
46
LIBS = -lgm2 -liso
47
48
M2C= gm2 -c $(OPTIONS)
49
M2L= gm2 -fonlylink -I. $(OPTIONS)  $(LIBS)
50
51
NUMLIB = libnumM2.gm2.a
52
53
all : mkall $(NUMLIB)
54
55
else
56
#***
57
58
OPTIONS=
59
LIBS =
60
61
M2C= xc =m 
62
M2L= xc =p
63
64
NUMLIB = libnumM2.xds.a
65
66
67
all : mkall $(NUMLIB)
68
69
endif
70
#****
71
72
#........................................................................
73
74
OBJ =   BaseLib.o ApproxLib.o LibDBlas.o LibDBlasM2.o  \
75
  LibDBlasF77.o LibDBlasL3F77.o F77func.o Differ.o DynMat.o  \
76
        LinPack.o EigenLib1.o \
77
  EigenLibAux.o EigenLib2.o EigenLib3.o Fourier.o SortLib.o  \
78
  Integral.o LinLib.o SVDLib1.o IEEE.o LMathLib.o LngCmplxMath.o  \
79
  CmplxMath.o MatLib.o PMatLib.o RandomLib.o \
80
  SpezFunkt1.o SpezFunkt2.o SpezFunkt3.o SpezFunkt4.o  \
81
  OptimLib1.o StatLib.o NumAlLib1.o SMatEA.o FMatEA.o
82
83
ifeq ($(COMPILER),GM2)
84
#*********************
85
mkall: mkall.o $(OBJ) \
86
        BaseLib.def ApproxLib.def  \
87
  LibDBlas.def LibDBlasM2.def LibDBlasF77.def LibDBlasL1F77.def  \
88
  LibDBlasLxF77.def LibDBlasL3F77.def LinPack.def F77func.def  \
89
  Differ.def DynMat.def EigenLibAux.def EigenLib1.def  \
90
  EigenLib2.def EigenLib3.def Fourier.def SortLib.def  \
91
  Integral.def LinLib.def SVDLib1.def IEEE.def LMathLib.def  \
92
  LngCmplxMath.def CmplxMath.def MatLib.def PMatLib.def  \
93
  RandomLib.def FMatEA.def SMatEA.def SpezFunkt1.def  \
94
  SpezFunkt2.def SpezFunkt3.def SpezFunkt4.def \
95
        OptimLib1.def StatLib.def NumAlLib1.def OpenMPF77.def
96
  $(M2L) mkall.mod
97
else
98
#***
99
mkall: mkall.o $(OBJ) \
100
  BaseLib.def ApproxLib.def  \
101
  LibDBlas.def LibDBlasM2.def LibDBlasF77.def LibDBlasL1F77.def  \
102
  LibDBlasLxF77.def LibDBlasL3F77.def LinPack.def F77func.def  \
103
  Differ.def DynMat.def EigenLibAux.def EigenLib1.def  \
104
  EigenLib2.def EigenLib3.def Fourier.def SortLib.def  \
105
  Integral.def LinLib.def SVDLib1.def IEEE.def LMathLib.def  \
106
  LngCmplxMath.def CmplxMath.def MatLib.def PMatLib.def  \
107
  RandomLib.def FMatEA.def SMatEA.def SpezFunkt1.def  \
108
  SpezFunkt2.def SpezFunkt3.def SpezFunkt4.def \
109
        OptimLib1.def StatLib.def NumAlLib1.def OpenMPF77.def
110
  $(M2L) mkall
111
endif
112
#****
113
114
mkall.o: mkall.mod BaseLib.def ApproxLib.def LibDBlas.def  \
115
  LibDBlasM2.def LibDBlasF77.def LibDBlasL1F77.def  \
116
  LibDBlasLxF77.def LibDBlasL3F77.def LinPack.def F77func.def  \
117
  Differ.def DynMat.def EigenLibAux.def EigenLib1.def  \
118
  EigenLib2.def EigenLib3.def Fourier.def SortLib.def  \
119
  Integral.def LinLib.def SVDLib1.def IEEE.def LMathLib.def  \
120
  LngCmplxMath.def CmplxMath.def MatLib.def PMatLib.def  \
121
  RandomLib.def FMatEA.def SMatEA.def SpezFunkt1.def  \
122
  SpezFunkt2.def SpezFunkt3.def SpezFunkt4.def \
123
        OptimLib1.def StatLib.def NumAlLib1.def OpenMPF77.def
124
  $(M2C) mkall.mod
125
126
mkall.mod: BaseLib.def ApproxLib.def LibDBlas.def LibDBlasM2.def  \
127
  LibDBlasF77.def LibDBlasL1F77.def LibDBlasLxF77.def  \
128
  LibDBlasL3F77.def LinPack.def F77func.def Differ.def  \
129
  DynMat.def EigenLibAux.def EigenLib1.def EigenLib2.def  \
130
  EigenLib3.def Fourier.def SortLib.def Integral.def LinLib.def  \
131
  SVDLib1.def IEEE.def LMathLib.def LngCmplxMath.def CmplxMath.def  \
132
  MatLib.def PMatLib.def RandomLib.def FMatEA.def SMatEA.def  \
133
  SpezFunkt1.def SpezFunkt2.def SpezFunkt3.def \
134
        SpezFunkt4.def OptimLib1.def StatLib.def NumAlLib1.def OpenMPF77.def
135
136
137
#..............................................................................
138
139
ifeq ($(COMPILER),XDS)
140
#*********************
141
142
mkall.o : .sym/LibDBlasL1F77.sym
143
144
.sym/LibDBlasL1F77.sym : LibDBlasL1F77.def
145
  $(M2C) LibDBlasL1F77.def
146
147
148
mkall.o : .sym/LibDBlasL3F77.sym
149
150
.sym/LibDBlasL3F77.sym : LibDBlasL3F77.def
151
  $(M2C) LibDBlasL3F77.def
152
153
154
mkall.o : .sym/LibDBlasF77.sym
155
156
.sym/LibDBlasF77.sym : LibDBlasF77.def
157
  $(M2C) LibDBlasF77.def
158
159
160
mkall.o : .sym/LibDBlasLxF77.sym
161
162
.sym/LibDBlasLxF77.sym : LibDBlasLxF77.def
163
  $(M2C) LibDBlasLxF77.def
164
165
166
mkall.o : .sym/OpenMPF77.sym
167
168
.sym/OpenMPF77.sym : OpenMPF77.def
169
  $(M2C) OpenMPF77.def
170
171
endif
172
#****
173
174
#..............................................................................
175
176
BaseLib.o: BaseLib.def BaseLib.mod
177
  $(M2C) BaseLib.mod
178
179
BaseLib.mod: BaseLib.def
180
181
ApproxLib.o: ApproxLib.def ApproxLib.mod
182
  $(M2C) ApproxLib.mod
183
184
ApproxLib.mod: ApproxLib.def
185
186
LibDBlas.o: LibDBlas.def LibDBlas.mod
187
  $(M2C) LibDBlas.mod
188
189
LibDBlas.mod: LibDBlas.def
190
191
LibDBlasM2.o: LibDBlasM2.def LibDBlasM2.mod
192
  $(M2C) LibDBlasM2.mod
193
194
LibDBlasM2.mod: LibDBlasM2.def
195
196
LibDBlasF77.o: LibDBlasF77.def LibDBlasF77.mod
197
  $(M2C) LibDBlasF77.mod
198
199
LibDBlasF77.mod: LibDBlasF77.def
200
201
LibDBlasL3F77.o: LibDBlasL3F77.def LibDBlasL3F77.mod
202
  $(M2C) LibDBlasL3F77.mod
203
204
LibDBlasL3F77.mod: LibDBlasL3F77.def
205
206
LinPack.o: LinPack.def LinPack.mod
207
  $(M2C) LinPack.mod
208
209
F77func.o: F77func.def F77func.mod
210
  $(M2C) F77func.mod
211
212
F77func.mod: F77func.def
213
214
Differ.o: Differ.def Differ.mod
215
  $(M2C) Differ.mod
216
217
Differ.mod: Differ.def
218
219
DynMat.o: DynMat.def DynMat.mod
220
  $(M2C) DynMat.mod
221
222
DynMat.mod: DynMat.def
223
224
EigenLibAux.o: EigenLibAux.def EigenLibAux.mod
225
  $(M2C) EigenLibAux.mod
226
227
EigenLibAux.mod: EigenLibAux.def
228
229
EigenLib1.o: EigenLib1.def EigenLib1.mod
230
  $(M2C) EigenLib1.mod
231
232
EigenLib2.o: EigenLib2.def EigenLib2.mod
233
  $(M2C) EigenLib2.mod
234
235
EigenLib2.mod: EigenLib2.def
236
237
EigenLib3.o: EigenLib3.def EigenLib3.mod
238
  $(M2C) EigenLib3.mod
239
240
EigenLib3.mod: EigenLib3.def
241
242
Fourier.o: Fourier.def Fourier.mod
243
  $(M2C) Fourier.mod
244
245
Fourier.mod: Fourier.def
246
247
SortLib.o: SortLib.def SortLib.mod
248
  $(M2C) SortLib.mod
249
250
SortLib.mod: SortLib.def
251
252
Integral.o: Integral.def Integral.mod
253
  $(M2C) Integral.mod
254
255
Integral.mod: Integral.def
256
257
LinLib.o: LinLib.def LinLib.mod
258
  $(M2C) LinLib.mod
259
260
LinLib.mod: LinLib.def
261
262
SVDLib1.o: SVDLib1.def SVDLib1.mod
263
  $(M2C) SVDLib1.mod
264
265
SVDLib1.mod: SVDLib1.def
266
267
IEEE.o: IEEE.def IEEE.mod
268
  $(M2C) IEEE.mod
269
270
IEEE.mod: IEEE.def
271
272
LMathLib.o: LMathLib.def LMathLib.mod
273
  $(M2C) LMathLib.mod
274
275
LMathLib.mod: LMathLib.def
276
277
LngCmplxMath.o: LngCmplxMath.def LngCmplxMath.mod
278
  $(M2C) LngCmplxMath.mod
279
280
LngCmplxMath.mod: LngCmplxMath.def
281
282
CmplxMath.o: CmplxMath.def CmplxMath.mod
283
  $(M2C) CmplxMath.mod
284
285
CmplxMath.mod: CmplxMath.def
286
287
MatLib.o: MatLib.def MatLib.mod
288
  $(M2C) MatLib.mod
289
290
MatLib.mod: MatLib.def
291
292
PMatLib.o: PMatLib.def PMatLib.mod
293
  $(M2C) PMatLib.mod
294
295
PMatLib.mod: PMatLib.def
296
297
RandomLib.o: RandomLib.def RandomLib.mod
298
  $(M2C) RandomLib.mod
299
300
RandomLib.mod: RandomLib.def
301
302
FMatEA.o: FMatEA.def FMatEA.mod
303
  $(M2C) FMatEA.mod
304
305
FMatEA.mod: FMatEA.def
306
307
SMatEA.o: SMatEA.def SMatEA.mod
308
  $(M2C) SMatEA.mod
309
310
SpezFunkt1.o: SpezFunkt1.def SpezFunkt1.mod
311
  $(M2C) SpezFunkt1.mod
312
313
SpezFunkt1.mod: SpezFunkt1.def
314
315
SpezFunkt2.o: SpezFunkt2.def SpezFunkt2.mod
316
  $(M2C) SpezFunkt2.mod
317
318
SpezFunkt2.mod: SpezFunkt2.def
319
320
SpezFunkt3.o: SpezFunkt3.def SpezFunkt3.mod
321
  $(M2C) SpezFunkt3.mod
322
323
SpezFunkt3.mod: SpezFunkt3.def
324
325
SpezFunkt4.o: SpezFunkt4.def SpezFunkt4.mod
326
  $(M2C) SpezFunkt4.mod
327
328
SpezFunkt4.mod: SpezFunkt4.def
329
330
OptimLib1.o: OptimLib1.def OptimLib1.mod
331
  $(M2C) OptimLib1.mod
332
333
OptimLib1.mod: OptimLib1.def
334
335
StatLib.o: StatLib.def StatLib.mod
336
  $(M2C) StatLib.mod
337
338
StatLib.mod: StatLib.def
339
340
NumAlLib1.o: NumAlLib1.def NumAlLib1.mod
341
  $(M2C) NumAlLib1.mod
342
343
NumAlLib1.mod: NumAlLib1.def
344
345
#..............................................................................
346
347
# EigenLib1.mod  : EigenLib1.mod.m2pp
348
#     $(M2PP) -D __$(COMPILER)__ -D __$(BLASLIB)__ < EigenLib1.mod.m2pp  \
349
#                                                    > EigenLib1.mod
350
351
IEEE.def  : IEEE.def.m2pp
352
  $(M2PP) -D __$(COMPILER)__ -D __$(ENDIAN)__ < IEEE.def.m2pp  > IEEE.def
353
354
EigenLib1.mod  : EigenLib1.mod.m2pp
355
  $(M2PP) -D __$(COMPILER)__ -D __$(BLASLIB)__ -D __DEBUG__ < EigenLib1.mod.m2pp  > EigenLib1.mod
356
357
Integral.mod   : Integral.mod.m2pp
358
  $(M2PP) -D __$(COMPILER)__ <  Integral.mod.m2pp > Integral.mod
359
360
# Integral.mod   : Integral.mod.m2pp
361
#     $(M2PP) -D __$(COMPILER)__ -D __DEBUG__ <  Integral.mod.m2pp > Integral.mod
362
363
MatLib.mod     : MatLib.mod.m2pp
364
  $(M2PP) -D __$(COMPILER)__ -D __$(BLASLIB)__ <  MatLib.mod.m2pp > MatLib.mod
365
366
RandomLib.mod  : RandomLib.mod.m2pp
367
  $(M2PP) -D __$(COMPILER)__ <  RandomLib.mod.m2pp > RandomLib.mod
368
369
SpezFunkt2.mod : SpezFunkt2.mod.m2pp
370
  $(M2PP) -D __$(COMPILER)__ <  SpezFunkt2.mod.m2pp > SpezFunkt2.mod
371
372
StatLib.mod    : StatLib.mod.m2pp
373
  $(M2PP) -D __$(COMPILER)__ <  StatLib.mod.m2pp > StatLib.mod
374
375
OpenMPF77.def : OpenMPF77.def.m2pp
376
  $(M2PP) -D __$(COMPILER)__ < OpenMPF77.def.m2pp > OpenMPF77.def
377
378
LibDBlasL1F77.def : LibDBlasL1F77.def.m2pp
379
  $(M2PP) -D __$(COMPILER)__ < LibDBlasL1F77.def.m2pp > LibDBlasL1F77.def
380
381
LibDBlasLxF77.def : LibDBlasLxF77.def.m2pp
382
  $(M2PP) -D __$(COMPILER)__ < LibDBlasLxF77.def.m2pp > LibDBlasLxF77.def
383
384
LinPack.mod : LinPack.mod.m2pp
385
  $(M2PP) -D __$(BLASLIBin)__ < LinPack.mod.m2pp > LinPack.mod
386
387
SMatEA.mod : SMatEA.mod.m2pp
388
  $(M2PP) -D __$(IOSYS)__ < SMatEA.mod.m2pp > SMatEA.mod
389
390
#..............................................................................
391
392
$(NUMLIB) : $(OBJ)
393
  ar -r $(NUMLIB) $(OBJ)
394
  ranlib $(NUMLIB)
395
396
#..............................................................................
397
398
clean: force
399
  $(RM)  mkall.o BaseLib.o ApproxLib.o LibDBlas.o LibDBlasM2.o  \
400
  LibDBlasF77.o LibDBlasL3F77.o F77func.o Differ.o DynMat.o  \
401
  EigenLibAux.o EigenLib2.o EigenLib3.o Fourier.o SortLib.o  \
402
  Integral.o LinLib.o SVDLib1.o IEEE.o LMathLib.o LngCmplxMath.o  \
403
  CmplxMath.o MatLib.o PMatLib.o RandomLib.o FMatEA.o  \
404
  SpezFunkt1.o SpezFunkt2.o SpezFunkt2b.o SpezFunkt3.o SpezFunkt4.o  \
405
  OptimLib1.o StatLib.o NumAlLib1.o \
406
  LibDBlasL1F77.def LibDBlasLxF77.def OpenMPF77.def \
407
  EigenLib1.mod Integral.mod LinPack.mod MatLib.mod \
408
  RandomLib.mod SMatEA.mod SpezFunkt2.mod StatLib.mod 
409
410
force:
411